Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Revision:
27:38205cebc3da
Child:
31:4b1587034318
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/CloudDataHandler/CloudFileReceiver.cpp	Thu Sep 08 18:39:29 2016 +0000
@@ -0,0 +1,108 @@
+#include "CloudFileReceiver.h"
+#include "MTSLog.h"
+#include "MbedJSONValue.h"
+
+bool CloudFileReceiver( std::string *recv_string, mDot *dot )
+{
+    MbedJSONValue from_json;
+    bool status;
+
+    parse( from_json, recv_string->c_str() );
+
+    int sequence = from_json["seq"].get<int>();
+    logInfo("Received command: %s", recv_string->c_str());
+//    logInfo("ID=%s",from_json["pay"]["spcontrol"]["id"].get<std::string>().c_str());
+    if( sequence == -1 ) {
+
+        FILENAME_STRING filename;
+
+        int mType = from_json["pay"]["mtype"].get<int>();
+        logInfo("mtype=%d", mType);
+
+        memset( filename, '\0', sizeof(FILENAME_STRING) );
+
+        switch( mType ) {
+            case SETPOINT_CONTROL_MTYPE:
+                logInfo("PROCESSING SETPONT CONTROL FILE");
+                snprintf( filename, sizeof(TASKNAME_STRING), "%s_%s%s",
+                          from_json["pay"]["spcontrol"]["id"].get<std::string>().c_str(),
+                          from_json["pay"]["spcontrol"]["input"].get<std::string>().c_str(),
+                          ".json" );
+                logInfo("SETPONT CONTROL FILENAME=%s", filename);
+                break;
+            case TIMER_CONTROL_MTYPE:
+                break;
+            default:
+                logInfo("DEFAULT");
+                break;
+        }
+
+        return false;
+
+    } else if( sequence == 0 ) {
+        char data_buf[1024];
+//       std::string file_string(1024, '\0');
+//       std::string recv_payload(from_json["pay"].get<std::string>().c_str());
+//       file_string.replace(0,recv_payload.length(), recv_payload.c_str());
+//       logInfo("(%d)File String Length=%d, %s", __LINE__, file_string.length(), file_string.c_str() );
+
+        memset(data_buf,0,sizeof(data_buf));
+        snprintf(data_buf, sizeof(data_buf), "%s", from_json["pay"].get<std::string>().c_str() );
+        logInfo("(%d)Writing String Length=%d, %s", __LINE__, 1024, data_buf );
+
+        status = dot->saveUserFile("scratch.json", (void *)data_buf, 1024);
+        if( status != true ) {
+            logInfo("(%d)save file failed, status=%d", __LINE__, status);
+            return false;
+        }
+        logInfo("(%d)UPDATED scratch.json FILE, status:%d, strlen=%d", __LINE__, status, strlen(data_buf));
+    } else if( sequence == -2 ) {
+
+        logInfo("(%d)READING BACK scratch.json FILE FOR LAST PACKET", __LINE__);
+
+        char scratch_buf[1024];
+        char data_buf[1024];
+
+        // read the file back
+        status = dot->readUserFile("scratch.json", (void *)scratch_buf, 1024);
+        if( status != true ) {
+            logInfo("(%d)read file failed, status=%d", __LINE__, status);
+            return false;
+        }
+
+        snprintf(data_buf, sizeof(data_buf), "%s%s", scratch_buf, from_json["pay"].get<std::string>().c_str() );
+        logInfo("(%d)Writing String Length=%d, %s", __LINE__, 1024, data_buf );
+
+        status = dot->saveUserFile("scratch.json", (void *)data_buf, 1024);
+        if( status != true ) {
+            logInfo("(%d)save file failed, status=%d", __LINE__, status);
+            return false;
+        }
+        logInfo("(%d)UPDATED scratch.json FILE, status:%d, strlen=%d", __LINE__, status, strlen(data_buf));
+    } else {
+
+        logInfo("(%d)READING BACK scratch.json FILE", __LINE__);
+
+        char scratch_buf[1024];
+        char data_buf[1024];
+
+        // read the file back
+        status = dot->readUserFile("scratch.json", (void *)scratch_buf, 1024);
+        if( status != true ) {
+            logInfo("(%d)read file failed, status=%d", __LINE__, status);
+            return false;
+        }
+
+        snprintf(data_buf, sizeof(data_buf), "%s%s", scratch_buf, from_json["pay"].get<std::string>().c_str() );
+        logInfo("(%d)Writing String Length=%d, %s", __LINE__, 1024, data_buf );
+
+        status = dot->saveUserFile("scratch.json", (void *)data_buf, 1024);
+        if( status != true ) {
+            logInfo("(%d)save file failed, status=%d", __LINE__, status);
+            return false;
+        }
+        logInfo("(%d)UPDATED scratch.json FILE, status:%d, strlen=%d", __LINE__, status, strlen(data_buf));
+    }
+
+    return true;
+}
\ No newline at end of file