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:
Mon Apr 27 10:50:21 2015 +0000
Revision:
96:5dfdc8568e9f
Child:
97:ea056f6be2e8
LCDDisplay now is singleton

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xinlei 96:5dfdc8568e9f 1 #ifndef POLLTHREAD_H
xinlei 96:5dfdc8568e9f 2 #define POLLTHREAD_H
xinlei 96:5dfdc8568e9f 3 #include "SmartRestSocket.h"
xinlei 96:5dfdc8568e9f 4 #include "Operation.h"
xinlei 96:5dfdc8568e9f 5 #include "SmartRestConf.h"
xinlei 96:5dfdc8568e9f 6 #include "ControlParser.h"
xinlei 96:5dfdc8568e9f 7
xinlei 96:5dfdc8568e9f 8 class PollThread
xinlei 96:5dfdc8568e9f 9 {
xinlei 96:5dfdc8568e9f 10 public:
xinlei 96:5dfdc8568e9f 11 PollThread(OperationPool& pool, MDMSerial& m,
xinlei 96:5dfdc8568e9f 12 ConfigurationSynchronization& configSync):
xinlei 96:5dfdc8568e9f 13 sock(m), parser(pool, configSync),
xinlei 96:5dfdc8568e9f 14 thread(PollThread::threadWrapper, this) {
xinlei 96:5dfdc8568e9f 15 strncpy(uri, "/devicecontrol/notifications", sizeof(uri));
xinlei 96:5dfdc8568e9f 16 sock.set_blocking(true);
xinlei 96:5dfdc8568e9f 17 }
xinlei 96:5dfdc8568e9f 18 virtual ~PollThread() { sock.close(); }
xinlei 96:5dfdc8568e9f 19 bool handshake();
xinlei 96:5dfdc8568e9f 20 bool subscribe();
xinlei 96:5dfdc8568e9f 21 bool connect();
xinlei 96:5dfdc8568e9f 22 void setChannel(long channel) { snprintf(chn, sizeof(chn), "/%ld", channel); }
xinlei 96:5dfdc8568e9f 23 void threadFunc();
xinlei 96:5dfdc8568e9f 24 static void threadWrapper(const void *p) { ((PollThread*)p)->threadFunc(); }
xinlei 96:5dfdc8568e9f 25 private:
xinlei 96:5dfdc8568e9f 26 char chn[16];
xinlei 96:5dfdc8568e9f 27 char uri[30];
xinlei 96:5dfdc8568e9f 28 char bayeuxId[50];
xinlei 96:5dfdc8568e9f 29 char buf[SMARTREST_SIZE];
xinlei 96:5dfdc8568e9f 30 char buf2[SMARRESTBODY_SIZE];
xinlei 96:5dfdc8568e9f 31 SmartRestSocket sock;
xinlei 96:5dfdc8568e9f 32 ControlParser parser;
xinlei 96:5dfdc8568e9f 33 Thread thread;
xinlei 96:5dfdc8568e9f 34 };
xinlei 96:5dfdc8568e9f 35
xinlei 96:5dfdc8568e9f 36 #endif /* POLLTHREAD_H */