Main Page
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
Functions
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
Variables
b
c
d
e
h
i
l
m
n
p
r
s
u
x
Typedefs
b
c
d
e
f
g
i
m
p
r
u
v
Enumerations
Enumerator
a
b
f
g
i
m
n
r
s
u
Classes
Class List
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
y
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
h
i
m
n
p
q
r
s
t
u
v
x
Enumerations
a
c
d
e
f
k
l
m
p
r
s
t
v
w
Enumerator
a
b
d
f
g
h
i
l
m
n
o
p
r
s
u
v
Related Functions
Files
File List
File Members
All
_
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
t
u
v
w
Functions
b
c
d
e
f
g
m
o
p
r
s
t
u
v
w
Variables
a
b
c
d
e
f
i
k
l
m
n
o
p
r
s
t
w
Typedefs
Enumerations
Enumerator
Macros
_
d
f
i
m
n
p
s
t
u
shared
depthai-bootloader-shared
include
depthai-bootloader-shared
Config.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Memory.hpp
"
4
5
// std
6
#include <array>
7
#include <chrono>
8
#include <cstdint>
9
10
// libraries
11
#include "
NlohmannJsonCompat.hpp
"
12
13
#define DEPTHAI_BOOTLOADER_NLOHMANN_JSON_OPTIONAL_TO(v1) nlohmann::to_json(nlohmann_json_j[#v1], nlohmann_json_t.v1);
14
#define DEPTHAI_BOOTLOADER_NLOHMANN_JSON_OPTIONAL_FROM(v1) if(nlohmann_json_j.contains(#v1)) nlohmann_json_j[#v1].get_to(nlohmann_json_t.v1);
15
16
#define DEPTHAI_BOOTLOADER_NLOHMANN_DEFINE_TYPE_OPTIONAL_NON_INTRUSIVE(Type, ...) \
17
inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { DEPTHAI_BOOTLOADER_NLOHMANN_JSON_EXPAND(DEPTHAI_BOOTLOADER_NLOHMANN_JSON_PASTE(DEPTHAI_BOOTLOADER_NLOHMANN_JSON_OPTIONAL_TO, __VA_ARGS__)) } \
18
inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { DEPTHAI_BOOTLOADER_NLOHMANN_JSON_EXPAND(DEPTHAI_BOOTLOADER_NLOHMANN_JSON_PASTE(DEPTHAI_BOOTLOADER_NLOHMANN_JSON_OPTIONAL_FROM, __VA_ARGS__)) }
19
20
namespace
dai
21
{
22
namespace
bootloader
23
{
24
25
26
// Config
27
struct
NetworkConfig
{
33
int
timeoutMs
= 30000;
34
// Network configuration options
35
// IPv4
36
std::uint32_t
ipv4
= 0;
37
std::uint32_t
ipv4Mask
= 0;
38
std::uint32_t
ipv4Gateway
= 0;
39
std::uint32_t
ipv4Dns
= 0;
40
std::uint32_t
ipv4DnsAlt
= 0;
41
bool
staticIpv4
=
false
;
42
// TODO(themarpe) - IPv6
43
std::array<uint32_t, 4>
ipv6
= {};
44
std::uint32_t
ipv6Prefix
= 0;
45
std::array<uint32_t, 4>
ipv6Gateway
= {};
46
std::array<uint32_t, 4>
ipv6Dns
= {};
47
std::array<uint32_t, 4>
ipv6DnsAlt
= {};
48
bool
staticIpv6
=
false
;
49
// MAC address - if not flashed, overwrites autogenerated one
50
std::array<uint8_t, 6>
mac
= {};
51
};
52
DEPTHAI_BOOTLOADER_NLOHMANN_DEFINE_TYPE_OPTIONAL_NON_INTRUSIVE
(NetworkConfig, timeoutMs, ipv4, ipv4Mask, ipv4Gateway, ipv4Dns, ipv4DnsAlt, staticIpv4, ipv6, ipv6Prefix, ipv6Gateway, ipv6Dns, ipv6DnsAlt, staticIpv6, mac);
53
54
// Config
55
struct
UsbConfig
{
61
int
timeoutMs
= 3000;
62
66
int
maxUsbSpeed
= 3;
67
69
uint16_t
vid
= 0x03E7,
pid
= 0xF63C;
70
};
71
DEPTHAI_BOOTLOADER_NLOHMANN_DEFINE_TYPE_OPTIONAL_NON_INTRUSIVE
(
UsbConfig
, timeoutMs, maxUsbSpeed, vid, pid);
72
73
struct
Config
{
74
Memory
appMem
=
Memory::AUTO
;
75
UsbConfig
usb
;
76
NetworkConfig
network
;
77
uint32_t
userBlSize
= 0;
78
uint32_t
userBlChecksum
= 0;
79
};
80
DEPTHAI_BOOTLOADER_NLOHMANN_DEFINE_TYPE_OPTIONAL_NON_INTRUSIVE
(
Config
, appMem, usb, network, userBlSize, userBlChecksum);
81
82
}
// namespace bootloader
83
}
// namespace dai
84
dai::bootloader::UsbConfig::pid
uint16_t pid
Definition:
Config.hpp:69
dai::bootloader::NetworkConfig
Definition:
Config.hpp:27
dai::bootloader::Memory::AUTO
@ AUTO
dai::bootloader::NetworkConfig::mac
std::array< uint8_t, 6 > mac
Definition:
Config.hpp:50
dai::bootloader::NetworkConfig::ipv6
std::array< uint32_t, 4 > ipv6
Definition:
Config.hpp:43
dai::bootloader::NetworkConfig::staticIpv4
bool staticIpv4
Definition:
Config.hpp:41
dai::bootloader::NetworkConfig::ipv4Mask
std::uint32_t ipv4Mask
Definition:
Config.hpp:37
dai::bootloader::UsbConfig::vid
uint16_t vid
VID/PID pair used by bootloader.
Definition:
Config.hpp:69
dai::bootloader::NetworkConfig::ipv6DnsAlt
std::array< uint32_t, 4 > ipv6DnsAlt
Definition:
Config.hpp:47
dai::bootloader::NetworkConfig::timeoutMs
int timeoutMs
Definition:
Config.hpp:33
dai::bootloader::Memory
Memory
Definition:
Memory.hpp:11
dai::bootloader::UsbConfig::timeoutMs
int timeoutMs
Definition:
Config.hpp:61
dai::bootloader::Config::appMem
Memory appMem
Definition:
Config.hpp:74
dai::bootloader::DEPTHAI_BOOTLOADER_NLOHMANN_DEFINE_TYPE_OPTIONAL_NON_INTRUSIVE
DEPTHAI_BOOTLOADER_NLOHMANN_DEFINE_TYPE_OPTIONAL_NON_INTRUSIVE(NetworkConfig, timeoutMs, ipv4, ipv4Mask, ipv4Gateway, ipv4Dns, ipv4DnsAlt, staticIpv4, ipv6, ipv6Prefix, ipv6Gateway, ipv6Dns, ipv6DnsAlt, staticIpv6, mac)
dai::bootloader::NetworkConfig::ipv4
std::uint32_t ipv4
Definition:
Config.hpp:36
dai::bootloader::UsbConfig::maxUsbSpeed
int maxUsbSpeed
Definition:
Config.hpp:66
dai::bootloader::NetworkConfig::ipv4DnsAlt
std::uint32_t ipv4DnsAlt
Definition:
Config.hpp:40
NlohmannJsonCompat.hpp
dai::bootloader::NetworkConfig::ipv6Dns
std::array< uint32_t, 4 > ipv6Dns
Definition:
Config.hpp:46
Memory.hpp
dai::bootloader::NetworkConfig::ipv4Dns
std::uint32_t ipv4Dns
Definition:
Config.hpp:39
dai::bootloader::Config::userBlChecksum
uint32_t userBlChecksum
Definition:
Config.hpp:78
dai::bootloader::NetworkConfig::ipv6Gateway
std::array< uint32_t, 4 > ipv6Gateway
Definition:
Config.hpp:45
dai::bootloader::NetworkConfig::ipv4Gateway
std::uint32_t ipv4Gateway
Definition:
Config.hpp:38
dai::bootloader::Config
Definition:
Config.hpp:73
dai::bootloader::UsbConfig
Definition:
Config.hpp:55
dai::bootloader::Config::userBlSize
uint32_t userBlSize
Definition:
Config.hpp:77
dai::bootloader::NetworkConfig::staticIpv6
bool staticIpv6
Definition:
Config.hpp:48
dai::bootloader::Config::network
NetworkConfig network
Definition:
Config.hpp:76
dai::bootloader::Config::usb
UsbConfig usb
Definition:
Config.hpp:75
dai
Definition:
CameraExposureOffset.hpp:6
dai::bootloader::NetworkConfig::ipv6Prefix
std::uint32_t ipv6Prefix
Definition:
Config.hpp:44
depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19