Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Revision:
18:9cf694a764c0
Parent:
14:cc916fa8dd11
Child:
28:c410a61238bb
diff -r 7f6599312962 -r 9cf694a764c0 src/CommandParser/cmd.cpp
--- a/src/CommandParser/cmd.cpp	Wed Sep 07 18:38:35 2016 +0000
+++ b/src/CommandParser/cmd.cpp	Wed Sep 07 19:04:16 2016 +0000
@@ -52,13 +52,18 @@
     {"?",                   "help command",                                     cmd_help            },
     {"create",              "create a control",                                 cmd_create          },
     {"destroy",             "destroy a control",                                cmd_destroy         },
+    {"ccf",                 "create a test control file",                       cmd_ccf             }, 
     {"heap",                "show heap statistics",                             cmd_heap            },
     {"help",                "help command",                                     cmd_help            },
     {"ls",                  "list user files",                                  cmd_ls              },
     {"modify",              "modify a control",                                 cmd_modify          },
     {"reset",               "reset the controller",                             cmd_reset           },
+    {"resetStats",          "reset current mDot statistics",                    cmd_resetStats      },
     {"rm",                  "remove a user file",                               cmd_rm              },
+    {"rssiStats",           "get current rssi stats",                           cmd_rssiStats       },
     {"showControls",        "display active controls",                          cmd_ShowControls    },
+    {"snrStats",            "get current SNR stats",                            cmd_snrStats        }, 
+    {"stats",               "get current mDot statistics",                      cmd_stats           },
     {NULL, NULL, NULL}
 };
 
@@ -140,7 +145,7 @@
     vector<mDot::mdot_file> userFiles;
     userFiles = GLOBAL_mdot->listUserFiles();
     vector<mDot::mdot_file>::iterator pos;
-    
+
     for ( pos = userFiles.begin(); pos != userFiles.end(); ++pos ) {
         printf("\r  %-33s %d\n", pos->name, pos->size);
     }
@@ -153,33 +158,35 @@
     UNUSED(argc);
     UNUSED(argv);
     ConfigurationHandler_showControls();
+    printf("\r\n");
+
 }
 
 void cmd_reset(int argc, char **argv)
 {
     UNUSED(argc);
     UNUSED(argv);
-    GLOBAL_mdot->resetCpu(); 
+    GLOBAL_mdot->resetCpu();
 }
 
 void cmd_rm(int argc, char **argv)
 {
-    UNUSED(argc); 
+    UNUSED(argc);
     UNUSED(argv);
-    
+
     if ( argc != 2 ) {
         printf("\rusage: rm <filename>\n");
         return;
     }
-    // attempt to remove a user file 
+    // attempt to remove a user file
     GLOBAL_mdot->deleteUserFile(argv[1]);
 }
-    
+
 void cmd_create(int argc, char **argv)
 {
     if ( argc != 3 ) {
         printf("\r\nusage: create [controlName] [controlType]\n");
-        printf("\rcontrolType-> 0=timer, 1=PID, 2=setpoint, 3=composite, 4=manual\n");
+        printf("\rcontrolType-> 0=timer, 1=PID, 2=setpoint, 3=composite, 4=manual\r\n");
         return;
     }
     // send a message to the configuration handler to create the control
@@ -193,6 +200,7 @@
            __func__, msg->controlFile, msg->control);
 
     MailBox.put(msg);
+    printf("\r\n");
     return;
 }
 
@@ -200,7 +208,7 @@
 {
     if ( argc != 3 ) {
         printf("\r\nusage: destroy [controlName] [controlType]\n");
-        printf("\rcontrolType-> 0=timer, 1=PID, 2=setpoint, 3=composite, 4=manual\n");
+        printf("\rcontrolType-> 0=timer, 1=PID, 2=setpoint, 3=composite, 4=manual\r\n");
         return;
     }
 
@@ -215,9 +223,39 @@
            __func__, msg->controlFile);
 
     MailBox.put(msg);
+    printf("\r\n");
     return;
 }
 
+void cmd_ccf(int argc, char **argv) 
+{
+    if ( argc != 2 ) {
+        printf("\rusage: ccf <filename>\r\n"); 
+        return;
+    }
+    
+    char data_buf[1024];
+    snprintf(data_buf, sizeof(data_buf), 
+        "{ \"mtype\":100, "
+          "\"id\":\"SP\", "
+          "\"priority\":\"800\", "
+          "\"input\":\"i_tra01\", "
+          "\"output\":\"o_r05\", "
+          "\"prodfact\":\"100\", "
+          "\"halert\":\"115\", "
+          "\"lalert\":\"85\", "
+          "\"hfs\":\"130\", "
+          "\"lfs\":\"70\", "
+          "\"dcntl\":\"1\", "
+          "\"tol\":\"5\" } "
+          );
+
+    bool status = GLOBAL_mdot->saveUserFile(argv[1], (void *)data_buf, 1024);
+    if( status != true ) {
+        logInfo("(%d)save file failed, status=%d", __LINE__, status);
+    }
+}
+
 void cmd_heap(int argc, char **argv)
 {
     UNUSED(argc), UNUSED(argv);
@@ -231,6 +269,45 @@
     return;
 }
 
+void cmd_stats(int argc, char **argv)
+{
+    mDot::mdot_stats stats = GLOBAL_mdot->getStats();
 
+    printf("\r         Up: %u\n", stats.Up);
+    printf("\r       Down: %u\n", stats.Down);
+    printf("\r      Joins: %u\n", stats.Joins);
+    printf("\r  JoinFails: %u\n", stats.JoinFails);
+    printf("\r MissedAcks: %u\n", stats.MissedAcks);
+    printf("\r  CRCErrors: %u\n", stats.CRCErrors);
+
+    printf("\r\n");
+}
+
+void cmd_resetStats(int argc, char **argv)
+{
+    GLOBAL_mdot->resetStats();
+}
 
+void cmd_rssiStats(int argc, char **argv)
+{
+    mDot::rssi_stats s = GLOBAL_mdot->getRssiStats();
 
+    printf("\r     Last: %d dB\n", s.last);
+    printf("\r      Min: %d dB\n", s.min);
+    printf("\r      Max: %d dB\n", s.max);
+    printf("\r      Avg: %d dB\n", s.avg);
+
+    printf("\r\n");
+}
+
+void cmd_snrStats(int argc, char **argv)
+{
+    mDot::snr_stats s = GLOBAL_mdot->getSnrStats();
+
+    printf("\r     Last: %d cB\n", s.last);
+    printf("\r      Min: %d cB\n", s.min);
+    printf("\r      Max: %d cB\n", s.max);
+    printf("\r      Avg: %d cB\n", s.avg);
+
+    printf("\r\n");
+}