4 #include "XLink/XLink.h"
11 return "X_LINK_USB_VSC";
13 return "X_LINK_USB_CDC";
19 return "X_LINK_TCP_IP";
20 case X_LINK_NMB_OF_PROTOCOLS:
21 return "X_LINK_NMB_OF_PROTOCOLS";
22 case X_LINK_ANY_PROTOCOL:
23 return "X_LINK_ANY_PROTOCOL";
25 return "INVALID_ENUM_VALUE";
30 int main(
int argc,
char** argv)
try {
31 using namespace std::chrono;
35 if(deviceInfos.empty()) {
36 std::cout <<
"No device found to flash. Exiting." << std::endl;
39 for(
int i = 0; i < deviceInfos.size(); i++) {
40 const auto& devInfo = deviceInfos[i];
41 std::cout <<
"[" << i <<
"] " << devInfo.getMxId() <<
"[" <<
ProtocolToStr(devInfo.protocol) <<
"]";
42 if(devInfo.state == X_LINK_BOOTLOADER) {
44 std::cout <<
" current bootloader: " << bl.
getVersion();
46 std::cout << std::endl;
49 std::cout <<
"Which DepthAI device to flash bootloader for (Note: Only NETWORK supported) [0.." << deviceInfos.size() - 1 <<
"]\n";
51 info = deviceInfos[selected];
57 auto progress = [](
float p) { std::cout <<
"Flashing Progress..." << p * 100 <<
"%" << std::endl; };
59 std::cout <<
"Flashing User Bootloader..." << std::endl;
60 auto t1 = steady_clock::now();
65 std::cout <<
"Flashing successful. Took " << duration_cast<milliseconds>(steady_clock::now() - t1).count() <<
"ms" << std::endl;
67 std::cout <<
"Flashing failed: " << message << std::endl;
70 }
catch(
const std::exception& ex) {
71 std::cout <<
"Exception: " << ex.what() << std::endl;