Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Revision:
237:ecf34419ce5d
Parent:
235:ce028fbf054d
Child:
282:2dc06137f1ec
--- a/src/ModbusMaster/ModbusMaster.cpp	Thu Oct 20 12:39:05 2016 +0000
+++ b/src/ModbusMaster/ModbusMaster.cpp	Thu Oct 20 14:10:19 2016 +0000
@@ -11,7 +11,7 @@
 #include "ModbusMaster.h"
 #include "ModbusMasterApi.h"
 #include "mod.h"
-#include "MbedJSONValue.h"
+#include "cJSON.h"
 
 DigitalOut dout1(PC_1);
 DigitalOut dout2(PA_1);
@@ -246,23 +246,22 @@
 
 void ModbusMasterExecCmd( char *cmd )
 {
-    MbedJSONValue json_cmd;
     bool status;
     int ret;
     unsigned char rd_buf[16];
 
 //    printf("%s:%d: command=%s\r\n", __func__, __LINE__, cmd );
 
-    parse( json_cmd, cmd );
-
-    std::string id = json_cmd["id"].get<std::string>().c_str();
-    int node = atoi(json_cmd["node"].get<std::string>().c_str());
-    int func = atoi(json_cmd["func"].get<std::string>().c_str());
-    int sreg = atoi(json_cmd["sreg"].get<std::string>().c_str());
-    int nreg = atoi(json_cmd["nreg"].get<std::string>().c_str());
-    int dtype = atoi(json_cmd["dtype"].get<std::string>().c_str());
-    int order = atoi(json_cmd["order"].get<std::string>().c_str());
-    float value = atof(json_cmd["value"].get<std::string>().c_str());
+    cJSON * root = cJSON_Parse(cmd);
+    std::string id = cJSON_GetObjectItem(root,"id")->valuestring;
+    int node = atoi(cJSON_GetObjectItem(root,"node")->valuestring);
+    int func = atoi(cJSON_GetObjectItem(root,"func")->valuestring);
+    int sreg = atoi(cJSON_GetObjectItem(root,"sreg")->valuestring);
+    int nreg = atoi(cJSON_GetObjectItem(root,"nreg")->valuestring);
+    int dtype = atoi(cJSON_GetObjectItem(root,"dtype")->valuestring);
+    int order = atoi(cJSON_GetObjectItem(root,"order")->valuestring);
+    float value = atof(cJSON_GetObjectItem(root,"value")->valuestring);
+    cJSON_Delete(root);
 
     switch( func ) {
         case MOD_FUNC_GET_HREG: // read holding register
@@ -369,17 +368,17 @@
         } else {
             printf("(%s:%d)loading File: %s\r\n", __func__, __LINE__, fileName );
         }
-        MbedJSONValue json_value;
-        parse( json_value, ModbusMasterScratchBuf );
-
-        std::string tag = json_value["tag"].get<std::string>().c_str();
-        std::string id = json_value["id"].get<std::string>().c_str();
-        VirtualCommandMap[tag][id].c = atof(json_value["c"].get<std::string>().c_str());
-        VirtualCommandMap[tag][id].tag = json_value["tag"].get<std::string>().c_str();
-        VirtualCommandMap[tag][id].opl = json_value["opl"].get<std::string>().c_str();
-        VirtualCommandMap[tag][id].opr = json_value["opr"].get<std::string>().c_str();
-        VirtualCommandMap[tag][id].op = json_value["op"].get<std::string>().c_str();
+    
+        cJSON * root = cJSON_Parse(ModbusMasterScratchBuf);
+        std::string tag = cJSON_GetObjectItem(root,"tag")->valuestring;
+        std::string id = cJSON_GetObjectItem(root,"id")->valuestring;
+        VirtualCommandMap[tag][id].c = atof(cJSON_GetObjectItem(root,"c")->valuestring);
+        VirtualCommandMap[tag][id].tag = cJSON_GetObjectItem(root,"tag")->valuestring;
+        VirtualCommandMap[tag][id].opl = cJSON_GetObjectItem(root,"opl")->valuestring;
+        VirtualCommandMap[tag][id].opr = cJSON_GetObjectItem(root,"opr")->valuestring;
+        VirtualCommandMap[tag][id].op = cJSON_GetObjectItem(root,"op")->valuestring;
         printf("Processd virtual command file: id=%s, tag=%s\r\n", id.c_str(), tag.c_str());
+        cJSON_Delete(root);
         return;
     }
 
