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
src/CloudDataHandler/CloudFileReceiver.cpp@134:f90154ff33ec, 2016-09-27 (annotated)
- Committer:
- davidjhoward
- Date:
- Tue Sep 27 15:36:37 2016 +0000
- Revision:
- 134:f90154ff33ec
- Parent:
- 116:7337ed514891
- Child:
- 138:27c39d0e4e81
Add clould commands for setpoint control and manual control
Who changed what in which revision?
| User | Revision | Line number | New 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 | 99:55317f374a94 | 117 | case TIMER_CONTROL_MTYPE: | 
| davidjhoward | 99:55317f374a94 | 118 | break; | 
| davidjhoward | 99:55317f374a94 | 119 | case INPUT_CONFIG_MTYPE: { | 
| davidjhoward | 99:55317f374a94 | 120 | logInfo("id=%s", from_json["pay"]["input"]["id"].get<std::string>().c_str() ); | 
| davidjhoward | 99:55317f374a94 | 121 | snprintf( filename, sizeof(FILENAME_STRING), "input_%s%s", | 
| davidjhoward | 99:55317f374a94 | 122 | from_json["pay"]["input"]["id"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 123 | ".jsn" ); | 
| davidjhoward | 99:55317f374a94 | 124 | logInfo("INPUT CONFIG FILENAME=%s", filename); | 
| davidjhoward | 31:4b1587034318 | 125 | |
| davidjhoward | 99:55317f374a94 | 126 | memset( CloudFileReceiverWriteBuf, '\0', 1024 ); | 
| davidjhoward | 99:55317f374a94 | 127 | snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf), | 
| davidjhoward | 99:55317f374a94 | 128 | "{ " | 
| davidjhoward | 99:55317f374a94 | 129 | "\"id\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 130 | "\"name\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 131 | "\"units\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 132 | "\"min\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 133 | "\"max\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 134 | "\"node\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 135 | "\"reg\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 136 | "\"rtype\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 137 | "\"type\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 138 | "\"size\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 139 | "\"order\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 140 | "\"fmt\":\"%s\", " | 
| davidjhoward | 99:55317f374a94 | 141 | "\"rfreq\":\"%s\" } ", | 
| davidjhoward | 99:55317f374a94 | 142 | from_json["pay"]["input"]["id"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 143 | from_json["pay"]["input"]["name"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 144 | from_json["pay"]["input"]["units"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 145 | from_json["pay"]["input"]["min"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 146 | from_json["pay"]["input"]["max"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 147 | from_json["pay"]["input"]["node"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 148 | from_json["pay"]["input"]["reg"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 149 | from_json["pay"]["input"]["rtype"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 150 | from_json["pay"]["input"]["type"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 151 | from_json["pay"]["input"]["size"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 152 | from_json["pay"]["input"]["order"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 153 | from_json["pay"]["input"]["fmt"].get<std::string>().c_str(), | 
| davidjhoward | 99:55317f374a94 | 154 | from_json["pay"]["input"]["rfreq"].get<std::string>().c_str() | 
| davidjhoward | 99:55317f374a94 | 155 | ); | 
| davidjhoward | 45:3b9e1923cb15 | 156 | |
| davidjhoward | 99:55317f374a94 | 157 | logInfo("saving string%s", CloudFileReceiverWriteBuf); | 
| davidjhoward | 99:55317f374a94 | 158 | bool status = GLOBAL_mdot->saveUserFile(filename, (void *)CloudFileReceiverWriteBuf, 1024); | 
| davidjhoward | 99:55317f374a94 | 159 | if( status != true ) { | 
| davidjhoward | 99:55317f374a94 | 160 | logError("(%d)save file failed, status=%d", __LINE__, status); | 
| davidjhoward | 99:55317f374a94 | 161 | } | 
| davidjhoward | 45:3b9e1923cb15 | 162 | |
| davidjhoward | 99:55317f374a94 | 163 | logInfo("Sending Mail To ModbusMasterMailBox, filename=%s", filename); | 
| davidjhoward | 99:55317f374a94 | 164 | Message_t *mail = ModbusMasterMailBox.alloc(); | 
| davidjhoward | 99:55317f374a94 | 165 | mail->action = ACTION_READ_FILE; | 
| davidjhoward | 99:55317f374a94 | 166 | strncpy( mail->controlFile, filename, (sizeof(mail->controlFile)-1)); | 
| davidjhoward | 99:55317f374a94 | 167 | ModbusMasterMailBox.put(mail); | 
| davidjhoward | 99:55317f374a94 | 168 | break; | 
| davidjhoward | 27:38205cebc3da | 169 | } | 
| davidjhoward | 99:55317f374a94 | 170 | default: | 
| davidjhoward | 99:55317f374a94 | 171 | logInfo("DEFAULT"); | 
| davidjhoward | 99:55317f374a94 | 172 | break; | 
| davidjhoward | 99:55317f374a94 | 173 | } | 
| davidjhoward | 99:55317f374a94 | 174 | return true; | 
| davidjhoward | 49:0456ee2271be | 175 | } | 
| davidjhoward | 27:38205cebc3da | 176 | |
| davidjhoward | 49:0456ee2271be | 177 | bool CloudFileReceiver( std::string *recv_string, mDot *dot ) | 
| davidjhoward | 49:0456ee2271be | 178 | { | 
| davidjhoward | 49:0456ee2271be | 179 | MbedJSONValue from_json; | 
| davidjhoward | 49:0456ee2271be | 180 | bool status; | 
| davidjhoward | 49:0456ee2271be | 181 | parse( from_json, recv_string->c_str() ); | 
| davidjhoward | 49:0456ee2271be | 182 | int sequence = from_json["seq"].get<int>(); | 
| davidjhoward | 49:0456ee2271be | 183 | |
| davidjhoward | 49:0456ee2271be | 184 | // sequence of -1 means string sent in 1 chunk. | 
| davidjhoward | 49:0456ee2271be | 185 | if( sequence == -1 ) { | 
| davidjhoward | 49:0456ee2271be | 186 | |
| davidjhoward | 49:0456ee2271be | 187 | return StoreReceivedFile( dot, from_json ); | 
| davidjhoward | 27:38205cebc3da | 188 | |
| davidjhoward | 27:38205cebc3da | 189 | } else if( sequence == 0 ) { | 
| davidjhoward | 27:38205cebc3da | 190 | |
| davidjhoward | 49:0456ee2271be | 191 | memset(CloudFileReceiverWriteBuf,0,sizeof(CloudFileReceiverWriteBuf)); | 
| davidjhoward | 49:0456ee2271be | 192 | snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf), "%s%s", "{\"seq\":-1, \"pay\":",from_json["pay"].get<std::string>().c_str() ); | 
| davidjhoward | 49:0456ee2271be | 193 | logInfo("(%d)Writing String Length=%d, %s", __LINE__, 1024, CloudFileReceiverWriteBuf ); | 
| davidjhoward | 27:38205cebc3da | 194 | |
| davidjhoward | 49:0456ee2271be | 195 | status = dot->saveUserFile("scratch.json", (void *)CloudFileReceiverWriteBuf, 1024); | 
| davidjhoward | 27:38205cebc3da | 196 | if( status != true ) { | 
| davidjhoward | 49:0456ee2271be | 197 | logError("(%d)save file failed, status=%d", __LINE__, status); | 
| davidjhoward | 27:38205cebc3da | 198 | return false; | 
| davidjhoward | 27:38205cebc3da | 199 | } | 
| davidjhoward | 49:0456ee2271be | 200 | logInfo("(%d)UPDATED scratch.json FILE, status:%d, strlen=%d", __LINE__, status, strlen(CloudFileReceiverWriteBuf)); | 
| davidjhoward | 49:0456ee2271be | 201 | |
| davidjhoward | 27:38205cebc3da | 202 | } else if( sequence == -2 ) { | 
| davidjhoward | 27:38205cebc3da | 203 | |
| davidjhoward | 49:0456ee2271be | 204 | MbedJSONValue final_json; | 
| davidjhoward | 49:0456ee2271be | 205 | |
| davidjhoward | 27:38205cebc3da | 206 | logInfo("(%d)READING BACK scratch.json FILE FOR LAST PACKET", __LINE__); | 
| davidjhoward | 27:38205cebc3da | 207 | |
| davidjhoward | 27:38205cebc3da | 208 | // read the file back | 
| davidjhoward | 49:0456ee2271be | 209 | status = dot->readUserFile("scratch.json", (void *)CloudFileReceiverReadBuf, 1024); | 
| davidjhoward | 27:38205cebc3da | 210 | if( status != true ) { | 
| davidjhoward | 49:0456ee2271be | 211 | logError("(%d)read file failed, status=%d", __LINE__, status); | 
| davidjhoward | 27:38205cebc3da | 212 | return false; | 
| davidjhoward | 27:38205cebc3da | 213 | } | 
| davidjhoward | 27:38205cebc3da | 214 | |
| davidjhoward | 49:0456ee2271be | 215 | snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf), "%s%s%s", CloudFileReceiverReadBuf, from_json["pay"].get<std::string>().c_str(), "}" ); | 
| davidjhoward | 49:0456ee2271be | 216 | logInfo("(%d)Final String Length=%d, %s", __LINE__, strlen(CloudFileReceiverWriteBuf), CloudFileReceiverWriteBuf ); | 
| davidjhoward | 27:38205cebc3da | 217 | |
| davidjhoward | 49:0456ee2271be | 218 | parse( final_json, CloudFileReceiverWriteBuf ); | 
| davidjhoward | 49:0456ee2271be | 219 | |
| davidjhoward | 99:55317f374a94 | 220 | int sequence = final_json["seq"].get<int>(); | 
| davidjhoward | 99:55317f374a94 | 221 | int mType = final_json["pay"]["mtype"].get<int>(); | 
| davidjhoward | 99:55317f374a94 | 222 | std::string input = final_json["pay"]["input"]["id"].get<std::string>().c_str(); | 
| davidjhoward | 99:55317f374a94 | 223 | |
| davidjhoward | 99:55317f374a94 | 224 | printf("MESSAGE TYPE=%d, input=%s\r\n",mType, input.c_str()); | 
| davidjhoward | 99:55317f374a94 | 225 | |
| davidjhoward | 49:0456ee2271be | 226 | status = StoreReceivedFile( dot, final_json ); | 
| davidjhoward | 27:38205cebc3da | 227 | if( status != true ) { | 
| davidjhoward | 49:0456ee2271be | 228 | logError("(%d)save file failed, status=%d", __LINE__, status); | 
| davidjhoward | 27:38205cebc3da | 229 | } | 
| davidjhoward | 49:0456ee2271be | 230 | |
| davidjhoward | 49:0456ee2271be | 231 | status = dot->deleteUserFile("scratch.json"); | 
| davidjhoward | 49:0456ee2271be | 232 | if( status != true ) { | 
| davidjhoward | 49:0456ee2271be | 233 | logError("(%d)delete file failed, status=%d", __LINE__, status); | 
| davidjhoward | 49:0456ee2271be | 234 | } | 
| davidjhoward | 49:0456ee2271be | 235 | |
| davidjhoward | 49:0456ee2271be | 236 | logInfo("(%d)DELETED scratch.json FILE, status:%d", __LINE__, status ); | 
| davidjhoward | 49:0456ee2271be | 237 | |
| davidjhoward | 27:38205cebc3da | 238 | } else { | 
| davidjhoward | 27:38205cebc3da | 239 | |
| davidjhoward | 27:38205cebc3da | 240 | logInfo("(%d)READING BACK scratch.json FILE", __LINE__); | 
| davidjhoward | 27:38205cebc3da | 241 | |
| davidjhoward | 27:38205cebc3da | 242 | // read the file back | 
| davidjhoward | 49:0456ee2271be | 243 | status = dot->readUserFile("scratch.json", (void *)CloudFileReceiverReadBuf, 1024); | 
| davidjhoward | 27:38205cebc3da | 244 | if( status != true ) { | 
| davidjhoward | 49:0456ee2271be | 245 | logError("(%d)read file failed, status=%d", __LINE__, status); | 
| davidjhoward | 27:38205cebc3da | 246 | return false; | 
| davidjhoward | 27:38205cebc3da | 247 | } | 
| davidjhoward | 27:38205cebc3da | 248 | |
| davidjhoward | 49:0456ee2271be | 249 | snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf), "%s%s", CloudFileReceiverReadBuf, from_json["pay"].get<std::string>().c_str() ); | 
| davidjhoward | 49:0456ee2271be | 250 | logInfo("(%d)Writing String Length=%d, %s", __LINE__, strlen(CloudFileReceiverWriteBuf), CloudFileReceiverWriteBuf ); | 
| davidjhoward | 27:38205cebc3da | 251 | |
| davidjhoward | 49:0456ee2271be | 252 | status = dot->saveUserFile("scratch.json", (void *)CloudFileReceiverWriteBuf, 1024); | 
| davidjhoward | 27:38205cebc3da | 253 | if( status != true ) { | 
| davidjhoward | 49:0456ee2271be | 254 | logError("(%d)save file failed, status=%d", __LINE__, status); | 
| davidjhoward | 27:38205cebc3da | 255 | return false; | 
| davidjhoward | 27:38205cebc3da | 256 | } | 
| davidjhoward | 49:0456ee2271be | 257 | logInfo("(%d)UPDATED scratch.json FILE, status:%d, strlen=%d", __LINE__, status, strlen(CloudFileReceiverWriteBuf)); | 
| davidjhoward | 49:0456ee2271be | 258 | |
| davidjhoward | 27:38205cebc3da | 259 | } | 
| davidjhoward | 27:38205cebc3da | 260 | |
| davidjhoward | 27:38205cebc3da | 261 | return true; | 
| davidjhoward | 27:38205cebc3da | 262 | } | 
