Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
davidjhoward
Date:
Tue Sep 27 18:48:19 2016 +0000
Revision:
139:f1f4a523399f
Parent:
138:27c39d0e4e81
Child:
144:b32d6a6f445f
Add cloud command for timers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davidjhoward 27:38205cebc3da 1 #include "CloudFileReceiver.h"
davidjhoward 116:7337ed514891 2 #include "CloudDataHandler.h"
davidjhoward 27:38205cebc3da 3 #include "MTSLog.h"
davidjhoward 27:38205cebc3da 4 #include "MbedJSONValue.h"
davidjhoward 31:4b1587034318 5 #include "global.h"
davidjhoward 27:38205cebc3da 6
davidjhoward 49:0456ee2271be 7 char CloudFileReceiverWriteBuf[1024];
davidjhoward 49:0456ee2271be 8 char CloudFileReceiverReadBuf[1024];
davidjhoward 27:38205cebc3da 9
davidjhoward 49:0456ee2271be 10 bool StoreReceivedFile( mDot *dot, MbedJSONValue &from_json )
davidjhoward 49:0456ee2271be 11 {
davidjhoward 99:55317f374a94 12 FILENAME_STRING filename;
davidjhoward 27:38205cebc3da 13
davidjhoward 99:55317f374a94 14 memset( filename, '\0', sizeof(FILENAME_STRING) );
davidjhoward 27:38205cebc3da 15
davidjhoward 99:55317f374a94 16 int mType = from_json["pay"]["mtype"].get<int>();
davidjhoward 99:55317f374a94 17 logInfo("mtype=%d", mType);
davidjhoward 99:55317f374a94 18 switch( mType ) {
davidjhoward 99:55317f374a94 19 case SETPOINT_CONTROL_MTYPE: {
davidjhoward 99:55317f374a94 20 logInfo("PROCESSING SETPONT CONTROL FILE");
davidjhoward 134:f90154ff33ec 21 snprintf( filename, sizeof(FILENAME_STRING), "control_sp_%s.json",
davidjhoward 134:f90154ff33ec 22 from_json["pay"]["spcontrol"]["id"].get<std::string>().c_str() );
davidjhoward 99:55317f374a94 23 logInfo("SETPONT CONTROL FILENAME=%s", filename);
davidjhoward 134:f90154ff33ec 24
davidjhoward 134:f90154ff33ec 25 memset( CloudFileReceiverWriteBuf, '\0', 1024 );
davidjhoward 134:f90154ff33ec 26 snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf),
davidjhoward 134:f90154ff33ec 27 "{ "
davidjhoward 134:f90154ff33ec 28 "\"id\": \"%s\", "
davidjhoward 134:f90154ff33ec 29 "\"priority\": \"%s\","
davidjhoward 134:f90154ff33ec 30 "\"input\": \"%s\", "
davidjhoward 134:f90154ff33ec 31 "\"output\": \"%s\", "
davidjhoward 134:f90154ff33ec 32 "\"setpoint\": \"%s\","
davidjhoward 134:f90154ff33ec 33 "\"prodfact\": \"%s\","
davidjhoward 134:f90154ff33ec 34 "\"actingDir\": \"%s\", "
davidjhoward 134:f90154ff33ec 35 "\"halert\": \"%s\","
davidjhoward 134:f90154ff33ec 36 "\"lalert\": \"%s\", "
davidjhoward 134:f90154ff33ec 37 "\"hfs\": \"%s\","
davidjhoward 134:f90154ff33ec 38 "\"lfs\": \"%s\", "
davidjhoward 134:f90154ff33ec 39 "\"tol\": \"%s\" }",
davidjhoward 134:f90154ff33ec 40 from_json["pay"]["spcontrol"]["id"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 41 from_json["pay"]["spcontrol"]["priority"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 42 from_json["pay"]["spcontrol"]["input"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 43 from_json["pay"]["spcontrol"]["output"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 44 from_json["pay"]["spcontrol"]["setpoint"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 45 from_json["pay"]["spcontrol"]["prodfact"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 46 from_json["pay"]["spcontrol"]["actingDir"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 47 from_json["pay"]["spcontrol"]["halert"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 48 from_json["pay"]["spcontrol"]["lalert"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 49 from_json["pay"]["spcontrol"]["hfs"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 50 from_json["pay"]["spcontrol"]["lfs"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 51 from_json["pay"]["spcontrol"]["tol"].get<std::string>().c_str()
davidjhoward 134:f90154ff33ec 52 );
davidjhoward 134:f90154ff33ec 53
davidjhoward 134:f90154ff33ec 54 logInfo("saving string%s", CloudFileReceiverWriteBuf);
davidjhoward 134:f90154ff33ec 55 bool status = GLOBAL_mdot->saveUserFile(filename, (void *)CloudFileReceiverWriteBuf, 1024);
davidjhoward 134:f90154ff33ec 56 if( status != true ) {
davidjhoward 134:f90154ff33ec 57 logError("(%d)save file failed, status=%d", __LINE__, status);
davidjhoward 134:f90154ff33ec 58 }
davidjhoward 134:f90154ff33ec 59
davidjhoward 134:f90154ff33ec 60 // send a message to the configuration handler to create the control
davidjhoward 134:f90154ff33ec 61 Message_t *msg = MailBox.alloc();
davidjhoward 134:f90154ff33ec 62 memset(msg, 0, sizeof(Message_t));
davidjhoward 134:f90154ff33ec 63 msg->action = ACTION_CREATE;
davidjhoward 134:f90154ff33ec 64 msg->control = CONTROL_SETPOINT;
davidjhoward 134:f90154ff33ec 65 strncpy(msg->controlFile, filename, sizeof(msg->controlFile)-1);
davidjhoward 134:f90154ff33ec 66
davidjhoward 134:f90154ff33ec 67 printf("%s: Sending a create request for control %s type = %u\r\n", __func__, msg->controlFile, msg->control);
davidjhoward 134:f90154ff33ec 68
davidjhoward 134:f90154ff33ec 69 MailBox.put(msg);
davidjhoward 134:f90154ff33ec 70 break;
davidjhoward 134:f90154ff33ec 71 }
davidjhoward 134:f90154ff33ec 72 case MAN_CONTROL_MTYPE: {
davidjhoward 134:f90154ff33ec 73 logInfo("PROCESSING MANUAL CONTROL FILE");
davidjhoward 134:f90154ff33ec 74 snprintf( filename, sizeof(FILENAME_STRING), "control_mn_%s.json",
davidjhoward 134:f90154ff33ec 75 from_json["pay"]["mncontrol"]["id"].get<std::string>().c_str() );
davidjhoward 134:f90154ff33ec 76 logInfo("MANUAL CONTROL FILENAME=%s", filename);
davidjhoward 134:f90154ff33ec 77
davidjhoward 134:f90154ff33ec 78 memset( CloudFileReceiverWriteBuf, '\0', 1024 );
davidjhoward 134:f90154ff33ec 79 snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf),
davidjhoward 134:f90154ff33ec 80 "{ "
davidjhoward 134:f90154ff33ec 81 "\"id\": \"%s\", "
davidjhoward 134:f90154ff33ec 82 "\"output\": \"%s\", "
davidjhoward 134:f90154ff33ec 83 "\"type\": \"%s\", "
davidjhoward 134:f90154ff33ec 84 "\"priority\": \"%s\", "
davidjhoward 134:f90154ff33ec 85 "\"duration\": \"%s\", "
davidjhoward 134:f90154ff33ec 86 "\"setpoint\": \"%s\", "
davidjhoward 134:f90154ff33ec 87 "\"state\": \"%s\", "
davidjhoward 134:f90154ff33ec 88 "\"percent\": \"%s\" }",
davidjhoward 134:f90154ff33ec 89 from_json["pay"]["mncontrol"]["id"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 90 from_json["pay"]["mncontrol"]["output"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 91 from_json["pay"]["mncontrol"]["type"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 92 from_json["pay"]["mncontrol"]["priority"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 93 from_json["pay"]["mncontrol"]["duration"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 94 from_json["pay"]["mncontrol"]["setpoint"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 95 from_json["pay"]["mncontrol"]["state"].get<std::string>().c_str(),
davidjhoward 134:f90154ff33ec 96 from_json["pay"]["mncontrol"]["percent"].get<std::string>().c_str()
davidjhoward 134:f90154ff33ec 97 );
davidjhoward 134:f90154ff33ec 98
davidjhoward 134:f90154ff33ec 99 logInfo("saving string%s", CloudFileReceiverWriteBuf);
davidjhoward 134:f90154ff33ec 100 bool status = GLOBAL_mdot->saveUserFile(filename, (void *)CloudFileReceiverWriteBuf, 1024);
davidjhoward 134:f90154ff33ec 101 if( status != true ) {
davidjhoward 134:f90154ff33ec 102 logError("(%d)save file failed, status=%d", __LINE__, status);
davidjhoward 134:f90154ff33ec 103 }
davidjhoward 134:f90154ff33ec 104
davidjhoward 134:f90154ff33ec 105 // send a message to the configuration handler to create the control
davidjhoward 134:f90154ff33ec 106 Message_t *msg = MailBox.alloc();
davidjhoward 134:f90154ff33ec 107 memset(msg, 0, sizeof(Message_t));
davidjhoward 134:f90154ff33ec 108 msg->action = ACTION_CREATE;
davidjhoward 134:f90154ff33ec 109 msg->control = CONTROL_MANUAL;
davidjhoward 134:f90154ff33ec 110 strncpy(msg->controlFile, filename, sizeof(msg->controlFile)-1);
davidjhoward 134:f90154ff33ec 111
davidjhoward 134:f90154ff33ec 112 printf("%s: Sending a create manual for control %s type = %u\r\n", __func__, msg->controlFile, msg->control);
davidjhoward 134:f90154ff33ec 113
davidjhoward 134:f90154ff33ec 114 MailBox.put(msg);
davidjhoward 99:55317f374a94 115 break;
davidjhoward 99:55317f374a94 116 }
davidjhoward 139:f1f4a523399f 117 case TIMER_CONTROL_MTYPE: {
davidjhoward 139:f1f4a523399f 118 logInfo("PROCESSING TIMER CONTROL FILE");
davidjhoward 139:f1f4a523399f 119 snprintf( filename, sizeof(FILENAME_STRING), "control_tm_%s.json",
davidjhoward 139:f1f4a523399f 120 from_json["pay"]["tmcontrol"]["id"].get<std::string>().c_str() );
davidjhoward 139:f1f4a523399f 121 logInfo("TIMER CONTROL FILENAME=%s", filename);
davidjhoward 139:f1f4a523399f 122
davidjhoward 139:f1f4a523399f 123 memset( CloudFileReceiverWriteBuf, '\0', 1024 );
davidjhoward 139:f1f4a523399f 124 snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf),
davidjhoward 139:f1f4a523399f 125 "{ "
davidjhoward 139:f1f4a523399f 126 "\"id\": \"%s\", "
davidjhoward 139:f1f4a523399f 127 "\"output\": \"%s\", "
davidjhoward 139:f1f4a523399f 128 "\"priority\": \"%s\", "
davidjhoward 139:f1f4a523399f 129 "\"starttime\": \"%s\", "
davidjhoward 139:f1f4a523399f 130 "\"duration\": \"%s\", ",
davidjhoward 139:f1f4a523399f 131 from_json["pay"]["tmcontrol"]["id"].get<std::string>().c_str(),
davidjhoward 139:f1f4a523399f 132 from_json["pay"]["tmcontrol"]["output"].get<std::string>().c_str(),
davidjhoward 139:f1f4a523399f 133 from_json["pay"]["tmcontrol"]["priority"].get<std::string>().c_str(),
davidjhoward 139:f1f4a523399f 134 from_json["pay"]["tmcontrol"]["starttime"].get<std::string>().c_str(),
davidjhoward 139:f1f4a523399f 135 from_json["pay"]["tmcontrol"]["duration"].get<std::string>().c_str()
davidjhoward 139:f1f4a523399f 136 );
davidjhoward 139:f1f4a523399f 137
davidjhoward 139:f1f4a523399f 138 logInfo("saving string%s", CloudFileReceiverWriteBuf);
davidjhoward 139:f1f4a523399f 139 bool status = GLOBAL_mdot->saveUserFile(filename, (void *)CloudFileReceiverWriteBuf, 1024);
davidjhoward 139:f1f4a523399f 140 if( status != true ) {
davidjhoward 139:f1f4a523399f 141 logError("(%d)save file failed, status=%d", __LINE__, status);
davidjhoward 139:f1f4a523399f 142 }
davidjhoward 139:f1f4a523399f 143
davidjhoward 139:f1f4a523399f 144 // send a message to the configuration handler to create the control
davidjhoward 139:f1f4a523399f 145 Message_t *msg = MailBox.alloc();
davidjhoward 139:f1f4a523399f 146 memset(msg, 0, sizeof(Message_t));
davidjhoward 139:f1f4a523399f 147 msg->action = ACTION_CREATE;
davidjhoward 139:f1f4a523399f 148 msg->control = CONTROL_TIMER;
davidjhoward 139:f1f4a523399f 149 strncpy(msg->controlFile, filename, sizeof(msg->controlFile)-1);
davidjhoward 139:f1f4a523399f 150
davidjhoward 139:f1f4a523399f 151 printf("%s: Sending a create request for control %s type = %u\r\n", __func__, msg->controlFile, msg->control);
davidjhoward 139:f1f4a523399f 152
davidjhoward 139:f1f4a523399f 153 MailBox.put(msg);
davidjhoward 99:55317f374a94 154 break;
davidjhoward 139:f1f4a523399f 155 }
davidjhoward 99:55317f374a94 156 case INPUT_CONFIG_MTYPE: {
davidjhoward 99:55317f374a94 157 logInfo("id=%s", from_json["pay"]["input"]["id"].get<std::string>().c_str() );
davidjhoward 99:55317f374a94 158 snprintf( filename, sizeof(FILENAME_STRING), "input_%s%s",
davidjhoward 99:55317f374a94 159 from_json["pay"]["input"]["id"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 160 ".jsn" );
davidjhoward 99:55317f374a94 161 logInfo("INPUT CONFIG FILENAME=%s", filename);
davidjhoward 31:4b1587034318 162
davidjhoward 99:55317f374a94 163 memset( CloudFileReceiverWriteBuf, '\0', 1024 );
davidjhoward 99:55317f374a94 164 snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf),
davidjhoward 99:55317f374a94 165 "{ "
davidjhoward 99:55317f374a94 166 "\"id\":\"%s\", "
davidjhoward 99:55317f374a94 167 "\"name\":\"%s\", "
davidjhoward 99:55317f374a94 168 "\"units\":\"%s\", "
davidjhoward 99:55317f374a94 169 "\"min\":\"%s\", "
davidjhoward 99:55317f374a94 170 "\"max\":\"%s\", "
davidjhoward 99:55317f374a94 171 "\"node\":\"%s\", "
davidjhoward 99:55317f374a94 172 "\"reg\":\"%s\", "
davidjhoward 99:55317f374a94 173 "\"rtype\":\"%s\", "
davidjhoward 99:55317f374a94 174 "\"type\":\"%s\", "
davidjhoward 99:55317f374a94 175 "\"size\":\"%s\", "
davidjhoward 99:55317f374a94 176 "\"order\":\"%s\", "
davidjhoward 99:55317f374a94 177 "\"fmt\":\"%s\", "
davidjhoward 99:55317f374a94 178 "\"rfreq\":\"%s\" } ",
davidjhoward 99:55317f374a94 179 from_json["pay"]["input"]["id"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 180 from_json["pay"]["input"]["name"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 181 from_json["pay"]["input"]["units"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 182 from_json["pay"]["input"]["min"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 183 from_json["pay"]["input"]["max"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 184 from_json["pay"]["input"]["node"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 185 from_json["pay"]["input"]["reg"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 186 from_json["pay"]["input"]["rtype"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 187 from_json["pay"]["input"]["type"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 188 from_json["pay"]["input"]["size"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 189 from_json["pay"]["input"]["order"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 190 from_json["pay"]["input"]["fmt"].get<std::string>().c_str(),
davidjhoward 99:55317f374a94 191 from_json["pay"]["input"]["rfreq"].get<std::string>().c_str()
davidjhoward 99:55317f374a94 192 );
davidjhoward 45:3b9e1923cb15 193
davidjhoward 99:55317f374a94 194 logInfo("saving string%s", CloudFileReceiverWriteBuf);
davidjhoward 99:55317f374a94 195 bool status = GLOBAL_mdot->saveUserFile(filename, (void *)CloudFileReceiverWriteBuf, 1024);
davidjhoward 99:55317f374a94 196 if( status != true ) {
davidjhoward 99:55317f374a94 197 logError("(%d)save file failed, status=%d", __LINE__, status);
davidjhoward 99:55317f374a94 198 }
davidjhoward 45:3b9e1923cb15 199
davidjhoward 99:55317f374a94 200 logInfo("Sending Mail To ModbusMasterMailBox, filename=%s", filename);
davidjhoward 99:55317f374a94 201 Message_t *mail = ModbusMasterMailBox.alloc();
davidjhoward 99:55317f374a94 202 mail->action = ACTION_READ_FILE;
davidjhoward 99:55317f374a94 203 strncpy( mail->controlFile, filename, (sizeof(mail->controlFile)-1));
davidjhoward 99:55317f374a94 204 ModbusMasterMailBox.put(mail);
davidjhoward 99:55317f374a94 205 break;
davidjhoward 27:38205cebc3da 206 }
davidjhoward 99:55317f374a94 207 default:
davidjhoward 99:55317f374a94 208 logInfo("DEFAULT");
davidjhoward 99:55317f374a94 209 break;
davidjhoward 99:55317f374a94 210 }
davidjhoward 99:55317f374a94 211 return true;
davidjhoward 49:0456ee2271be 212 }
davidjhoward 27:38205cebc3da 213
davidjhoward 49:0456ee2271be 214 bool CloudFileReceiver( std::string *recv_string, mDot *dot )
davidjhoward 49:0456ee2271be 215 {
davidjhoward 49:0456ee2271be 216 MbedJSONValue from_json;
davidjhoward 49:0456ee2271be 217 bool status;
davidjhoward 49:0456ee2271be 218 parse( from_json, recv_string->c_str() );
davidjhoward 49:0456ee2271be 219 int sequence = from_json["seq"].get<int>();
davidjhoward 49:0456ee2271be 220
davidjhoward 49:0456ee2271be 221 // sequence of -1 means string sent in 1 chunk.
davidjhoward 49:0456ee2271be 222 if( sequence == -1 ) {
davidjhoward 49:0456ee2271be 223
davidjhoward 49:0456ee2271be 224 return StoreReceivedFile( dot, from_json );
davidjhoward 27:38205cebc3da 225
davidjhoward 27:38205cebc3da 226 } else if( sequence == 0 ) {
davidjhoward 27:38205cebc3da 227
davidjhoward 49:0456ee2271be 228 memset(CloudFileReceiverWriteBuf,0,sizeof(CloudFileReceiverWriteBuf));
davidjhoward 49:0456ee2271be 229 snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf), "%s%s", "{\"seq\":-1, \"pay\":",from_json["pay"].get<std::string>().c_str() );
davidjhoward 49:0456ee2271be 230 logInfo("(%d)Writing String Length=%d, %s", __LINE__, 1024, CloudFileReceiverWriteBuf );
davidjhoward 27:38205cebc3da 231
davidjhoward 49:0456ee2271be 232 status = dot->saveUserFile("scratch.json", (void *)CloudFileReceiverWriteBuf, 1024);
davidjhoward 27:38205cebc3da 233 if( status != true ) {
davidjhoward 49:0456ee2271be 234 logError("(%d)save file failed, status=%d", __LINE__, status);
davidjhoward 27:38205cebc3da 235 return false;
davidjhoward 27:38205cebc3da 236 }
davidjhoward 49:0456ee2271be 237 logInfo("(%d)UPDATED scratch.json FILE, status:%d, strlen=%d", __LINE__, status, strlen(CloudFileReceiverWriteBuf));
davidjhoward 49:0456ee2271be 238
davidjhoward 27:38205cebc3da 239 } else if( sequence == -2 ) {
davidjhoward 27:38205cebc3da 240
davidjhoward 49:0456ee2271be 241 MbedJSONValue final_json;
davidjhoward 49:0456ee2271be 242
davidjhoward 27:38205cebc3da 243 logInfo("(%d)READING BACK scratch.json FILE FOR LAST PACKET", __LINE__);
davidjhoward 27:38205cebc3da 244
davidjhoward 27:38205cebc3da 245 // read the file back
davidjhoward 49:0456ee2271be 246 status = dot->readUserFile("scratch.json", (void *)CloudFileReceiverReadBuf, 1024);
davidjhoward 27:38205cebc3da 247 if( status != true ) {
davidjhoward 49:0456ee2271be 248 logError("(%d)read file failed, status=%d", __LINE__, status);
davidjhoward 27:38205cebc3da 249 return false;
davidjhoward 27:38205cebc3da 250 }
davidjhoward 27:38205cebc3da 251
davidjhoward 49:0456ee2271be 252 snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf), "%s%s%s", CloudFileReceiverReadBuf, from_json["pay"].get<std::string>().c_str(), "}" );
davidjhoward 49:0456ee2271be 253 logInfo("(%d)Final String Length=%d, %s", __LINE__, strlen(CloudFileReceiverWriteBuf), CloudFileReceiverWriteBuf );
davidjhoward 27:38205cebc3da 254
davidjhoward 49:0456ee2271be 255 parse( final_json, CloudFileReceiverWriteBuf );
davidjhoward 49:0456ee2271be 256
davidjhoward 99:55317f374a94 257 int sequence = final_json["seq"].get<int>();
davidjhoward 99:55317f374a94 258 int mType = final_json["pay"]["mtype"].get<int>();
davidjhoward 99:55317f374a94 259
davidjhoward 138:27c39d0e4e81 260 printf("MESSAGE TYPE=%d\r\n",mType);
davidjhoward 99:55317f374a94 261
davidjhoward 49:0456ee2271be 262 status = StoreReceivedFile( dot, final_json );
davidjhoward 27:38205cebc3da 263 if( status != true ) {
davidjhoward 49:0456ee2271be 264 logError("(%d)save file failed, status=%d", __LINE__, status);
davidjhoward 27:38205cebc3da 265 }
davidjhoward 49:0456ee2271be 266
davidjhoward 49:0456ee2271be 267 status = dot->deleteUserFile("scratch.json");
davidjhoward 49:0456ee2271be 268 if( status != true ) {
davidjhoward 49:0456ee2271be 269 logError("(%d)delete file failed, status=%d", __LINE__, status);
davidjhoward 49:0456ee2271be 270 }
davidjhoward 49:0456ee2271be 271
davidjhoward 49:0456ee2271be 272 logInfo("(%d)DELETED scratch.json FILE, status:%d", __LINE__, status );
davidjhoward 49:0456ee2271be 273
davidjhoward 27:38205cebc3da 274 } else {
davidjhoward 27:38205cebc3da 275
davidjhoward 27:38205cebc3da 276 logInfo("(%d)READING BACK scratch.json FILE", __LINE__);
davidjhoward 27:38205cebc3da 277
davidjhoward 27:38205cebc3da 278 // read the file back
davidjhoward 49:0456ee2271be 279 status = dot->readUserFile("scratch.json", (void *)CloudFileReceiverReadBuf, 1024);
davidjhoward 27:38205cebc3da 280 if( status != true ) {
davidjhoward 49:0456ee2271be 281 logError("(%d)read file failed, status=%d", __LINE__, status);
davidjhoward 27:38205cebc3da 282 return false;
davidjhoward 27:38205cebc3da 283 }
davidjhoward 27:38205cebc3da 284
davidjhoward 49:0456ee2271be 285 snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf), "%s%s", CloudFileReceiverReadBuf, from_json["pay"].get<std::string>().c_str() );
davidjhoward 49:0456ee2271be 286 logInfo("(%d)Writing String Length=%d, %s", __LINE__, strlen(CloudFileReceiverWriteBuf), CloudFileReceiverWriteBuf );
davidjhoward 27:38205cebc3da 287
davidjhoward 49:0456ee2271be 288 status = dot->saveUserFile("scratch.json", (void *)CloudFileReceiverWriteBuf, 1024);
davidjhoward 27:38205cebc3da 289 if( status != true ) {
davidjhoward 49:0456ee2271be 290 logError("(%d)save file failed, status=%d", __LINE__, status);
davidjhoward 27:38205cebc3da 291 return false;
davidjhoward 27:38205cebc3da 292 }
davidjhoward 49:0456ee2271be 293 logInfo("(%d)UPDATED scratch.json FILE, status:%d, strlen=%d", __LINE__, status, strlen(CloudFileReceiverWriteBuf));
davidjhoward 49:0456ee2271be 294
davidjhoward 27:38205cebc3da 295 }
davidjhoward 27:38205cebc3da 296
davidjhoward 27:38205cebc3da 297 return true;
davidjhoward 27:38205cebc3da 298 }