DeviceBase.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 // std
4 #include <atomic>
5 #include <chrono>
6 #include <condition_variable>
7 #include <functional>
8 #include <memory>
9 #include <mutex>
10 #include <string>
11 #include <thread>
12 #include <tuple>
13 #include <type_traits>
14 #include <unordered_map>
15 #include <vector>
16 
17 // project
28 
29 // shared
41 
42 namespace dai {
43 
44 // Forward declare Pipeline
45 class Pipeline;
46 
50 class DeviceBase {
51  public:
52  // constants
53 
55  static constexpr std::chrono::seconds DEFAULT_SEARCH_TIME{3};
57  static constexpr float DEFAULT_SYSTEM_INFORMATION_LOGGING_RATE_HZ{1.0f};
61  static constexpr std::chrono::milliseconds DEFAULT_TIMESYNC_PERIOD{5000};
63  static constexpr int DEFAULT_TIMESYNC_NUM_SAMPLES{10};
65  static constexpr bool DEFAULT_TIMESYNC_RANDOM{true};
66 
67  // Structures
68 
72  struct Config {
75  bool nonExclusiveMode = false;
78  };
79 
80  // static API
81 
87  static std::chrono::milliseconds getDefaultSearchTime();
88 
95  static std::tuple<bool, DeviceInfo> getAnyAvailableDevice(std::chrono::milliseconds timeout);
96 
102  static std::tuple<bool, DeviceInfo> getAnyAvailableDevice();
103 
111  static std::tuple<bool, DeviceInfo> getAnyAvailableDevice(std::chrono::milliseconds timeout, std::function<void()> cb);
112 
117  static std::tuple<bool, DeviceInfo> getFirstAvailableDevice(bool skipInvalidDevice = true);
118 
124  static std::tuple<bool, DeviceInfo> getDeviceByMxId(std::string mxId);
125 
130  static std::vector<DeviceInfo> getAllAvailableDevices();
131 
138  static std::vector<DeviceInfo> getAllConnectedDevices();
139 
146  static std::vector<std::uint8_t> getEmbeddedDeviceBinary(bool usb2Mode, OpenVINO::Version version = OpenVINO::VERSION_UNIVERSAL);
147 
153  static std::vector<std::uint8_t> getEmbeddedDeviceBinary(Config config);
154 
161 
166  explicit DeviceBase(const Pipeline& pipeline);
167 
173  template <typename T, std::enable_if_t<std::is_same<T, bool>::value, bool> = true>
174  DeviceBase(const Pipeline& pipeline, T usb2Mode) : DeviceBase(pipeline, usb2Mode ? UsbSpeed::HIGH : DeviceBase::DEFAULT_USB_SPEED) {}
175 
181  DeviceBase(const Pipeline& pipeline, UsbSpeed maxUsbSpeed);
182 
188  DeviceBase(const Pipeline& pipeline, const dai::Path& pathToCmd);
189 
195  DeviceBase(const Pipeline& pipeline, const DeviceInfo& devInfo);
196 
203  template <typename T, std::enable_if_t<std::is_same<T, bool>::value, bool> = true>
204  DeviceBase(const Pipeline& pipeline, const DeviceInfo& devInfo, T usb2Mode)
205  : DeviceBase(pipeline, devInfo, usb2Mode ? UsbSpeed::HIGH : DeviceBase::DEFAULT_USB_SPEED) {}
206 
213  DeviceBase(const Pipeline& pipeline, const DeviceInfo& devInfo, UsbSpeed maxUsbSpeed);
214 
221  DeviceBase(const Pipeline& pipeline, const DeviceInfo& devInfo, const dai::Path& pathToCmd);
222 
227  DeviceBase();
228 
233  explicit DeviceBase(OpenVINO::Version version);
234 
240  template <typename T, std::enable_if_t<std::is_same<T, bool>::value, bool> = true>
241  DeviceBase(OpenVINO::Version version, T usb2Mode) : DeviceBase(version, usb2Mode ? UsbSpeed::HIGH : DeviceBase::DEFAULT_USB_SPEED) {}
242 
248  DeviceBase(OpenVINO::Version version, UsbSpeed maxUsbSpeed);
249 
255  DeviceBase(OpenVINO::Version version, const dai::Path& pathToCmd);
256 
262  DeviceBase(OpenVINO::Version version, const DeviceInfo& devInfo);
263 
270  template <typename T, std::enable_if_t<std::is_same<T, bool>::value, bool> = true>
271  DeviceBase(OpenVINO::Version version, const DeviceInfo& devInfo, T usb2Mode)
272  : DeviceBase(version, devInfo, usb2Mode ? UsbSpeed::HIGH : DeviceBase::DEFAULT_USB_SPEED) {}
273 
280  DeviceBase(OpenVINO::Version version, const DeviceInfo& devInfo, UsbSpeed maxUsbSpeed);
281 
288  DeviceBase(OpenVINO::Version version, const DeviceInfo& devInfo, const dai::Path& pathToCmd);
289 
294  explicit DeviceBase(Config config);
295 
301  DeviceBase(Config config, const DeviceInfo& devInfo);
302 
309  explicit DeviceBase(const DeviceInfo& devInfo);
310 
318  DeviceBase(const DeviceInfo& devInfo, UsbSpeed maxUsbSpeed);
319 
326  DeviceBase(std::string nameOrDeviceId);
327 
335  DeviceBase(std::string nameOrDeviceId, UsbSpeed maxUsbSpeed);
336 
342  template <typename T, std::enable_if_t<std::is_same<T, bool>::value, bool> = true>
344 
350  DeviceBase(Config config, UsbSpeed maxUsbSpeed);
351 
357  DeviceBase(Config config, const dai::Path& pathToCmd);
358 
365  template <typename T, std::enable_if_t<std::is_same<T, bool>::value, bool> = true>
366  DeviceBase(Config config, const DeviceInfo& devInfo, T usb2Mode) : DeviceBase(config, devInfo, usb2Mode ? UsbSpeed::HIGH : DeviceBase::DEFAULT_USB_SPEED) {}
367 
374  DeviceBase(Config config, const DeviceInfo& devInfo, UsbSpeed maxUsbSpeed);
375 
383  DeviceBase(Config config, const DeviceInfo& devInfo, const dai::Path& pathToCmd, bool dumpOnly = false);
384 
389  virtual ~DeviceBase();
390 
397 
403  bool isPipelineRunning();
404 
410  [[deprecated("Device(pipeline) starts the pipeline automatically. See Device() and startPipeline(pipeline) otherwise")]] bool startPipeline();
411 
418  bool startPipeline(const Pipeline& pipeline);
419 
425  void setLogLevel(LogLevel level);
426 
433 
441  void setXLinkChunkSize(int sizeBytes);
442 
448  int getXLinkChunkSize();
449 
458  void setXLinkRateLimit(int maxRateBytesPerSecond, int burstSize = 0, int waitUs = 0);
459 
465  DeviceInfo getDeviceInfo() const;
466 
471  std::string getDeviceName();
472 
477  std::string getProductName();
478 
484  std::string getMxId();
485 
492  void setLogOutputLevel(LogLevel level);
493 
500 
510  [[deprecated("Use setIrLaserDotProjectorIntensity(float intensity) instead.")]] bool setIrLaserDotProjectorBrightness(float mA, int mask = -1);
511 
522  [[deprecated("Use setIrFloodLightIntensity(float intensity) instead.")]] bool setIrFloodLightBrightness(float mA, int mask = -1);
523 
534  bool setIrLaserDotProjectorIntensity(float intensity, int mask = -1);
535 
546  bool setIrFloodLightIntensity(float intensity, int mask = -1);
547 
554  std::vector<std::tuple<std::string, int, int>> getIrDrivers();
555 
559  dai::CrashDump getCrashDump(bool clearCrashDump = true);
560 
564  bool hasCrashDump();
565 
572 
579  int addLogCallback(std::function<void(LogMessage)> callback);
580 
587  bool removeLogCallback(int callbackId);
588 
595  void setSystemInformationLoggingRate(float rateHz);
596 
603 
609  std::vector<CameraBoardSocket> getConnectedCameras();
610 
616  std::vector<ConnectionInterface> getConnectionInterfaces();
617 
623  std::vector<CameraFeatures> getConnectedCameraFeatures();
624 
630  std::vector<StereoPair> getStereoPairs();
631 
639  std::vector<StereoPair> getAvailableStereoPairs();
640 
646  std::unordered_map<CameraBoardSocket, std::string> getCameraSensorNames();
647 
653  std::string getConnectedIMU();
654 
661 
668 
678  bool startIMUFirmwareUpdate(bool forceUpdate = false);
679 
687  std::tuple<bool, unsigned int> getIMUFirmwareUpdateStatus();
688 
695 
702 
709 
716 
723 
730 
737 
742  bool isEepromAvailable();
743 
751  bool flashCalibration(CalibrationHandler calibrationDataHandler);
752 
759  void flashCalibration2(CalibrationHandler calibrationDataHandler);
760 
768  void setCalibration(CalibrationHandler calibrationDataHandler);
769 
777 
785 
793 
801 
808 
816  void flashFactoryCalibration(CalibrationHandler calibrationHandler);
817 
825  void flashEepromClear();
826 
835 
843 
851 
858  std::vector<std::uint8_t> readCalibrationRaw();
859 
866  std::vector<std::uint8_t> readFactoryCalibrationRaw();
867 
874 
884  void setTimesync(std::chrono::milliseconds period, int numSamples, bool random);
885 
891  void setTimesync(bool enable);
892 
898  void close();
899 
907  bool isClosed() const;
908 
912  std::shared_ptr<XLinkConnection> getConnection() {
913  return connection;
914  }
915 
919  std::shared_ptr<const XLinkConnection> getConnection() const {
920  return connection;
921  }
922 
923  protected:
924  std::shared_ptr<XLinkConnection> connection;
925 
929  void tryStartPipeline(const Pipeline& pipeline);
930 
940  virtual bool startPipelineImpl(const Pipeline& pipeline);
941 
947  virtual void closeImpl();
948 
949  protected:
950  // protected functions
951  void init(OpenVINO::Version version);
952  void init(OpenVINO::Version version, const dai::Path& pathToCmd);
953  void init(OpenVINO::Version version, UsbSpeed maxUsbSpeed);
954  void init(OpenVINO::Version version, UsbSpeed maxUsbSpeed, const dai::Path& pathToMvcmd);
955  void init(const Pipeline& pipeline);
956  void init(const Pipeline& pipeline, UsbSpeed maxUsbSpeed);
957  void init(const Pipeline& pipeline, const dai::Path& pathToCmd);
958  void init(const Pipeline& pipeline, const DeviceInfo& devInfo);
959  void init(const Pipeline& pipeline, const DeviceInfo& devInfo, bool usb2Mode);
960  void init(const Pipeline& pipeline, const DeviceInfo& devInfo, UsbSpeed maxUsbSpeed);
961  void init(const Pipeline& pipeline, const DeviceInfo& devInfo, const dai::Path& pathToCmd);
962  void init(const Pipeline& pipeline, UsbSpeed maxUsbSpeed, const dai::Path& pathToMvcmd);
963  void init(Config config, UsbSpeed maxUsbSpeed, const dai::Path& pathToMvcmd);
964  void init(Config config, UsbSpeed maxUsbSpeed);
965  void init(Config config, const dai::Path& pathToCmd);
966  void init(Config config, const DeviceInfo& devInfo, UsbSpeed maxUsbSpeed);
967  void init(Config config, const DeviceInfo& devInfo, const dai::Path& pathToCmd);
968 
969  private:
970  // private functions
971  void init2(Config cfg, const dai::Path& pathToMvcmd, tl::optional<const Pipeline&> pipeline);
972  void tryGetDevice();
973 
976 
977  // Log callback
979  std::mutex logCallbackMapMtx;
980  std::unordered_map<int, std::function<void(LogMessage)>> logCallbackMap;
981 
982  // Watchdog thread
983  std::thread watchdogThread;
984  std::atomic<bool> watchdogRunning{true};
985 
986  // Timesync thread
987  std::thread timesyncThread;
988  std::atomic<bool> timesyncRunning{true};
989 
990  // Logging thread
991  std::thread loggingThread;
992  std::atomic<bool> loggingRunning{true};
993 
994  // Profiling thread
995  std::thread profilingThread;
996  std::atomic<bool> profilingRunning{true};
997 
998  // Monitor thread
999  std::thread monitorThread;
1001  std::chrono::steady_clock::time_point lastWatchdogPingTime;
1002 
1003  // closed
1004  mutable std::mutex closedMtx;
1005  bool closed{false};
1006 
1007  // pimpl
1008  class Impl;
1010 
1011  // Device config
1013 
1015  bool dumpOnly = false;
1016 
1017  // Schema of the started pipeline
1019 };
1020 } // namespace dai
LogMessage.hpp
dai::DeviceBase::watchdogRunning
std::atomic< bool > watchdogRunning
Definition: DeviceBase.hpp:984
dai::DeviceBase::getLeonCssCpuUsage
CpuUsage getLeonCssCpuUsage()
Definition: DeviceBase.cpp:1176
dai::DeviceBase::startPipeline
bool startPipeline()
Definition: DeviceBase.cpp:1511
dai::DeviceBase::isClosed
bool isClosed() const
Definition: DeviceBase.cpp:627
dai::DeviceBase::getCalibration
CalibrationHandler getCalibration()
Definition: DeviceBase.cpp:1365
dai::DeviceBase::flashEepromClear
void flashEepromClear()
Definition: DeviceBase.cpp:1475
dai::DeviceBase::setIrLaserDotProjectorBrightness
bool setIrLaserDotProjectorBrightness(float mA, int mask=-1)
Definition: DeviceBase.cpp:1240
dai::DeviceBase::getDeviceInfo
DeviceInfo getDeviceInfo() const
Definition: DeviceBase.cpp:1216
dai::Pipeline
Represents the pipeline, set of nodes and connections between them.
Definition: Pipeline.hpp:100
dai::DeviceBase::DEFAULT_TIMESYNC_RANDOM
static constexpr bool DEFAULT_TIMESYNC_RANDOM
Default Timesync packet interval randomness.
Definition: DeviceBase.hpp:65
dai::DeviceBase::timesyncRunning
std::atomic< bool > timesyncRunning
Definition: DeviceBase.hpp:988
dai::DeviceBase::init2
void init2(Config cfg, const dai::Path &pathToMvcmd, tl::optional< const Pipeline & > pipeline)
Definition: DeviceBase.cpp:670
dai::UsbSpeed
UsbSpeed
Definition: shared/depthai-shared/include/depthai-shared/common/UsbSpeed.hpp:12
dai::DeviceBase::close
void close()
Definition: DeviceBase.cpp:516
dai::DeviceBase::getLogLevel
LogLevel getLogLevel()
Definition: DeviceBase.cpp:1200
dai::DeviceBase::~DeviceBase
virtual ~DeviceBase()
Definition: DeviceBase.cpp:632
dai::DeviceBase::watchdogThread
std::thread watchdogThread
Definition: DeviceBase.hpp:983
dai::DeviceInfo
Definition: XLinkConnection.hpp:27
dai::DeviceBase::getDeviceByMxId
static std::tuple< bool, DeviceInfo > getDeviceByMxId(std::string mxId)
Definition: DeviceBase.cpp:243
dai::DeviceBase::setIrFloodLightBrightness
bool setIrFloodLightBrightness(float mA, int mask=-1)
Definition: DeviceBase.cpp:1248
dai::DeviceBase::tryGetDevice
void tryGetDevice()
Definition: DeviceBase.cpp:320
dai::DeviceBase::getGlobalProfilingData
static ProfilingData getGlobalProfilingData()
Definition: DeviceBase.cpp:263
dai::DeviceBase::Config::board
BoardConfig board
Definition: DeviceBase.hpp:74
dai::OpenVINO::Version
Version
OpenVINO Version supported version information.
Definition: OpenVINO.hpp:20
dai::DeviceBase::lastWatchdogPingTimeMtx
std::mutex lastWatchdogPingTimeMtx
Definition: DeviceBase.hpp:1000
dai::DeviceBase::getLeonMssHeapUsage
MemoryInfo getLeonMssHeapUsage()
Definition: DeviceBase.cpp:1168
dai::DeviceBase::getIrDrivers
std::vector< std::tuple< std::string, int, int > > getIrDrivers()
Definition: DeviceBase.cpp:1256
dai::DeviceBase::profilingRunning
std::atomic< bool > profilingRunning
Definition: DeviceBase.hpp:996
dai::DeviceBase::flashFactoryCalibration
void flashFactoryCalibration(CalibrationHandler calibrationHandler)
Definition: DeviceBase.cpp:1400
dai::DeviceBase::readFactoryCalibration
CalibrationHandler readFactoryCalibration()
Definition: DeviceBase.cpp:1424
dai::DeviceBase::readCalibrationOrDefault
CalibrationHandler readCalibrationOrDefault()
Definition: DeviceBase.cpp:1396
ConnectionInterface.hpp
UsbSpeed.hpp
CameraFeatures.hpp
CpuUsage.hpp
dai::DeviceBase::DEFAULT_SEARCH_TIME
static constexpr std::chrono::seconds DEFAULT_SEARCH_TIME
Default search time for constructors which discover devices.
Definition: DeviceBase.hpp:55
dai::UsbSpeed::SUPER
@ SUPER
dai::DeviceBase::loggingThread
std::thread loggingThread
Definition: DeviceBase.hpp:991
dai::DeviceBase::setCalibration
void setCalibration(CalibrationHandler calibrationDataHandler)
Definition: DeviceBase.cpp:1356
dai::DeviceBase::setLogLevel
void setLogLevel(LogLevel level)
Definition: DeviceBase.cpp:1196
dai::DeviceBase::DEFAULT_TIMESYNC_NUM_SAMPLES
static constexpr int DEFAULT_TIMESYNC_NUM_SAMPLES
Default Timesync number of samples per sync.
Definition: DeviceBase.hpp:63
dai::Version
Version structure.
Definition: Version.hpp:8
dai::DeviceBase::init
void init(OpenVINO::Version version)
Definition: DeviceBase.cpp:422
dai::DeviceBase::getLeonCssHeapUsage
MemoryInfo getLeonCssHeapUsage()
Definition: DeviceBase.cpp:1164
dai::DeviceBase::loggingRunning
std::atomic< bool > loggingRunning
Definition: DeviceBase.hpp:992
dai::DeviceBase::flashCalibration2
void flashCalibration2(CalibrationHandler calibrationDataHandler)
Definition: DeviceBase.cpp:1336
dai::DeviceBase::setLogOutputLevel
void setLogOutputLevel(LogLevel level)
Definition: DeviceBase.cpp:1232
dai::ProfilingData
Definition: ProfilingData.hpp:5
dai::CrashDump
Definition: CrashDump.hpp:14
dai::DeviceBase::Impl
Definition: DeviceBase.cpp:281
ChipTemperature.hpp
dai::DeviceBase::pipelineSchema
tl::optional< PipelineSchema > pipelineSchema
Definition: DeviceBase.hpp:1018
dai::DeviceBase::DeviceBase
DeviceBase(OpenVINO::Version version, T usb2Mode)
Definition: DeviceBase.hpp:241
RawIMUData.hpp
dai::DeviceBase::profilingThread
std::thread profilingThread
Definition: DeviceBase.hpp:995
dai::DeviceBase::getSystemInformationLoggingRate
float getSystemInformationLoggingRate()
Definition: DeviceBase.cpp:1319
dai::DeviceBase::getConnectedCameraFeatures
std::vector< CameraFeatures > getConnectedCameraFeatures()
Definition: DeviceBase.cpp:1109
dai::Pimpl
Definition: Pimpl.hpp:10
dai::DeviceBase::DeviceBase
DeviceBase(const Pipeline &pipeline, T usb2Mode)
Definition: DeviceBase.hpp:174
dai::DeviceBase::config
Config config
Definition: DeviceBase.hpp:1012
dai::DeviceBase::readCalibrationRaw
std::vector< std::uint8_t > readCalibrationRaw()
Definition: DeviceBase.cpp:1453
dai::DeviceBase::readFactoryCalibrationRaw
std::vector< std::uint8_t > readFactoryCalibrationRaw()
Definition: DeviceBase.cpp:1464
dai::DeviceBase::getIMUFirmwareVersion
dai::Version getIMUFirmwareVersion()
Definition: DeviceBase.cpp:1125
StereoPair.hpp
dai::DeviceBase::getProductName
std::string getProductName()
Definition: DeviceBase.cpp:1220
dai::DeviceBase::lastWatchdogPingTime
std::chrono::steady_clock::time_point lastWatchdogPingTime
Definition: DeviceBase.hpp:1001
dai::DeviceBase::getCmxMemoryUsage
MemoryInfo getCmxMemoryUsage()
Definition: DeviceBase.cpp:1160
dai::CpuUsage
Definition: CpuUsage.hpp:12
dai::DeviceBase::readFactoryCalibrationOrDefault
CalibrationHandler readFactoryCalibrationOrDefault()
Definition: DeviceBase.cpp:1434
ProfilingData.hpp
dai::DeviceBase::getEmbeddedIMUFirmwareVersion
dai::Version getEmbeddedIMUFirmwareVersion()
Definition: DeviceBase.cpp:1136
dai::DeviceBase::pimpl
Pimpl< Impl > pimpl
Definition: DeviceBase.hpp:1008
dai::DeviceBase::getConnectionInterfaces
std::vector< ConnectionInterface > getConnectionInterfaces()
Definition: DeviceBase.cpp:1105
Version.hpp
dai::DeviceBase::getConnectedIMU
std::string getConnectedIMU()
Definition: DeviceBase.cpp:1121
dai::DeviceBase::getXLinkChunkSize
int getXLinkChunkSize()
Definition: DeviceBase.cpp:1208
dai::DeviceBase::DeviceBase
DeviceBase(OpenVINO::Version version, const DeviceInfo &devInfo, T usb2Mode)
Definition: DeviceBase.hpp:271
dai::DeviceBase::timesyncThread
std::thread timesyncThread
Definition: DeviceBase.hpp:987
dai::DeviceBase::setIrFloodLightIntensity
bool setIrFloodLightIntensity(float intensity, int mask=-1)
Definition: DeviceBase.cpp:1252
dai::DeviceBase::readCalibration
CalibrationHandler readCalibration()
Definition: DeviceBase.cpp:1376
dai::UsbSpeed::HIGH
@ HIGH
dai::DeviceBase::DeviceBase
DeviceBase(const Pipeline &pipeline, const DeviceInfo &devInfo, T usb2Mode)
Definition: DeviceBase.hpp:204
XLinkConnection.hpp
dai::DeviceBase::Config::logLevel
tl::optional< LogLevel > logLevel
Definition: DeviceBase.hpp:77
dai::DeviceBase::getDeviceName
std::string getDeviceName()
Definition: DeviceBase.cpp:1226
dai::DeviceBase::startPipelineImpl
virtual bool startPipelineImpl(const Pipeline &pipeline)
Definition: DeviceBase.cpp:1525
dai::DeviceBase::closedMtx
std::mutex closedMtx
Definition: DeviceBase.hpp:1004
dai::DeviceBase::getEmbeddedDeviceBinary
static std::vector< std::uint8_t > getEmbeddedDeviceBinary(bool usb2Mode, OpenVINO::Version version=OpenVINO::VERSION_UNIVERSAL)
Definition: DeviceBase.cpp:255
dai::LogMessage
Definition: LogMessage.hpp:13
dai::DeviceBase::setIrLaserDotProjectorIntensity
bool setIrLaserDotProjectorIntensity(float intensity, int mask=-1)
Definition: DeviceBase.cpp:1244
dai::DeviceBase::getBootloaderVersion
tl::optional< Version > getBootloaderVersion()
Definition: DeviceBase.cpp:1188
dai::DeviceBase::closeImpl
virtual void closeImpl()
Definition: DeviceBase.cpp:536
dai::DeviceBase::startIMUFirmwareUpdate
bool startIMUFirmwareUpdate(bool forceUpdate=false)
Definition: DeviceBase.cpp:1147
XLinkStream.hpp
dai::LogLevel
LogLevel
Definition: LogLevel.hpp:12
BoardConfig.hpp
dai::DeviceBase::flashCalibration
bool flashCalibration(CalibrationHandler calibrationDataHandler)
Definition: DeviceBase.cpp:1327
dai::DeviceBase::deviceInfo
DeviceInfo deviceInfo
Definition: DeviceBase.hpp:974
dai::DeviceBase::DEFAULT_TIMESYNC_PERIOD
static constexpr std::chrono::milliseconds DEFAULT_TIMESYNC_PERIOD
Default Timesync period.
Definition: DeviceBase.hpp:61
dai::CalibrationHandler
Definition: CalibrationHandler.hpp:24
dai::DeviceBase::connection
std::shared_ptr< XLinkConnection > connection
Definition: DeviceBase.hpp:924
dai::DeviceBase::setSystemInformationLoggingRate
void setSystemInformationLoggingRate(float rateHz)
Definition: DeviceBase.cpp:1315
dai::DeviceBase::getConnection
std::shared_ptr< const XLinkConnection > getConnection() const
Definition: DeviceBase.hpp:919
CrashDump.hpp
dai::DeviceBase::DeviceBase
DeviceBase()
Definition: DeviceBase.cpp:353
dai::DeviceBase::logCallbackMapMtx
std::mutex logCallbackMapMtx
Definition: DeviceBase.hpp:979
dai::DeviceBase::getCameraSensorNames
std::unordered_map< CameraBoardSocket, std::string > getCameraSensorNames()
Definition: DeviceBase.cpp:1117
dai::DeviceBase::closed
bool closed
Definition: DeviceBase.hpp:1005
dai::DeviceBase::DeviceBase
DeviceBase(Config config, const DeviceInfo &devInfo, T usb2Mode)
Definition: DeviceBase.hpp:366
dai::OpenVINO::VERSION_UNIVERSAL
@ VERSION_UNIVERSAL
Definition: OpenVINO.hpp:20
dai::DeviceBase::readCalibration2
CalibrationHandler readCalibration2()
Definition: DeviceBase.cpp:1385
dai::DeviceBase::tryStartPipeline
void tryStartPipeline(const Pipeline &pipeline)
a safe way to start a pipeline, which is closed if any exception occurs
Definition: DeviceBase.cpp:636
dai::DeviceBase::getConnection
std::shared_ptr< XLinkConnection > getConnection()
Definition: DeviceBase.hpp:912
dai::DeviceBase::getStereoPairs
std::vector< StereoPair > getStereoPairs()
Definition: DeviceBase.cpp:1113
dai::DeviceBase::getProfilingData
ProfilingData getProfilingData()
Definition: DeviceBase.cpp:1268
dai::DeviceBase::Config::outputLogLevel
tl::optional< LogLevel > outputLogLevel
Definition: DeviceBase.hpp:76
PipelineSchema.hpp
OpenVINO.hpp
dai::DeviceBase::Config::version
OpenVINO::Version version
Definition: DeviceBase.hpp:73
dai::DeviceBase::factoryResetCalibration
void factoryResetCalibration()
Definition: DeviceBase.cpp:1444
dai::DeviceBase
Definition: DeviceBase.hpp:50
dai::DeviceBase::getUsbSpeed
UsbSpeed getUsbSpeed()
Definition: DeviceBase.cpp:1184
dai::DeviceBase::getAllAvailableDevices
static std::vector< DeviceInfo > getAllAvailableDevices()
Definition: DeviceBase.cpp:228
tl::optional< LogLevel >
dai::DeviceBase::getLogOutputLevel
LogLevel getLogOutputLevel()
Definition: DeviceBase.cpp:1236
dai::BoardConfig
Definition: BoardConfig.hpp:23
dai::DeviceBase::setXLinkChunkSize
void setXLinkChunkSize(int sizeBytes)
Definition: DeviceBase.cpp:1204
dai::DeviceBase::getLeonMssCpuUsage
CpuUsage getLeonMssCpuUsage()
Definition: DeviceBase.cpp:1180
Pimpl.hpp
dai::DeviceBase::setXLinkRateLimit
void setXLinkRateLimit(int maxRateBytesPerSecond, int burstSize=0, int waitUs=0)
Definition: DeviceBase.cpp:1212
dai::MemoryInfo
Definition: MemoryInfo.hpp:12
CalibrationHandler.hpp
dai::DeviceBase::hasCrashDump
bool hasCrashDump()
Definition: DeviceBase.cpp:1264
dai::DeviceBase::Config
Definition: DeviceBase.hpp:72
dai::DeviceBase::DEFAULT_SYSTEM_INFORMATION_LOGGING_RATE_HZ
static constexpr float DEFAULT_SYSTEM_INFORMATION_LOGGING_RATE_HZ
Default rate at which system information is logged.
Definition: DeviceBase.hpp:57
dai::DeviceBase::getAllConnectedDevices
static std::vector< DeviceInfo > getAllConnectedDevices()
Definition: DeviceBase.cpp:238
dai::DeviceBase::getMxId
std::string getMxId()
Definition: DeviceBase.cpp:1032
dai::DeviceBase::removeLogCallback
bool removeLogCallback(int callbackId)
Definition: DeviceBase.cpp:1286
dai::DeviceBase::getConnectedCameras
std::vector< CameraBoardSocket > getConnectedCameras()
Definition: DeviceBase.cpp:1036
dai::DeviceBase::getAnyAvailableDevice
static std::tuple< bool, DeviceInfo > getAnyAvailableDevice()
Definition: DeviceBase.cpp:206
dai::DeviceBase::getFirstAvailableDevice
static std::tuple< bool, DeviceInfo > getFirstAvailableDevice(bool skipInvalidDevice=true)
Definition: DeviceBase.cpp:213
dai::DeviceBase::uniqueCallbackId
int uniqueCallbackId
Definition: DeviceBase.hpp:978
dai::ChipTemperature
Definition: ChipTemperature.hpp:12
CameraBoardSocket.hpp
dai::DeviceBase::Config::nonExclusiveMode
bool nonExclusiveMode
Definition: DeviceBase.hpp:75
dai::DeviceBase::bootloaderVersion
tl::optional< Version > bootloaderVersion
Definition: DeviceBase.hpp:975
dai::DeviceBase::getAvailableStereoPairs
std::vector< StereoPair > getAvailableStereoPairs()
Definition: DeviceBase.cpp:1040
dai::Path
Represents paths on a filesystem; accepts utf-8, Windows utf-16 wchar_t, or std::filesystem::path.
Definition: Path.hpp:27
dai::DeviceBase::getDefaultSearchTime
static std::chrono::milliseconds getDefaultSearchTime()
Get the Default Search Time for finding devices.
Definition: DeviceBase.cpp:124
dai::DeviceBase::addLogCallback
int addLogCallback(std::function< void(LogMessage)> callback)
Definition: DeviceBase.cpp:1272
dai::DeviceBase::monitorThread
std::thread monitorThread
Definition: DeviceBase.hpp:999
dai::DeviceBase::getChipTemperature
ChipTemperature getChipTemperature()
Definition: DeviceBase.cpp:1172
dai::DeviceBase::isPipelineRunning
bool isPipelineRunning()
Definition: DeviceBase.cpp:1192
dai::DeviceBase::setTimesync
void setTimesync(std::chrono::milliseconds period, int numSamples, bool random)
Definition: DeviceBase.cpp:1298
dai::DeviceBase::DeviceBase
DeviceBase(Config config, T usb2Mode)
Definition: DeviceBase.hpp:343
LogLevel.hpp
dai::DeviceBase::firmwarePath
dai::Path firmwarePath
Definition: DeviceBase.hpp:1014
dai
Definition: CameraExposureOffset.hpp:6
dai::DeviceBase::isEepromAvailable
bool isEepromAvailable()
Definition: DeviceBase.cpp:1323
dai::DeviceBase::getIMUFirmwareUpdateStatus
std::tuple< bool, unsigned int > getIMUFirmwareUpdateStatus()
Definition: DeviceBase.cpp:1151
MemoryInfo.hpp
dai::DeviceBase::flashFactoryEepromClear
void flashFactoryEepromClear()
Definition: DeviceBase.cpp:1493
dai::DeviceBase::DEFAULT_USB_SPEED
static constexpr UsbSpeed DEFAULT_USB_SPEED
Default UsbSpeed for device connection.
Definition: DeviceBase.hpp:59
dai::DeviceBase::getDdrMemoryUsage
MemoryInfo getDdrMemoryUsage()
Definition: DeviceBase.cpp:1156
dai::DeviceBase::dumpOnly
bool dumpOnly
Definition: DeviceBase.hpp:1015
dai::DeviceBase::logCallbackMap
std::unordered_map< int, std::function< void(LogMessage)> > logCallbackMap
Definition: DeviceBase.hpp:980
dai::DeviceBase::getCrashDump
dai::CrashDump getCrashDump(bool clearCrashDump=true)
Definition: DeviceBase.cpp:1260


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