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:
- 215:309c73f0fff6
- Parent:
- 213:b30d94ecfa84
- Parent:
- 214:52ef35bc44ec
- Child:
- 216:7783e894f7e0
diff -r b30d94ecfa84 -r 309c73f0fff6 src/CommandParser/cmd.cpp
--- a/src/CommandParser/cmd.cpp Mon Oct 10 16:07:40 2016 +0000
+++ b/src/CommandParser/cmd.cpp Tue Oct 11 15:33:40 2016 +0000
@@ -81,6 +81,7 @@
{"modmap", "dump modbus register map", cmd_modmap },
{"mod-cmd", "send command to modbus master", cmd_modbusCmd },
{"peep", "push EEP", cmd_peep },
+ {"regcmd", "create command to execute on register", cmd_regcmd },
{"reset", "reset the controller", cmd_reset },
{"reset-stats", "reset current mDot statistics", cmd_resetStats },
{"rm", "remove a user file", cmd_rm },
@@ -96,6 +97,7 @@
{"stats", "get current mDot statistics", cmd_stats },
{"time", "get current time", cmd_time },
{"simall", "simulate multiple inputs", cmd_simall },
+ {"trim-temp", "adjust temperature from ICE Tube", cmd_trimTemp },
{NULL, NULL, NULL}
};
@@ -1235,7 +1237,7 @@
SimulateInputMap["i_bdcond01"].moving_up = true;
ModbusRegisterMap["i_cond_temp01"].simulated = true;
- SimulateInputMap["i_cond_temp01"].start_value = 25.0;
+ SimulateInputMap["i_cond_temp01"].start_value = 25000.0;
SimulateInputMap["i_cond_temp01"].min = 0;
SimulateInputMap["i_cond_temp01"].max = 0;
SimulateInputMap["i_cond_temp01"].up_step = 0;
@@ -1251,7 +1253,7 @@
SimulateInputMap["i_ph01"].moving_up = true;
ModbusRegisterMap["i_ph_temp01"].simulated = true;
- SimulateInputMap["i_ph_temp01"].start_value = 25.0;
+ SimulateInputMap["i_ph_temp01"].start_value = 25000.0;
SimulateInputMap["i_ph_temp01"].min = 0;
SimulateInputMap["i_ph_temp01"].max = 0;
SimulateInputMap["i_ph_temp01"].up_step = 0;
@@ -1633,6 +1635,30 @@
Thread::wait(5000);
+ snprintf(buf, sizeof(buf),
+ "{ "
+ "\"id\":\"%s\", "
+ "\"tag\":\"%s\", "
+ "\"opl\":\"%s\", "
+ "\"opr\":\"%s\", "
+ "\"op\":\"%s\", "
+ "\"c\":\"%s\" } ", "TEMP_CONV_PH01", "i_ph_temp01", "i_ph_temp01", "", "/", "1000.0");
+
+ printf("JSON=%s\r\n",buf);
+
+ rc = GLOBAL_mdot->saveUserFile("vcmd_TEMP_CONV_PH01.json", (void *)buf, MAX_FILE_SIZE);
+ if( rc != true ) {
+ printf("(%d)save file failed, status=%d\r\n", __LINE__, rc);
+ }
+
+ logInfo("Sending Mail To ModbusMasterMailBox, filename=%s", "vcmd_TEMP_CONV_PH01.json");
+ mail = ModbusMasterMailBox.alloc();
+ mail->action = ACTION_READ_FILE;
+ strncpy( mail->controlFile, "vcmd_TEMP_CONV_PH01.json", (sizeof(mail->controlFile)-1));
+ ModbusMasterMailBox.put(mail);
+
+ Thread::wait(5000);
+
// OUTPUT: Relay 01
snprintf(buf, sizeof(buf),
"{ "
@@ -1721,7 +1747,7 @@
Thread::wait(2000);
-#ifdef MORE_CONTROLS
+/*
// OUTPUT: Relay 03
snprintf(buf, sizeof(buf),
"{ "
@@ -1810,7 +1836,7 @@
Thread::wait(2000);
-#endif
+*/
// SETPOINT: Blowdown
snprintf(buf, sizeof(buf),
"{ "
@@ -1877,7 +1903,7 @@
MailBox.put(sp_msg);
Thread::wait(2000);
-#ifdef MORE_CONTROLS
+/*
// SETPOINT: Acid Base
snprintf(buf, sizeof(buf),
"{ "
@@ -1943,7 +1969,7 @@
MailBox.put(sp_msg);
Thread::wait(2000);
-#endif
+*/
}
/*****************************************************************************
@@ -2031,4 +2057,135 @@
mail->action = ACTION_EXEC_CMD;
strncpy( mail->controlFile, snd_buf, (sizeof(mail->controlFile)-1));
ModbusMasterMailBox.put(mail);
+}
+
+/*****************************************************************************
+ * Function: cmd_regcmd
+ * Description: create register command
+ *
+ * @param argc-> number of args
+ * @param argv-> filename
+ * @return none
+ *****************************************************************************/
+void cmd_regcmd(int argc, char **argv)
+{
+ char filename[64];
+
+ printf("argc=%d\r\n",argc);
+
+ if ( argc != 7 ) {
+ printf("\rusage: regcmd <if> <tag> <opl> <opr> <op> <c>\n");
+ printf("\rexample: regcmd TEMP_CONV_PH01 i_ph_temp01 i_ph_temp01 - / 1000\n");
+ return;
+ }
+
+ memset( filename, 0, 64 );
+ snprintf( filename, 63, "%s%s%s", "vcmd_", argv[1], ".json" );
+ printf("filename=%s\r\n",filename);
+
+ std::string opl(argv[4]);
+
+ printf("argv[4]=%s, opl=%s\r\n",argv[4], opl.c_str());
+ if( opl.c_str()[0] == '-' )
+ {
+ printf("argv[4]=%s, SETTING TO NULL\r\n",argv[4]);
+ opl = "";
+ }
+
+ char data_buf[MAX_FILE_SIZE];
+ snprintf(data_buf, sizeof(data_buf),
+ "{ "
+ "\"id\":\"%s\", "
+ "\"tag\":\"%s\", "
+ "\"opl\":\"%s\", "
+ "\"opr\":\"%s\", "
+ "\"op\":\"%s\", "
+ "\"c\":\"%s\" } ", argv[1], argv[2], argv[3], opl.c_str(), argv[5], argv[6]);
+
+ printf("JSON=%s\r\n",data_buf);
+
+ bool status = GLOBAL_mdot->saveUserFile(filename, (void *)data_buf, MAX_FILE_SIZE);
+ if( status != true ) {
+ logInfo("(%d)save file failed, status=%d", __LINE__, status);
+ }
+
+ logInfo("Sending Mail To ModbusMasterMailBox, filename=%s", filename);
+ Message_t *mail = ModbusMasterMailBox.alloc();
+ mail->action = ACTION_READ_FILE;
+ strncpy( mail->controlFile, filename, (sizeof(mail->controlFile)-1));
+ ModbusMasterMailBox.put(mail);
+}
+
+
+/*****************************************************************************
+ * Function: cmd_trimTemp
+ * Description: create register command
+ *
+ * @param argc-> number of args
+ * @param argv-> filename
+ * @return none
+ *****************************************************************************/
+void cmd_trimTemp(int argc, char **argv)
+{
+/*
+
+ char filename[64];
+
+ memset( filename, 0, 64 );
+ snprintf( filename, 63, "%s%s%s", "vcmd_", "2_DIV_TEMP_PH01", ".json" );
+ printf("filename=%s\r\n",filename);
+
+ char data_buf[MAX_FILE_SIZE];
+ snprintf(data_buf, sizeof(data_buf),
+ "{ "
+ "\"id\":\"%s\", "
+ "\"tag\":\"%s\", "
+ "\"opl\":\"%s\", "
+ "\"opr\":\"%s\", "
+ "\"op\":\"%s\", "
+ "\"c\":\"%s\" } ", "2_DIV_TEMP_PH01", "i_ph_temp01", "i_ph_temp01", "", "/", "1000.0");
+
+ printf("JSON=%s\r\n",data_buf);
+
+ bool status = GLOBAL_mdot->saveUserFile(filename, (void *)data_buf, MAX_FILE_SIZE);
+ if( status != true ) {
+ logInfo("(%d)save file failed, status=%d", __LINE__, status);
+ }
+
+ logInfo("Sending Mail To ModbusMasterMailBox, filename=%s", filename);
+ Message_t *mail = ModbusMasterMailBox.alloc();
+ mail->action = ACTION_READ_FILE;
+ strncpy( mail->controlFile, filename, (sizeof(mail->controlFile)-1));
+ ModbusMasterMailBox.put(mail);
+
+ Thread::wait(5000);
+
+ memset( filename, 0, 64 );
+ snprintf( filename, 63, "%s%s%s", "vcmd_", "1_CONST_TEMP_PH01", ".json" );
+ printf("filename=%s\r\n",filename);
+
+ snprintf(data_buf, sizeof(data_buf),
+ "{ "
+ "\"id\":\"%s\", "
+ "\"tag\":\"%s\", "
+ "\"opl\":\"%s\", "
+ "\"opr\":\"%s\", "
+ "\"op\":\"%s\", "
+ "\"c\":\"%s\" } ", "1_CONST_TEMP_PH01", "i_ph_temp01", "i_ph_temp01", "", "=", "26000.0");
+
+ printf("JSON=%s\r\n",data_buf);
+
+ status = GLOBAL_mdot->saveUserFile(filename, (void *)data_buf, MAX_FILE_SIZE);
+ if( status != true ) {
+ logInfo("(%d)save file failed, status=%d", __LINE__, status);
+ }
+
+ logInfo("Sending Mail To ModbusMasterMailBox, filename=%s", filename);
+ mail = ModbusMasterMailBox.alloc();
+ mail->action = ACTION_READ_FILE;
+ strncpy( mail->controlFile, filename, (sizeof(mail->controlFile)-1));
+ ModbusMasterMailBox.put(mail);
+
+ Thread::wait(5000);
+*/
}
\ No newline at end of file
