1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
//
// Copyright 2012-2015 Ettus Research LLC
// Copyright 2018 Ettus Research, a National Instruments Company
//
// SPDX-License-Identifier: GPL-3.0-or-later
//
#include <boost/program_options.hpp>
#include <boost/format.hpp>
#include <iostream>
namespace po = boost::program_options;
/***********************************************************************
* Find USRP N2XX with specified IP address and return type
**********************************************************************/
void print_image_loader_warning(const std::string &fw_path,
const std::string &fpga_path,
const po::variables_map &vm){
// Newline + indent
#ifdef UHD_PLATFORM_WIN32
const std::string nl = " ^\n ";
#else
const std::string nl = " \\\n ";
#endif
std::string uhd_image_loader = str(boost::format("uhd_image_loader --args=\"type=usrp2,addr=%s")
% vm["addr"].as<std::string>());
if(vm.count("auto-reboot") > 0)
uhd_image_loader += ",reset";
if(vm.count("overwrite-safe") > 0)
uhd_image_loader += ",overwrite-safe";
if(vm.count("dont-check-rev") > 0)
uhd_image_loader += ",dont-check-rev";
uhd_image_loader += "\"";
if(vm.count("no-fw") == 0){
uhd_image_loader += str(boost::format("%s--fw-path=\"%s\"")
% nl % fw_path);
}
else{
uhd_image_loader += str(boost::format("%s--no-fw")
% nl);
}
if(vm.count("no-fpga") == 0){
uhd_image_loader += str(boost::format("%s--fpga-path=\"%s\"")
% nl % fpga_path);
}
else{
uhd_image_loader += str(boost::format("%s--no-fpga")
% nl);
}
std::cout << "************************************************************************************************" << std::endl
<< "ERROR: This utility has been removed in this version of UHD. Use this command:" << std::endl
<< std::endl
<< uhd_image_loader << std::endl
<< std::endl
<< "************************************************************************************************" << std::endl
<< std::endl;
}
int main(int argc, char *argv[])
{
//Establish user options
std::string fw_path;
std::string ip_addr;
std::string fpga_path;
po::options_description desc("Allowed options:");
desc.add_options()
("help", "Display this help message.")
("addr", po::value<std::string>(&ip_addr)->default_value("192.168.10.2"), "Specify an IP address.")
("fw", po::value<std::string>(&fw_path), "Specify a filepath for a custom firmware image.")
("fpga", po::value<std::string>(&fpga_path), "Specify a filepath for a custom FPGA image.")
("no-fw", "Do not burn a firmware image.")
("no-fpga", "Do not burn an FPGA image.")
("overwrite-safe", "Overwrite safe images (not recommended).")
("dont-check-rev", "Don't verify images are for correct model before burning.")
("auto-reboot", "Automatically reboot N2XX without prompting.")
("list", "List available N2XX USRP devices.")
;
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
print_image_loader_warning(fw_path, fpga_path, vm);
return EXIT_FAILURE;
}
|