Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
operation/ReportThread.cpp@94:010b0f7a0a1a, 2015-04-22 (annotated)
- Committer:
- xinlei
- Date:
- Wed Apr 22 11:22:25 2015 +0000
- Revision:
- 94:010b0f7a0a1a
- Parent:
- 93:61d44636f020
- Child:
- 98:e369fc75c000
v2.1rc2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xinlei | 93:61d44636f020 | 1 | #include "ReportThread.h" |
xinlei | 93:61d44636f020 | 2 | #include "logging.h" |
xinlei | 93:61d44636f020 | 3 | |
xinlei | 94:010b0f7a0a1a | 4 | const char *fmt2 = "111,%ld,%s\r\n"; |
xinlei | 93:61d44636f020 | 5 | |
xinlei | 93:61d44636f020 | 6 | void ReportThread::threadFunc() |
xinlei | 93:61d44636f020 | 7 | { |
xinlei | 93:61d44636f020 | 8 | while (true) { |
xinlei | 93:61d44636f020 | 9 | osEvent e = ipool.get(); |
xinlei | 93:61d44636f020 | 10 | if (e.status == osEventMail) { |
xinlei | 93:61d44636f020 | 11 | Operation *op = (Operation*)e.value.p; |
xinlei | 93:61d44636f020 | 12 | long id = op->identifier; |
xinlei | 93:61d44636f020 | 13 | OperationState state = op->state; |
xinlei | 93:61d44636f020 | 14 | ipool.free(op); |
xinlei | 93:61d44636f020 | 15 | int l = snprintf(buf2, sizeof(buf2), fmt2, id, strOperationState(state)); |
xinlei | 94:010b0f7a0a1a | 16 | for (unsigned short i = 0; i < 10; ++i) { |
xinlei | 94:010b0f7a0a1a | 17 | osEvent e = ipool.get(200); |
xinlei | 94:010b0f7a0a1a | 18 | if (e.status == osEventMail) { |
xinlei | 94:010b0f7a0a1a | 19 | op = (Operation*)e.value.p; |
xinlei | 94:010b0f7a0a1a | 20 | id = op->identifier; |
xinlei | 94:010b0f7a0a1a | 21 | OperationState state = op->state; |
xinlei | 94:010b0f7a0a1a | 22 | ipool.free(op); |
xinlei | 94:010b0f7a0a1a | 23 | l += snprintf(buf2+l, SMARRESTBODY_SIZE-l, fmt2, id, strOperationState(state)); |
xinlei | 94:010b0f7a0a1a | 24 | } else { |
xinlei | 94:010b0f7a0a1a | 25 | break; |
xinlei | 94:010b0f7a0a1a | 26 | } |
xinlei | 94:010b0f7a0a1a | 27 | } |
xinlei | 93:61d44636f020 | 28 | l = snprintf(buf, sizeof(buf), getSmartRestFmt(), uri, l, buf2); |
xinlei | 93:61d44636f020 | 29 | l = sock.sendOnly(buf, l); |
xinlei | 93:61d44636f020 | 30 | if (l < 0) { |
xinlei | 94:010b0f7a0a1a | 31 | aError("Report: <%ld, %s>\n", id, strOperationState(state)); |
xinlei | 93:61d44636f020 | 32 | } |
xinlei | 93:61d44636f020 | 33 | } |
xinlei | 93:61d44636f020 | 34 | } |
xinlei | 93:61d44636f020 | 35 | } |