@@ -396,7 +395,6 @@
     }
 
     if( regType != REG_TYPE_NONE ) {
-        MbedJSONValue json_value;
         status = GLOBAL_mdot->readUserFile(fileName, ModbusMasterScratchBuf, MAX_FILE_SIZE);
         if( status != true ) {
             logInfo("(%d)read file failed, status=%d", __LINE__, status);
@@ -404,28 +402,28 @@
         } else {
             logInfo("(%s:%d)loading File: %s", __func__, __LINE__, fileName );
         }
-
-        parse( json_value, ModbusMasterScratchBuf );
-
-        std::string id = json_value["id"].get<std::string>().c_str();
-        ModbusRegisterMap[id].name = json_value["name"].get<std::string>().c_str();
-        ModbusRegisterMap[id].units = json_value["units"].get<std::string>().c_str();
-        ModbusRegisterMap[id].min = atof(json_value["min"].get<std::string>().c_str());
-        ModbusRegisterMap[id].max = atof(json_value["max"].get<std::string>().c_str());
-        ModbusRegisterMap[id].node = atoi(json_value["node"].get<std::string>().c_str());
-        ModbusRegisterMap[id].reg = atoi(json_value["reg"].get<std::string>().c_str());
-        ModbusRegisterMap[id].rtype = atoi(json_value["rtype"].get<std::string>().c_str());
-        ModbusRegisterMap[id].type = atoi(json_value["type"].get<std::string>().c_str());
-        ModbusRegisterMap[id].size = atoi(json_value["size"].get<std::string>().c_str());
-        ModbusRegisterMap[id].order = atoi(json_value["order"].get<std::string>().c_str());
-        ModbusRegisterMap[id].fmt = json_value["fmt"].get<std::string>().c_str();
-        ModbusRegisterMap[id].rfreq = atoi(json_value["rfreq"].get<std::string>().c_str());
+        
+        cJSON * root = cJSON_Parse(ModbusMasterScratchBuf);
+        std::string id = cJSON_GetObjectItem(root,"id")->valuestring;
+        ModbusRegisterMap[id].name = cJSON_GetObjectItem(root,"name")->valuestring;
+        ModbusRegisterMap[id].units = cJSON_GetObjectItem(root,"units")->valuestring;
+        ModbusRegisterMap[id].min = atof(cJSON_GetObjectItem(root,"min")->valuestring);
+        ModbusRegisterMap[id].max = atof(cJSON_GetObjectItem(root,"max")->valuestring);
+        ModbusRegisterMap[id].node = atoi(cJSON_GetObjectItem(root,"node")->valuestring);
+        ModbusRegisterMap[id].reg = atoi(cJSON_GetObjectItem(root,"reg")->valuestring);
+        ModbusRegisterMap[id].rtype = atoi(cJSON_GetObjectItem(root,"rtype")->valuestring);
+        ModbusRegisterMap[id].type = atoi(cJSON_GetObjectItem(root,"type")->valuestring);
+        ModbusRegisterMap[id].size = atoi(cJSON_GetObjectItem(root,"size")->valuestring);
+        ModbusRegisterMap[id].order = atoi(cJSON_GetObjectItem(root,"order")->valuestring);
+        ModbusRegisterMap[id].fmt = cJSON_GetObjectItem(root,"fmt")->valuestring;
+        ModbusRegisterMap[id].rfreq = atoi(cJSON_GetObjectItem(root,"rfreq")->valuestring);
         ModbusRegisterMap[id].regType = regType;
         ModbusRegisterMap[id].simulated = false;
         ModbusRegisterMap[id].errflag = 0;
         if( (regType == REG_TYPE_VINPUT) || (regType == REG_TYPE_VOUTPUT) ) {
-            ModbusRegisterMap[id].vcmd = json_value["vcmd"].get<std::string>().c_str();
+            ModbusRegisterMap[id].vcmd = cJSON_GetObjectItem(root,"vcmd")->valuestring;
         }
+        cJSON_Delete(root);
     }
     return;
 }