Official reference client implementation for Cumulocity SmartREST on u-blox C027.

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Vincent Wochnik

Committer:
xinlei
Date:
Mon May 11 18:10:44 2015 +0000
Revision:
106:c61f0d62b625
Parent:
99:e369fc75c000
Child:
109:2ec12f10ebf4
SmartRestSSLSocket and various bug-fixes for rc3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xinlei 94:61d44636f020 1 #include "ReportThread.h"
xinlei 94:61d44636f020 2 #include "logging.h"
xinlei 94:61d44636f020 3
xinlei 106:c61f0d62b625 4 static const char *fmt2 = "111,%ld,%s\r\n";
xinlei 94:61d44636f020 5
xinlei 94:61d44636f020 6 void ReportThread::threadFunc()
xinlei 94:61d44636f020 7 {
xinlei 106:c61f0d62b625 8 sock.setBlocking(3000);
xinlei 94:61d44636f020 9 while (true) {
xinlei 94:61d44636f020 10 osEvent e = ipool.get();
xinlei 94:61d44636f020 11 if (e.status == osEventMail) {
xinlei 94:61d44636f020 12 Operation *op = (Operation*)e.value.p;
xinlei 94:61d44636f020 13 long id = op->identifier;
xinlei 94:61d44636f020 14 OperationState state = op->state;
xinlei 94:61d44636f020 15 ipool.free(op);
xinlei 94:61d44636f020 16 int l = snprintf(buf2, sizeof(buf2), fmt2, id, strOperationState(state));
xinlei 95:010b0f7a0a1a 17 for (unsigned short i = 0; i < 10; ++i) {
xinlei 95:010b0f7a0a1a 18 osEvent e = ipool.get(200);
xinlei 95:010b0f7a0a1a 19 if (e.status == osEventMail) {
xinlei 95:010b0f7a0a1a 20 op = (Operation*)e.value.p;
xinlei 95:010b0f7a0a1a 21 id = op->identifier;
xinlei 95:010b0f7a0a1a 22 OperationState state = op->state;
xinlei 95:010b0f7a0a1a 23 ipool.free(op);
xinlei 106:c61f0d62b625 24 l += snprintf(buf2+l, sizeof(buf2)-l, fmt2, id, strOperationState(state));
xinlei 95:010b0f7a0a1a 25 } else {
xinlei 95:010b0f7a0a1a 26 break;
xinlei 95:010b0f7a0a1a 27 }
xinlei 95:010b0f7a0a1a 28 }
xinlei 99:e369fc75c000 29 l = snprintf(buf, sizeof(buf), fmtSmartRest, uri, l, buf2);
xinlei 94:61d44636f020 30 l = sock.sendOnly(buf, l);
xinlei 94:61d44636f020 31 if (l < 0) {
xinlei 95:010b0f7a0a1a 32 aError("Report: <%ld, %s>\n", id, strOperationState(state));
xinlei 94:61d44636f020 33 }
xinlei 94:61d44636f020 34 }
xinlei 94:61d44636f020 35 }
xinlei 94:61d44636f020 36 }