mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-05 17:40:40 +02:00
dev: fixed invalid arguments to slsmultireceiver (#1040)
* wasnt showing error message for invalid arguments to slsmultireceiver * allow 0 arguments to act like an slsReceiver with start tcp port 1954 and just 1 receiver
This commit is contained in:
parent
b3d9af29fc
commit
c57e835a41
@ -38,11 +38,12 @@ void sigInterruptHandler(int p) { sem_post(&semaphore); }
|
|||||||
* prints usage of this example program
|
* prints usage of this example program
|
||||||
*/
|
*/
|
||||||
std::string getHelpMessage() {
|
std::string getHelpMessage() {
|
||||||
return std::string(
|
std::ostringstream os;
|
||||||
"\n\nUsage:\n"
|
os << "\nUsage:\n"
|
||||||
"./slsMultiReceiver(detReceiver) [start_tcp_port (non-zero and 16 "
|
<< "./slsMultiReceiver [start tcp port] [num recevers] [call back option (optional)]\n"
|
||||||
"bit)] [num_receivers] [optional: 1 for call back (print frame header "
|
<< "\t - tcp port has to be non-zero and 16 bit\n"
|
||||||
"for debugging), 0 for none (default)]\n\n");
|
<< "\t - call back option is 0 (disabled) by default, 1 prints frame header for debugging\n";
|
||||||
|
return os.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -159,26 +160,37 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
/** - set default values */
|
/** - set default values */
|
||||||
int numReceivers = 1;
|
int numReceivers = 1;
|
||||||
uint16_t startTCPPort = 1954;
|
uint16_t startTCPPort = DEFAULT_TCP_RX_PORTNO;
|
||||||
int withCallback = 0;
|
int withCallback = 0;
|
||||||
sem_init(&semaphore, 1, 0);
|
sem_init(&semaphore, 1, 0);
|
||||||
|
|
||||||
/** - get number of receivers and start tcp port from command line
|
/** - get number of receivers and start tcp port from command line
|
||||||
* arguments */
|
* arguments */
|
||||||
try {
|
if (argc > 1) {
|
||||||
if (argc == 3 || argc == 4) {
|
try {
|
||||||
startTCPPort = sls::StringTo<uint16_t>(argv[1]);
|
if (argc == 3 || argc == 4) {
|
||||||
if (startTCPPort == 0) {
|
startTCPPort = sls::StringTo<uint16_t>(argv[1]);
|
||||||
throw;
|
if (startTCPPort == 0) {
|
||||||
}
|
throw std::runtime_error("Invalid start tcp port");
|
||||||
numReceivers = std::stoi(argv[2]);
|
}
|
||||||
if (argc == 4) {
|
numReceivers = std::stoi(argv[2]);
|
||||||
withCallback = std::stoi(argv[3]);
|
if (numReceivers > 1024) {
|
||||||
}
|
cprintf(RED, "Did you mix up the order of the arguments?\n%s\n", getHelpMessage().c_str());
|
||||||
} else
|
return EXIT_FAILURE;
|
||||||
throw;
|
}
|
||||||
} catch (...) {
|
if (numReceivers == 0) {
|
||||||
throw std::runtime_error(getHelpMessage());
|
cprintf(RED, "Invalid number of receivers.\n%s\n", getHelpMessage().c_str());
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
if (argc == 4) {
|
||||||
|
withCallback = std::stoi(argv[3]);
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
throw std::runtime_error("Invalid number of arguments");
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
cprintf(RED, "Error: %s\n%s\n", e.what(), getHelpMessage().c_str());
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cprintf(BLUE, "Parent Process Created [ Tid: %ld ]\n", (long)gettid());
|
cprintf(BLUE, "Parent Process Created [ Tid: %ld ]\n", (long)gettid());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user