v-16

Dependencies:   FP MQTTPacket

Committer:
DuyLionTran
Date:
Tue Dec 12 15:58:09 2017 +0000
Revision:
0:818366b014c9
version 1.6;

Who changed what in which revision?

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