15int main(
int argc, 
char *argv[])
 
   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 ./)");
 
   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);
 
   37        if(vm.count(
"help")) { std::cout << description; 
return 0; }
 
   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>();
 
   49        if (StateMachine_address == 
"") {
 
   50          StateMachine_address = vm[
"command_server"].as<std::string>();
 
   52        if (Logger_address       == 
"") {
 
   53          Logger_address       = vm[
"message_server"].as<std::string>();
 
   59                AcousticDataFilter ADF(Local_addr,Local_port,Client_name, StateMachine_address, Wisdom_file, Output_file, Raw_file, 
Log, Client_dbg_level);
 
   64        catch (std::exception& e)
 
   66                std::cerr<<
"Error: "<<e.what()<<
'\n';
 
   71    catch(
const boost::program_options::error& ex) {
 
   72       std::cerr << ex.what() << 
'\n';
 
 
int main(int argc, char *argv[])