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:
Wed Apr 22 11:22:25 2015 +0000
Revision:
95:010b0f7a0a1a
Parent:
94:61d44636f020
Child:
96:5dfdc8568e9f
v2.1rc2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xinlei 94:61d44636f020 1 #ifndef CONTROLPARSER_H
xinlei 94:61d44636f020 2 #define CONTROLPARSER_H
xinlei 94:61d44636f020 3 #include "Operation.h"
xinlei 94:61d44636f020 4 #include "lex.h"
xinlei 94:61d44636f020 5 #include "DeviceFeedback.h"
xinlei 94:61d44636f020 6 #include "LCDDisplay.h"
xinlei 94:61d44636f020 7 #include "ConfigurationSynchronization.h"
xinlei 94:61d44636f020 8
xinlei 94:61d44636f020 9 enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE };
xinlei 94:61d44636f020 10 class ControlParser;
xinlei 94:61d44636f020 11 typedef void (ControlParser::*PtrParseFunc)(Token&);
xinlei 94:61d44636f020 12
xinlei 94:61d44636f020 13 class ControlParser
xinlei 94:61d44636f020 14 {
xinlei 94:61d44636f020 15 public:
xinlei 94:61d44636f020 16 ControlParser(OperationPool& pool, LCDDisplay& lcdDisplay,
xinlei 94:61d44636f020 17 ConfigurationSynchronization& configSync): opType(0),
xinlei 94:61d44636f020 18 bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0),
xinlei 94:61d44636f020 19 opool(pool), _lcdDisplay(lcdDisplay), _configSync(configSync) {}
xinlei 94:61d44636f020 20 virtual ~ControlParser() {}
xinlei 94:61d44636f020 21 BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; }
xinlei 94:61d44636f020 22 int getBayeuxInterval() const { return bayeuxInterval; }
xinlei 94:61d44636f020 23 int getBayeuxTimeout() const { return bayeuxTimeout; }
xinlei 94:61d44636f020 24 void handleControlMessage(const char*);
xinlei 94:61d44636f020 25 protected:
xinlei 94:61d44636f020 26 void parseAdviceInterval(Token& tok);
xinlei 94:61d44636f020 27 void parseAdvicePolicy(Token& tok);
xinlei 94:61d44636f020 28 void parseAdviceTimeout(Token& tok);
xinlei 94:61d44636f020 29 void parseBayeuxAdvice(Token& tok);
xinlei 94:61d44636f020 30 void parseDeviceId(Token& tok);
xinlei 94:61d44636f020 31 void parseError(Token& tok);
xinlei 94:61d44636f020 32 void parseGetOp(Token& tok);
xinlei 94:61d44636f020 33 void parseGetOpOrBayeuxAdvice(Token& tok);
xinlei 94:61d44636f020 34 void parseOpData(Token& tok);
xinlei 94:61d44636f020 35 void parseOpId(Token& tok);
xinlei 94:61d44636f020 36 void parseOpState(Token& tok);
xinlei 94:61d44636f020 37 void parseOpType(Token& tok);
xinlei 94:61d44636f020 38 void parseRecover(Token& tok);
xinlei 94:61d44636f020 39 void parseUnknownInt(Token& tok);
xinlei 94:61d44636f020 40 private:
xinlei 95:010b0f7a0a1a 41 unsigned short opType;
xinlei 94:61d44636f020 42 Operation op;
xinlei 94:61d44636f020 43 BayeuxAdvice bayeuxAdvice;
xinlei 94:61d44636f020 44 int bayeuxTimeout;
xinlei 94:61d44636f020 45 int bayeuxInterval;
xinlei 94:61d44636f020 46 PtrParseFunc ptrPF;
xinlei 94:61d44636f020 47 OperationPool& opool;
xinlei 94:61d44636f020 48 LCDDisplay& _lcdDisplay;
xinlei 94:61d44636f020 49 ConfigurationSynchronization& _configSync;
xinlei 94:61d44636f020 50 };
xinlei 94:61d44636f020 51
xinlei 94:61d44636f020 52 #endif /* CONTROLPARSER_H */