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

Revision:
107:fc5f25f0e0d5
Parent:
106:c61f0d62b625
Child:
108:f1ee3e1eb126
--- a/operation/ControlParser.cpp	Mon May 11 18:10:44 2015 +0000
+++ b/operation/ControlParser.cpp	Wed May 13 12:12:55 2015 +0000
@@ -22,16 +22,21 @@
 {
         if (tok.type == Token::INT && strncmp("211", tok.p, tok.len)==0) {
                 opType = 211;
-                ptrPF = &ControlParser::parseDeviceId;
+                ptrPF = &ControlParser::parseRowNumber;
         } else {
                 parseError(tok);
         }
 }
 
-void ControlParser::parseDeviceId(Token& tok)
+void ControlParser::parseRowNumber(Token& tok)
 {
         if (tok.type == Token::INT) {
-                ptrPF = &ControlParser::parseOpId;
+                if (opType == 86)
+                        ptrPF = &ControlParser::parseAdviceTimeout;
+                else
+                        ptrPF = &ControlParser::parseOpId;
+        } else if (tok.type == Token::NONE) {
+                ptrPF = &ControlParser::parseAdviceTimeout;
         } else {
                 parseError(tok);
         }
@@ -77,7 +82,7 @@
         if (tok.type == Token::INT) {
                 sscanf(tok.p, "%hu", &opType);
                 if (opType >= 220 && opType <= 222) {
-                        ptrPF = &ControlParser::parseDeviceId;
+                        ptrPF = &ControlParser::parseRowNumber;
                 } else {
                         parseError(tok);
                 }
@@ -138,21 +143,13 @@
 void ControlParser::parseBayeuxAdvice(Token& tok)
 {
         if (strncmp("86", tok.p, tok.len) == 0) {
+                opType = 86;
                 ptrPF = &ControlParser::parseRowNumber;
         } else {
                 parseError(tok);
         }
 }
 
-void ControlParser::parseRowNumber(Token& tok)
-{
-        if (tok.type == Token::INT || tok.type == Token::NONE) {
-                ptrPF = &ControlParser::parseAdviceTimeout;
-        } else {
-                parseError(tok);
-        }
-}
-
 void ControlParser::parseAdviceTimeout(Token& tok)
 {
         if (tok.type == Token::NONE) {