High level MQTT-SN C++ library

Dependencies:   EthernetInterface FP MQTTSNPacket

Dependents:   HelloMQTTSN

Committer:
icraggs
Date:
Thu Feb 26 16:01:40 2015 +0000
Revision:
0:ae83cacd60d2
Working version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
icraggs 0:ae83cacd60d2 1 #if !defined(MQTT_MBED_H)
icraggs 0:ae83cacd60d2 2 #define MQTT_MBED_H
icraggs 0:ae83cacd60d2 3
icraggs 0:ae83cacd60d2 4 #include "mbed.h"
icraggs 0:ae83cacd60d2 5
icraggs 0:ae83cacd60d2 6 class Countdown
icraggs 0:ae83cacd60d2 7 {
icraggs 0:ae83cacd60d2 8 public:
icraggs 0:ae83cacd60d2 9 Countdown()
icraggs 0:ae83cacd60d2 10 {
icraggs 0:ae83cacd60d2 11 t = Timer();
icraggs 0:ae83cacd60d2 12 }
icraggs 0:ae83cacd60d2 13
icraggs 0:ae83cacd60d2 14 Countdown(int ms)
icraggs 0:ae83cacd60d2 15 {
icraggs 0:ae83cacd60d2 16 t = Timer();
icraggs 0:ae83cacd60d2 17 countdown_ms(ms);
icraggs 0:ae83cacd60d2 18 }
icraggs 0:ae83cacd60d2 19
icraggs 0:ae83cacd60d2 20
icraggs 0:ae83cacd60d2 21 bool expired()
icraggs 0:ae83cacd60d2 22 {
icraggs 0:ae83cacd60d2 23 return t.read_ms() >= interval_end_ms;
icraggs 0:ae83cacd60d2 24 }
icraggs 0:ae83cacd60d2 25
icraggs 0:ae83cacd60d2 26 void countdown_ms(unsigned long ms)
icraggs 0:ae83cacd60d2 27 {
icraggs 0:ae83cacd60d2 28 t.stop();
icraggs 0:ae83cacd60d2 29 interval_end_ms = ms;
icraggs 0:ae83cacd60d2 30 t.reset();
icraggs 0:ae83cacd60d2 31 t.start();
icraggs 0:ae83cacd60d2 32 }
icraggs 0:ae83cacd60d2 33
icraggs 0:ae83cacd60d2 34 void countdown(int seconds)
icraggs 0:ae83cacd60d2 35 {
icraggs 0:ae83cacd60d2 36 countdown_ms((unsigned long)seconds * 1000L);
icraggs 0:ae83cacd60d2 37 }
icraggs 0:ae83cacd60d2 38
icraggs 0:ae83cacd60d2 39 int left_ms()
icraggs 0:ae83cacd60d2 40 {
icraggs 0:ae83cacd60d2 41 return interval_end_ms - t.read_ms();
icraggs 0:ae83cacd60d2 42 }
icraggs 0:ae83cacd60d2 43
icraggs 0:ae83cacd60d2 44 private:
icraggs 0:ae83cacd60d2 45 Timer t;
icraggs 0:ae83cacd60d2 46 unsigned long interval_end_ms;
icraggs 0:ae83cacd60d2 47 };
icraggs 0:ae83cacd60d2 48
icraggs 0:ae83cacd60d2 49 #endif