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:
Thu May 07 09:57:55 2015 +0000
Revision:
99:e369fc75c000
Parent:
95:010b0f7a0a1a
Child:
106:c61f0d62b625
prepare for v2.1rc3.

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 95:010b0f7a0a1a 4 const char *fmt2 = "111,%ld,%s\r\n";
xinlei 94:61d44636f020 5
xinlei 94:61d44636f020 6 void ReportThread::threadFunc()
xinlei 94:61d44636f020 7 {
xinlei 99:e369fc75c000 8 sock.set_blocking(false);
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 95:010b0f7a0a1a 24 l += snprintf(buf2+l, SMARRESTBODY_SIZE-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 }