Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed
Fork of ICE by
Diff: src/CommandParser/cmd.cpp
- 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"); +}