summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.cpp52
1 files changed, 32 insertions, 20 deletions
diff --git a/main.cpp b/main.cpp
index 106d918..33705bb 100644
--- a/main.cpp
+++ b/main.cpp
@@ -40,12 +40,14 @@
#define MAX_RECEIVED_BYTES 2000
#define TIMEOUT 100 /* By default 100 msec */
-int get_stats = 0;
-int get_nodelist = 0;
-int get_json = 0;
+int opt_get_stats = 0;
+int opt_get_nodelist = 0;
+int opt_get_json = 0;
+int opt_stats_reset = 0;
int timeout = TIMEOUT;
-const char* stats = "stats";
-const char* nodelist = "node list";
+const char* cmd_stats = "stats";
+const char* cmd_stats_reset = "stats reset";
+const char* cmd_nodelist = "node list";
const std::string lora_network_stats_json("/var/tmp/lora_network_stats.json");
const std::string lora_network_nodelist("/var/tmp/lora_network_nodelist");
const std::string lora_network_nodelist_json("/var/tmp/lora_network_nodelist.json");
@@ -80,13 +82,17 @@ int main(int argc, char**argv)
{
parseOptions(argc, argv);
- if (get_stats) {
- getloraData(stats);
+ if (opt_stats_reset) {
+ getloraData(cmd_stats_reset);
+ }
+
+ if (opt_get_stats) {
+ getloraData(cmd_stats);
printStats();
}
- if (get_nodelist) {
- getloraData(nodelist);
- if (get_json) {
+ if (opt_get_nodelist) {
+ getloraData(cmd_nodelist);
+ if (opt_get_json) {
printNodeList();
} else {
if (receiveStream.str().empty() ) {
@@ -237,12 +243,13 @@ void parseOptions(int argc, char** argv) {
exit(0);
}
- const char* short_options = "hvsnjt:";
+ const char* short_options = "hvsirnjt:";
const struct option long_options[] = {
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{"stats", no_argument, 0, 's'},
+ {"stats-reset", no_argument, 0, 'r'},
{"node-list", no_argument, 0, 'n'},
{"json", no_argument, 0, 'j'},
{"timeout", required_argument, 0, 't'},
@@ -255,15 +262,19 @@ void parseOptions(int argc, char** argv) {
while ((rez=getopt_long(argc, argv, short_options, long_options, &option_index))!=-1) {
switch(rez){
case 's': {
- ++get_stats;
+ ++opt_get_stats;
break;
};
+ case 'r': {
+ ++opt_stats_reset;
+ break;
+ };
case 'n': {
- ++get_nodelist;
+ ++opt_get_nodelist;
break;
};
case 'j': {
- ++get_json;
+ ++opt_get_json;
break;
};
case 't': {
@@ -288,12 +299,13 @@ void parseOptions(int argc, char** argv) {
void printHelp(const std::string& sApp) {
printf("Usage: %s [-t timeout] [-s] [-n]\n", sApp.c_str());
printf("\tSimple UDP client utility to pull info from LoRa Network server\n");
- printf("\t--timeout (t) : UDP recv timeout, default: 100 (msecs)\n");
- printf("\t--stats (s) : get LoRa Network server statistics\n");
- printf("\t--node-list (n) : get Node List\n");
- printf("\t--json (j) : data in json format\n");
- printf("\t--help (?) : returns this message\n");
- printf("\t--version (v) : print version\n");
+ printf("\t--timeout (t) : UDP recv timeout, default: 100 (msecs)\n");
+ printf("\t--stats (s) : get LoRa Network server statistics\n");
+ printf("\t--stats-reset (r) : reset LoRa Network server statistics\n");
+ printf("\t--node-list (n) : get Node List\n");
+ printf("\t--json (j) : data in json format\n");
+ printf("\t--help (?) : returns this message\n");
+ printf("\t--version (v) : print version\n");
}
std::string trim(std::string& str) {