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/CloudDataHandler.cpp
- Committer:
- davidjhoward
- Date:
- 2016-09-20
- Revision:
- 83:0f76cfbb4eba
- Parent:
- 77:43e0a3d9e536
- Child:
- 99:55317f374a94
File content as of revision 83:0f76cfbb4eba:
#include "CloudDataHandler.h" #include "CloudFileReceiver.h" #include "MTSLog.h" #include <stdio.h> #include "mDot.h" #include <vector> #include "rtos.h" #include "global.h" bool CloudDataHandlerConnected = false; void CloudDataHandler(void const *args) { int32_t ret; printf("\r%s has started...\n", __func__); while ( true ) { std::string tmp_buffer; CloudDataHandlerConnected = false; if (!GLOBAL_mdot->getNetworkJoinStatus()) { logInfo("network not joined, joining network"); if ((ret = GLOBAL_mdot->joinNetwork()) != mDot::MDOT_OK) { logError("failed to join network %d:%s", ret, mDot::getReturnCodeString(ret).c_str()); Thread::wait(30000); continue; } } CloudDataHandlerConnected = true; osEvent evt = CloudDataHandlerMailBox.get(5000); if (evt.status == osEventMail) { CloudDataHandlerReq_t *mail = (CloudDataHandlerReq_t*)evt.value.p; logInfo("Cloud Data Handler Mail Received: Entry: %s", mail->packet); tmp_buffer = mail->packet; CloudDataHandlerMailBox.free(mail); break; } else { // logInfo("Cloud Data Handler no MAIL\r\n"); tmp_buffer = "{\"mtype\":\"20\"}"; } std::vector<uint8_t> data(tmp_buffer.begin(), tmp_buffer.end()); // send the data to the gateway if ((ret = GLOBAL_mdot->send(data)) != mDot::MDOT_OK) { logError("failed to send", ret, mDot::getReturnCodeString(ret).c_str()); } else { logInfo("Sent to gateway: %s", tmp_buffer.c_str()); std::vector<uint8_t> rcvData(256); rcvData.clear(); if ((ret = GLOBAL_mdot->recv(rcvData)) == mDot::MDOT_OK) { if (!rcvData.empty()) { std::string rcv_string(rcvData.begin(), rcvData.end()); logInfo("Received Data: %s", rcv_string.c_str()); CloudFileReceiver( &rcv_string, GLOBAL_mdot ); } } } } }