![](/media/cache/profiles/keystone_logo_icon.svg.png.50x50_q85.png)
Example project to publish messages to a MQTT-SN broker using the u-blox SARA-N200 NB-IoT modem
Dependencies: MQTTSNPacket X-NUCLEO-SARA-N200
Diff: MQTTmbed.h
- Revision:
- 1:70b751b7a189
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MQTTmbed.h Mon Aug 20 16:42:45 2018 +0200 @@ -0,0 +1,54 @@ +#if !defined(MQTT_MBED_H) +#define MQTT_MBED_H + +#include "mbed.h" + +class Countdown +{ +public: + Countdown() + { + t = new Timer(); + interval_end_ms = 0; + } + + Countdown(int ms) + { + t = new Timer(); + countdown_ms(ms); + } + + ~Countdown() + { + delete t; + } + + bool expired() + { + return t->read_ms() >= interval_end_ms; + } + + void countdown_ms(unsigned long ms) + { + t->stop(); + interval_end_ms = ms; + t->reset(); + t->start(); + } + + void countdown(int seconds) + { + countdown_ms((unsigned long)seconds * 1000L); + } + + int left_ms() + { + return interval_end_ms - t->read_ms(); + } + +private: + Timer *t; + int interval_end_ms; +}; + +#endif