fix command line options

This commit is contained in:
IMback 2017-11-05 22:15:06 +01:00
parent 7603d1c59d
commit 4c26477f91

View File

@ -63,6 +63,7 @@ public:
std::string portFileName = "/dev/ttyUSB0";
unsigned short port = 6856;
int baud = 0000017;
bool ignMissingSerialport = false;
};
static int parseCmdArgs(int argc, char** argv, Config *config)
@ -76,19 +77,24 @@ static int parseCmdArgs(int argc, char** argv, Config *config)
}
else if (std::string(argv[i]) == "--serialport" || std::string(argv[i]) == "-p")
{
if(argc > i+1) config->portFileName = argv[i+1];
if(argc > i) config->portFileName = argv[i+1];
else return -1;
}
else if (std::string(argv[i]) == "--port" || std::string(argv[i]) == "-P")
{
if(argc > i+1) config->portFileName = atoi(argv[i+1]);
if(argc > i) config->port = atoi(argv[i+1]);
else return -1;
}
else if (std::string(argv[i]) == "--baud" || std::string(argv[i]) == "-b")
else if (std::string(argv[i]) == "--baud" || std::string(argv[i]) == "-b")
{
if(argc > i+1) config->baud = atoi(argv[i+1]);
if(argc > i) config->baud = atoi(argv[i+1]);
else return -1;
}
else if (std::string(argv[i]) == "-d")
{
config->ignMissingSerialport=true;
}
else if (std::string(argv[i]) == "-r" || std::string(argv[i]) == "--rates")
{
printRates();
@ -121,11 +127,17 @@ int main(int argc, char* argv[])
std::cout<<"UVOS serial mulitplexer v0.1\n";
std::cout<<"Using serial port: "<<config.portFileName<<" at "<<config.baud<<" baud\n";
int serial = serialport_init(config.portFileName.c_str(), config.baud);
if(serial == -1)
{
if(config.ignMissingSerialport) std::cout<<"Continuing in demo mode\n";
else return 1;
}
std::vector<TCPSocket*> clientSockets;
std::cout<<"opening TCP socet on port "<<config.port<<'\n';
std::cout<<"opening TCP socket on port "<<config.port<<'\n';
TCPServerSocket servSock(config.port, 5, true); // Server Socket object
servSock.setBlocking(false);