Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
davidjhoward
Date:
Thu Sep 22 21:09:49 2016 +0000
Revision:
116:7337ed514891
Child:
121:650205ffa656
Child:
123:ce602c91a9c3
Write log to EEPROM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davidjhoward 116:7337ed514891 1 #include "LogHandler.h"
davidjhoward 116:7337ed514891 2 #include "LogLocalApi.h"
davidjhoward 116:7337ed514891 3 #include "CloudFileReceiver.h"
davidjhoward 116:7337ed514891 4 #include "MTSLog.h"
davidjhoward 116:7337ed514891 5 #include "MbedJSONValue.h"
davidjhoward 116:7337ed514891 6 #include "global.h"
davidjhoward 116:7337ed514891 7 #include <sstream>
davidjhoward 116:7337ed514891 8 #include <iostream>
davidjhoward 116:7337ed514891 9
davidjhoward 116:7337ed514891 10 Mail<LoggerQueue_t, 16> LoggerQueue;
davidjhoward 116:7337ed514891 11
davidjhoward 116:7337ed514891 12 size_t LoggerXmitLength = 128;
davidjhoward 116:7337ed514891 13
davidjhoward 116:7337ed514891 14 bool LogHandler( bool connected )
davidjhoward 116:7337ed514891 15 {
davidjhoward 116:7337ed514891 16 int32_t ret;
davidjhoward 116:7337ed514891 17 std::string tmp_buffer;
davidjhoward 116:7337ed514891 18
davidjhoward 116:7337ed514891 19 osEvent evt = LoggerQueue.get(50);
davidjhoward 116:7337ed514891 20 if (evt.status != osEventMail) {
davidjhoward 116:7337ed514891 21 tmp_buffer = "{\"mtype\":\"20\"}";
davidjhoward 116:7337ed514891 22 } else {
davidjhoward 116:7337ed514891 23 char buffer[128];
davidjhoward 116:7337ed514891 24 LoggerQueue_t *LoggerEvent = (LoggerQueue_t*)evt.value.p;
davidjhoward 116:7337ed514891 25 logInfo("Log Msg Received: log entry: %s", LoggerEvent->log_entry);
davidjhoward 116:7337ed514891 26 if( strlen(LoggerEvent->log_entry) >= LoggerXmitLength ) {
davidjhoward 116:7337ed514891 27 memset(buffer, 0, sizeof(buffer));
davidjhoward 116:7337ed514891 28 strncpy( buffer, LoggerEvent->log_entry, (LoggerXmitLength-1) );
davidjhoward 116:7337ed514891 29 tmp_buffer.assign(buffer);
davidjhoward 116:7337ed514891 30 } else {
davidjhoward 116:7337ed514891 31 strncpy( buffer, LoggerEvent->log_entry, (LoggerXmitLength-1) );
davidjhoward 116:7337ed514891 32 tmp_buffer.assign(buffer);
davidjhoward 116:7337ed514891 33 LoggerQueue.free(LoggerEvent);
davidjhoward 116:7337ed514891 34 }
davidjhoward 116:7337ed514891 35 }
davidjhoward 116:7337ed514891 36
davidjhoward 116:7337ed514891 37 if( connected == true ) {
davidjhoward 116:7337ed514891 38 std::vector<uint8_t> data(tmp_buffer.begin(), tmp_buffer.end());
davidjhoward 116:7337ed514891 39 if ((ret = GLOBAL_mdot->send(data)) == mDot::MDOT_OK) {
davidjhoward 116:7337ed514891 40 return true;
davidjhoward 116:7337ed514891 41 }
davidjhoward 116:7337ed514891 42 printf("failed to send, ret=%d, %s\r\n", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 116:7337ed514891 43 }
davidjhoward 116:7337ed514891 44
davidjhoward 116:7337ed514891 45 printf("connected=%d\r\n",connected);
davidjhoward 116:7337ed514891 46
davidjhoward 116:7337ed514891 47 // Store the log to local device
davidjhoward 116:7337ed514891 48 LogLocalApi( tmp_buffer.c_str() );
davidjhoward 116:7337ed514891 49 return false;
davidjhoward 116:7337ed514891 50 }