bootloader_config_test.cpp
Go to the documentation of this file.
1 #include <catch2/catch_all.hpp>
2 
3 // std
4 #include <array>
5 
6 // Include depthai library
7 #include <depthai/depthai.hpp>
8 
9 TEST_CASE("Bootloader Config") {
11 
12  // By default IPv4 is 0.0.0.0 (invalid)
13  REQUIRE("0.0.0.0" == config.getIPv4());
14 
15  std::string ipv4 = "192.168.1.150";
16  std::string ipv4Mask = "255.255.255.0";
17  std::string ipv4Gateway = "192.168.1.1";
18 
19  config.setStaticIPv4(ipv4, ipv4Mask, ipv4Gateway);
20 
21  std::array<uint8_t, 4> ipv4InMemory = {192, 168, 1, 150};
22  for(size_t i = 0; i < ipv4InMemory.size(); i++) {
23  REQUIRE(ipv4InMemory[i] == reinterpret_cast<uint8_t*>(&config.network.ipv4)[i]);
24  }
25 
26  REQUIRE(ipv4 == config.getIPv4());
27  REQUIRE(ipv4Mask == config.getIPv4Mask());
28  REQUIRE(ipv4Gateway == config.getIPv4Gateway());
29  REQUIRE(config.isStaticIPV4() == true);
30 
31  std::string dns = "1.1.1.1";
32  std::string dnsAlt = "8.8.8.8";
33 
34  config.setDnsIPv4(dns);
35 
36  REQUIRE(config.getDnsIPv4() == dns);
37  REQUIRE(config.network.ipv4DnsAlt == 0);
38 
39  config.setDnsIPv4(dns, dnsAlt);
40 
41  REQUIRE(config.getDnsIPv4() == dns);
42  REQUIRE(config.getDnsAltIPv4() == dnsAlt);
43 
44  // MAC address
45  std::string mac = "FF:AA:BB:CC:00:11";
46  config.setMacAddress(mac);
47  // std::cout << "Orig mac address: " << mac << " len: " << mac.length() << std::endl;
48  // std::cout << "Get mac address: " << config.getMacAddress() << " len: " << config.getMacAddress().length() << std::endl;
49  REQUIRE(config.getMacAddress() == mac);
50 }
51 
52 TEST_CASE("Bootloader Config retain") {
53  auto config = dai::DeviceBootloader::Config::fromJson({{"my_custom_value", "hi"}});
54 
55  // By default IPv4 is 0.0.0.0 (invalid)
56  REQUIRE("0.0.0.0" == config.getIPv4());
57 
58  std::string ipv4 = "192.168.1.150";
59  std::string ipv4Mask = "255.255.255.0";
60  std::string ipv4Gateway = "192.168.1.1";
61 
62  config.setStaticIPv4(ipv4, ipv4Mask, ipv4Gateway);
63 
64  std::array<uint8_t, 4> ipv4InMemory = {192, 168, 1, 150};
65  for(size_t i = 0; i < ipv4InMemory.size(); i++) {
66  REQUIRE(ipv4InMemory[i] == reinterpret_cast<uint8_t*>(&config.network.ipv4)[i]);
67  }
68 
69  REQUIRE(ipv4 == config.getIPv4());
70  REQUIRE(ipv4Mask == config.getIPv4Mask());
71  REQUIRE(ipv4Gateway == config.getIPv4Gateway());
72  REQUIRE(config.isStaticIPV4() == true);
73 
74  std::string dns = "1.1.1.1";
75  std::string dnsAlt = "8.8.8.8";
76 
77  config.setDnsIPv4(dns);
78 
79  REQUIRE(config.getDnsIPv4() == dns);
80  REQUIRE(config.network.ipv4DnsAlt == 0);
81 
82  config.setDnsIPv4(dns, dnsAlt);
83 
84  REQUIRE(config.getDnsIPv4() == dns);
85  REQUIRE(config.getDnsAltIPv4() == dnsAlt);
86 
87  // MAC address
88  std::string mac = "FF:AA:BB:CC:00:11";
89  config.setMacAddress(mac);
90  // std::cout << "Orig mac address: " << mac << " len: " << mac.length() << std::endl;
91  // std::cout << "Get mac address: " << config.getMacAddress() << " len: " << config.getMacAddress().length() << std::endl;
92  REQUIRE(config.getMacAddress() == mac);
93 
94  // At the end check that value is retained
95  REQUIRE(config.toJson()["my_custom_value"].get<std::string>() == "hi");
96 
97  // Check roundtrip
98  auto j1 = config.toJson();
99  REQUIRE(config.fromJson(j1).toJson() == j1);
100 }
dai::DeviceBootloader::Config::getDnsAltIPv4
std::string getDnsAltIPv4()
Get alternate IPv4 DNS server.
Definition: DeviceBootloader.cpp:1529
dai::DeviceBootloader::Config::fromJson
static Config fromJson(nlohmann::json)
from JSON
Definition: DeviceBootloader.cpp:1594
dai::DeviceBootloader::Config::setDnsIPv4
void setDnsIPv4(std::string dns, std::string dnsAlt="")
Set IPv4 DNS options.
Definition: DeviceBootloader.cpp:1520
dai::DeviceBootloader::Config::getIPv4Gateway
std::string getIPv4Gateway()
Get IPv4 gateway.
Definition: DeviceBootloader.cpp:1516
dai::DeviceBootloader::Config::getIPv4
std::string getIPv4()
Get IPv4.
Definition: DeviceBootloader.cpp:1510
dai::DeviceBootloader::Config
Definition: DeviceBootloader.hpp:39
dai::DeviceBootloader::Config::setMacAddress
void setMacAddress(std::string mac)
Set MAC address if not flashed on controller.
Definition: DeviceBootloader.cpp:1557
depthai.hpp
dai::bootloader::NetworkConfig::ipv4
std::uint32_t ipv4
Definition: Config.hpp:36
dai::bootloader::NetworkConfig::ipv4DnsAlt
std::uint32_t ipv4DnsAlt
Definition: Config.hpp:40
dai::DeviceBootloader::Config::setStaticIPv4
void setStaticIPv4(std::string ip, std::string mask, std::string gateway)
Setting a static IPv4 won't start DHCP client.
Definition: DeviceBootloader.cpp:1493
dai::DeviceBootloader::Config::isStaticIPV4
bool isStaticIPV4()
Get if static IPv4 configuration is set.
Definition: DeviceBootloader.cpp:1506
dai::DeviceBootloader::Config::getDnsIPv4
std::string getDnsIPv4()
Get primary IPv4 DNS server.
Definition: DeviceBootloader.cpp:1525
dai::DeviceBootloader::Config::getMacAddress
std::string getMacAddress()
Get MAC address if not flashed on controller.
Definition: DeviceBootloader.cpp:1570
dai::bootloader::Config::network
NetworkConfig network
Definition: Config.hpp:76
dai::DeviceBootloader::Config::getIPv4Mask
std::string getIPv4Mask()
Get IPv4 mask.
Definition: DeviceBootloader.cpp:1513
TEST_CASE
TEST_CASE("Bootloader Config")
Definition: bootloader_config_test.cpp:9


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