MQTT cellular example
Dependencies: C027 C027_Support C12832 mbed-rtos mbed FP MQTTPacket
Fork of HelloMQTT by
Diff: MQTT/IPStack/EthernetInterfaceIPStack.h
- Revision:
- 8:b32c94be6522
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MQTT/IPStack/EthernetInterfaceIPStack.h Mon May 12 09:59:50 2014 +0000 @@ -0,0 +1,86 @@ +#include "TCPSocketConnection.h" + +#ifndef ETHERNETINTERFACEIPSTACK_H +#define ETHERNETINTERFACEIPSTACK_H + +class IPStack +{ +public: + IPStack() + { + mysock.set_blocking(false, 1000); // 1 second Timeout + } + + int connect(char* hostname, int port) + { + return mysock.connect(hostname, port); + } + + int read(char* buffer, int len, int timeout) + { + mysock.set_blocking(false, timeout); + return mysock.receive(buffer, len); + } + + int write(char* buffer, int len, int timeout) + { + mysock.set_blocking(false, timeout); + return mysock.send(buffer, len); + } + + int disconnect() + { + return mysock.close(); + } + +private: + + TCPSocketConnection mysock; + +}; + + +class Countdown +{ +public: + Countdown() + { + t = Timer(); + } + + Countdown(int ms) + { + t = Timer(); + countdown_ms(ms); + } + + + bool expired() + { + return t.read_ms() >= interval_end_ms; + } + + void countdown_ms(int ms) + { + t.stop(); + interval_end_ms = ms; + t.reset(); + t.start(); + } + + void countdown(int seconds) + { + countdown_ms(seconds * 1000); + } + + int left_ms() + { + return interval_end_ms - t.read_ms(); + } + +private: + Timer t; + int interval_end_ms; +}; + +#endif