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/CloudDataHandler/CloudFileReceiver.cpp
- Revision:
- 134:f90154ff33ec
- Parent:
- 116:7337ed514891
- Child:
- 138:27c39d0e4e81
--- a/src/CloudDataHandler/CloudFileReceiver.cpp Tue Sep 27 12:18:47 2016 +0000
+++ b/src/CloudDataHandler/CloudFileReceiver.cpp Tue Sep 27 15:36:37 2016 +0000
@@ -18,11 +18,100 @@
switch( mType ) {
case SETPOINT_CONTROL_MTYPE: {
logInfo("PROCESSING SETPONT CONTROL FILE");
- snprintf( filename, sizeof(FILENAME_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" );
+ snprintf( filename, sizeof(FILENAME_STRING), "control_sp_%s.json",
+ from_json["pay"]["spcontrol"]["id"].get<std::string>().c_str() );
logInfo("SETPONT CONTROL FILENAME=%s", filename);
+
+ memset( CloudFileReceiverWriteBuf, '\0', 1024 );
+ snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf),
+ "{ "
+ "\"id\": \"%s\", "
+ "\"priority\": \"%s\","
+ "\"input\": \"%s\", "
+ "\"output\": \"%s\", "
+ "\"setpoint\": \"%s\","
+ "\"prodfact\": \"%s\","
+ "\"actingDir\": \"%s\", "
+ "\"halert\": \"%s\","
+ "\"lalert\": \"%s\", "
+ "\"hfs\": \"%s\","
+ "\"lfs\": \"%s\", "
+ "\"tol\": \"%s\" }",
+ from_json["pay"]["spcontrol"]["id"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["priority"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["input"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["output"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["setpoint"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["prodfact"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["actingDir"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["halert"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["lalert"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["hfs"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["lfs"].get<std::string>().c_str(),
+ from_json["pay"]["spcontrol"]["tol"].get<std::string>().c_str()
+ );
+
+ logInfo("saving string%s", CloudFileReceiverWriteBuf);
+ bool status = GLOBAL_mdot->saveUserFile(filename, (void *)CloudFileReceiverWriteBuf, 1024);
+ if( status != true ) {
+ logError("(%d)save file failed, status=%d", __LINE__, status);
+ }
+
+ // send a message to the configuration handler to create the control
+ Message_t *msg = MailBox.alloc();
+ memset(msg, 0, sizeof(Message_t));
+ msg->action = ACTION_CREATE;
+ msg->control = CONTROL_SETPOINT;
+ strncpy(msg->controlFile, filename, sizeof(msg->controlFile)-1);
+
+ printf("%s: Sending a create request for control %s type = %u\r\n", __func__, msg->controlFile, msg->control);
+
+ MailBox.put(msg);
+ break;
+ }
+ case MAN_CONTROL_MTYPE: {
+ logInfo("PROCESSING MANUAL CONTROL FILE");
+ snprintf( filename, sizeof(FILENAME_STRING), "control_mn_%s.json",
+ from_json["pay"]["mncontrol"]["id"].get<std::string>().c_str() );
+ logInfo("MANUAL CONTROL FILENAME=%s", filename);
+
+ memset( CloudFileReceiverWriteBuf, '\0', 1024 );
+ snprintf(CloudFileReceiverWriteBuf, sizeof(CloudFileReceiverWriteBuf),
+ "{ "
+ "\"id\": \"%s\", "
+ "\"output\": \"%s\", "
+ "\"type\": \"%s\", "
+ "\"priority\": \"%s\", "
+ "\"duration\": \"%s\", "
+ "\"setpoint\": \"%s\", "
+ "\"state\": \"%s\", "
+ "\"percent\": \"%s\" }",
+ from_json["pay"]["mncontrol"]["id"].get<std::string>().c_str(),
+ from_json["pay"]["mncontrol"]["output"].get<std::string>().c_str(),
+ from_json["pay"]["mncontrol"]["type"].get<std::string>().c_str(),
+ from_json["pay"]["mncontrol"]["priority"].get<std::string>().c_str(),
+ from_json["pay"]["mncontrol"]["duration"].get<std::string>().c_str(),
+ from_json["pay"]["mncontrol"]["setpoint"].get<std::string>().c_str(),
+ from_json["pay"]["mncontrol"]["state"].get<std::string>().c_str(),
+ from_json["pay"]["mncontrol"]["percent"].get<std::string>().c_str()
+ );
+
+ logInfo("saving string%s", CloudFileReceiverWriteBuf);
+ bool status = GLOBAL_mdot->saveUserFile(filename, (void *)CloudFileReceiverWriteBuf, 1024);
+ if( status != true ) {
+ logError("(%d)save file failed, status=%d", __LINE__, status);
+ }
+
+ // send a message to the configuration handler to create the control
+ Message_t *msg = MailBox.alloc();
+ memset(msg, 0, sizeof(Message_t));
+ msg->action = ACTION_CREATE;
+ msg->control = CONTROL_MANUAL;
+ strncpy(msg->controlFile, filename, sizeof(msg->controlFile)-1);
+
+ printf("%s: Sending a create manual for control %s type = %u\r\n", __func__, msg->controlFile, msg->control);
+
+ MailBox.put(msg);
break;
}
case TIMER_CONTROL_MTYPE:
