Resources.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <mutex>
4 #include <vector>
5 #include <unordered_map>
6 #include <string>
7 #include <cstdint>
8 #include <thread>
9 
10 // project
14 #include <depthai/utility/Path.hpp>
15 
16 namespace dai {
17 
18 class Resources {
19  // private constructor
20  Resources();
21  ~Resources();
22 
23  mutable std::mutex mtxDevice;
24  mutable std::condition_variable cvDevice;
25  std::thread lazyThreadDevice;
27  std::unordered_map<std::string, std::vector<std::uint8_t>> resourceMapDevice;
28 
29  mutable std::mutex mtxBootloader;
30  mutable std::condition_variable cvBootloader;
31  std::thread lazyThreadBootloader;
33  std::unordered_map<std::string, std::vector<std::uint8_t>> resourceMapBootloader;
34 
35 public:
36  static Resources& getInstance();
37  Resources(Resources const&) = delete;
38  void operator=(Resources const&) = delete;
39 
40  // Available resources
41  std::vector<std::uint8_t> getDeviceFirmware(bool usb2Mode, OpenVINO::Version version = OpenVINO::VERSION_UNIVERSAL) const;
42  std::vector<std::uint8_t> getDeviceFirmware(Device::Config config, dai::Path pathToMvcmd = {}) const;
43  std::vector<std::uint8_t> getBootloaderFirmware(DeviceBootloader::Type type = DeviceBootloader::Type::USB) const;
44 
45 };
46 
47 } // namespace dai
dai::Resources
Definition: Resources.hpp:18
dai::Resources::readyDevice
bool readyDevice
Definition: Resources.hpp:26
dai::Resources::readyBootloader
bool readyBootloader
Definition: Resources.hpp:32
dai::Resources::operator=
void operator=(Resources const &)=delete
dai::OpenVINO::Version
Version
OpenVINO Version supported version information.
Definition: OpenVINO.hpp:20
dai::Resources::getInstance
static Resources & getInstance()
Definition: Resources.cpp:248
dai::bootloader::Type
Type
Definition: Type.hpp:11
Device.hpp
dai::Resources::resourceMapBootloader
std::unordered_map< std::string, std::vector< std::uint8_t > > resourceMapBootloader
Definition: Resources.hpp:33
DeviceBootloader.hpp
dai::Resources::lazyThreadBootloader
std::thread lazyThreadBootloader
Definition: Resources.hpp:31
dai::Resources::~Resources
~Resources()
Definition: Resources.cpp:364
dai::Resources::getDeviceFirmware
std::vector< std::uint8_t > getDeviceFirmware(bool usb2Mode, OpenVINO::Version version=OpenVINO::VERSION_UNIVERSAL) const
Definition: Resources.cpp:371
nanorpc::core::detail::pack::meta::type
type
Definition: pack_meta.h:26
dai::Resources::cvBootloader
std::condition_variable cvBootloader
Definition: Resources.hpp:30
dai::Resources::mtxDevice
std::mutex mtxDevice
Definition: Resources.hpp:23
Path.hpp
dai::Resources::mtxBootloader
std::mutex mtxBootloader
Definition: Resources.hpp:29
dai::OpenVINO::VERSION_UNIVERSAL
@ VERSION_UNIVERSAL
Definition: OpenVINO.hpp:20
OpenVINO.hpp
dai::Resources::getBootloaderFirmware
std::vector< std::uint8_t > getBootloaderFirmware(DeviceBootloader::Type type=DeviceBootloader::Type::USB) const
Definition: Resources.cpp:201
dai::DeviceBase::Config
Definition: DeviceBase.hpp:72
dai::Resources::lazyThreadDevice
std::thread lazyThreadDevice
Definition: Resources.hpp:25
dai::Resources::resourceMapDevice
std::unordered_map< std::string, std::vector< std::uint8_t > > resourceMapDevice
Definition: Resources.hpp:27
dai::Path
Represents paths on a filesystem; accepts utf-8, Windows utf-16 wchar_t, or std::filesystem::path.
Definition: Path.hpp:27
dai::Resources::cvDevice
std::condition_variable cvDevice
Definition: Resources.hpp:24
dai
Definition: CameraExposureOffset.hpp:6
dai::Resources::Resources
Resources()
Definition: Resources.cpp:346


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