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:
94:61d44636f020
Child:
95:010b0f7a0a1a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/operation/ControlParser.h	Mon Apr 20 15:04:23 2015 +0000
@@ -0,0 +1,52 @@
+#ifndef CONTROLPARSER_H
+#define CONTROLPARSER_H
+#include "Operation.h"
+#include "lex.h"
+#include "DeviceFeedback.h"
+#include "LCDDisplay.h"
+#include "ConfigurationSynchronization.h"
+
+enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE };
+class ControlParser;
+typedef void (ControlParser::*PtrParseFunc)(Token&);
+
+class ControlParser
+{
+public:
+        ControlParser(OperationPool& pool, LCDDisplay& lcdDisplay, 
+                ConfigurationSynchronization& configSync): opType(0),
+                bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0),
+                opool(pool), _lcdDisplay(lcdDisplay), _configSync(configSync) {}
+        virtual ~ControlParser() {}
+        BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; }
+        int getBayeuxInterval() const { return bayeuxInterval; }
+        int getBayeuxTimeout() const { return bayeuxTimeout; }
+        void handleControlMessage(const char*);
+protected:
+        void parseAdviceInterval(Token& tok);
+        void parseAdvicePolicy(Token& tok);
+        void parseAdviceTimeout(Token& tok);
+        void parseBayeuxAdvice(Token& tok);
+        void parseDeviceId(Token& tok);
+        void parseError(Token& tok);
+        void parseGetOp(Token& tok);
+        void parseGetOpOrBayeuxAdvice(Token& tok);
+        void parseOpData(Token& tok);
+        void parseOpId(Token& tok);
+        void parseOpState(Token& tok);
+        void parseOpType(Token& tok);
+        void parseRecover(Token& tok);
+        void parseUnknownInt(Token& tok);
+private:
+        uint8_t opType;
+        Operation op;
+        BayeuxAdvice bayeuxAdvice;
+        int bayeuxTimeout;
+        int bayeuxInterval;
+        PtrParseFunc ptrPF;
+        OperationPool& opool;
+        LCDDisplay& _lcdDisplay;
+        ConfigurationSynchronization& _configSync;
+};
+
+#endif /* CONTROLPARSER_H */