Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
Main.cc
Go to the documentation of this file.
1#include <stdlib.h>
2#include <iostream>
3
4
5#include <boost/program_options.hpp>
6#include <boost/lexical_cast.hpp>
7
10
11/**
12 * \author fsimeone
13 */
14
15int main(int argc, char *argv[])
16{
17 boost::program_options::options_description description("Acoustic data filter options");
18 description.add_options()
19 ("help,h", "Show the help")
20 ("statemachine,s", boost::program_options::value<std::string>()->default_value(""), "State machine server address (default \"\")")
21 ("command_server,H", boost::program_options::value<std::string>()->default_value("localhost"), "State machine server address (default localhost)")
22 ("logger,l", boost::program_options::value<std::string>()->default_value(""), "Logger server address (default \"\")")
23 ("message_server,M", boost::program_options::value<std::string>()->default_value("localhost"), "Logger server address (default localhost)")
24 ("debug,d", boost::program_options::value<int>()->default_value(0), "Debug level (default 0)")
25 ("name,n", boost::program_options::value<std::string>()->default_value("AcousticDataFilter"), "Client name (default AcousticDataFilter)")
26 ("address,a", boost::program_options::value<std::string>()->default_value("127.0.0.1"), "Local address for the TCP audio server used to receive the data stream from the DQ (default 127.0.0.1)")
27 ("port,p", boost::program_options::value<int>()->default_value(5800), "Local port number TCP audio server used to receive the data stream from the DQ (default 5800)")
28 ("wisdom,w", boost::program_options::value<std::string>()->default_value("./Wisdom.txt"), "Local path and name of the wisdom file (default ./Wisdom.txt)")
29 ("output,o", boost::program_options::value<std::string>()->default_value("./"), "Path of the output files (default ./)")
30 ("raw,r", boost::program_options::value<std::string>()->default_value("./"), "Path of the raw files (default ./)");
31
32 try {
33 boost::program_options::variables_map vm;
34 boost::program_options::store(boost::program_options::command_line_parser(argc, argv).options(description).run(), vm);
35 boost::program_options::notify(vm);
36
37 if(vm.count("help")) { std::cout << description; return 0; }
38
39 std::string Local_addr = vm["address"].as<std::string>();
40 std::string Local_port = boost::lexical_cast<std::string>(vm["port"].as<int>());
41 std::string StateMachine_address = vm["statemachine"].as<std::string>();
42 std::string Logger_address = vm["logger"].as<std::string>();
43 int Client_dbg_level = vm["debug"].as<int>();
44 std::string Client_name = vm["name"].as<std::string>();
45 std::string Wisdom_file = vm["wisdom"].as<std::string>();
46 std::string Output_file = vm["output"].as<std::string>();
47 std::string Raw_file = vm["raw"].as<std::string>();
48
49 if (StateMachine_address == "") {
50 StateMachine_address = vm["command_server"].as<std::string>();
51 }
52 if (Logger_address == "") {
53 Logger_address = vm["message_server"].as<std::string>();
54 }
55
56 try
57 {
59 AcousticDataFilter ADF(Local_addr,Local_port,Client_name, StateMachine_address, Wisdom_file, Output_file, Raw_file, Log, Client_dbg_level);
60 ADF.enter();
61 ADF.run();
62 return 0;
63 }
64 catch (std::exception& e)
65 {
66 std::cerr<<"Error: "<<e.what()<<'\n';
67 return -1;
68 }
69
70 }
71 catch(const boost::program_options::error& ex) {
72 std::cerr << ex.what() << '\n';
73 return -2;
74 }
75}
int main(int argc, char *argv[])
Definition Main.cc:15
Message logging based on ControlHost.
void run()
Run as run control client following command messages via JNET::JControlHost.
virtual bool enter(const JArgs &args)
Enter the state machine.
Definition log.hh:13