device_usbspeed_test.cpp
Go to the documentation of this file.
1 #include <catch2/catch_all.hpp>
2 
3 // std
4 #include <atomic>
5 #include <chrono>
6 #include <iostream>
7 
8 // Include depthai library
9 #include <depthai/depthai.hpp>
10 
12  auto xo = p.create<dai::node::XLinkOut>();
13  xo->setStreamName("sysinfo");
15  info->out.link(xo->input);
16 }
17 
19  auto infoQ = d.getOutputQueue("sysinfo", 1, false);
20  bool timeout = false;
21  auto infoFrame = infoQ->get<dai::SystemInformation>(std::chrono::seconds(1), timeout);
22  if(timeout || (infoFrame == nullptr)) throw std::runtime_error("no valid frame arrived at host");
23  if((infoFrame->leonCssCpuUsage.average < 0.0f) || (infoFrame->leonCssCpuUsage.average > 1.0f))
24  throw std::runtime_error("invalid leonCssCpuUsage.average " + std::to_string(infoFrame->leonCssCpuUsage.average));
25 }
26 
27 TEST_CASE("usb2Mode == true") {
28  dai::Pipeline p;
29  makeInfo(p);
30  dai::Device d(p, true);
31  verifyInfo(d);
32 }
33 
34 TEST_CASE("UsbSpeed::HIGH") {
35  dai::Pipeline p;
36  makeInfo(p);
38  verifyInfo(d);
39 }
40 
41 TEST_CASE("UsbSpeed::SUPER") {
42  dai::Pipeline p;
43  makeInfo(p);
45  verifyInfo(d);
46 }
47 
48 TEST_CASE("UsbSpeed::SUPER_PLUS") {
49  dai::Pipeline p;
50  makeInfo(p);
52 
53  verifyInfo(d);
54 }
55 
56 TEST_CASE("Pipeline config usb speed == SUPER") {
57  dai::Pipeline p;
58  makeInfo(p);
59 
62 
63  p.setBoardConfig(cfg.board);
64 
65  dai::Device d(p);
66 
67  CHECK(d.getUsbSpeed() == dai::UsbSpeed::SUPER);
68 
69  verifyInfo(d);
70 }
71 
72 TEST_CASE("Pipeline config usb speed == HIGH") {
73  dai::Pipeline p;
74  makeInfo(p);
75 
78 
79  p.setBoardConfig(cfg.board);
80 
81  dai::Device d(p);
82 
83  CHECK(d.getUsbSpeed() == dai::UsbSpeed::HIGH);
84 
85  verifyInfo(d);
86 }
dai::Pipeline::setBoardConfig
void setBoardConfig(BoardConfig board)
Sets board configuration.
Definition: Pipeline.hpp:298
dai::node::XLinkOut
XLinkOut node. Sends messages over XLink.
Definition: XLinkOut.hpp:14
dai::Pipeline
Represents the pipeline, set of nodes and connections between them.
Definition: Pipeline.hpp:100
dai::DeviceBase::Config::board
BoardConfig board
Definition: DeviceBase.hpp:74
dai::logger::info
void info(const FormatString &fmt, Args &&...args)
Definition: Logging.hpp:78
dai::UsbSpeed::SUPER
@ SUPER
dai::node::SystemLogger
SystemLogger node. Send system information periodically.
Definition: SystemLogger.hpp:14
verifyInfo
void verifyInfo(dai::Device &d)
Definition: device_usbspeed_test.cpp:18
dai::Device::getOutputQueue
std::shared_ptr< DataOutputQueue > getOutputQueue(const std::string &name)
Definition: Device.cpp:86
makeInfo
void makeInfo(dai::Pipeline &p)
Definition: device_usbspeed_test.cpp:11
depthai.hpp
dai::Pipeline::create
std::shared_ptr< N > create()
Definition: Pipeline.hpp:145
dai::UsbSpeed::HIGH
@ HIGH
dai::SystemInformation
Definition: SystemInformation.hpp:14
dai::UsbSpeed::SUPER_PLUS
@ SUPER_PLUS
dai::BoardConfig::USB::maxSpeed
UsbSpeed maxSpeed
Definition: BoardConfig.hpp:28
nanorpc::core::exception::to_string
std::string to_string(std::exception const &e)
Definition: exception.h:46
dai::Device
Definition: Device.hpp:21
dai::DeviceBase::Config
Definition: DeviceBase.hpp:72
dai::BoardConfig::usb
USB usb
Definition: BoardConfig.hpp:32
TEST_CASE
TEST_CASE("usb2Mode == true")
Definition: device_usbspeed_test.cpp:27
dai::node::XLinkOut::setStreamName
void setStreamName(const std::string &name)
Definition: XLinkOut.cpp:13


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19