A simple WIP that logs data from a Grove sensor, and can send and receive information over USB and SMS.

Dependencies:   DHT DS_1337 SDFileSystem USBDevice mbed

Committer:
Joseph Radford
Date:
Sun Apr 10 15:47:33 2016 +1000
Revision:
0:2df78a4443cd
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Joseph Radford 0:2df78a4443cd 1 #include "timers.h"
Joseph Radford 0:2df78a4443cd 2
Joseph Radford 0:2df78a4443cd 3 MyTimers::MyTimers()
Joseph Radford 0:2df78a4443cd 4 {
Joseph Radford 0:2df78a4443cd 5 // initialise timers
Joseph Radford 0:2df78a4443cd 6 groveMeasureTimer = 0;
Joseph Radford 0:2df78a4443cd 7 gprsPowerTimer = 0;
Joseph Radford 0:2df78a4443cd 8 gprsRxTxTimer = 0;
Joseph Radford 0:2df78a4443cd 9 sdWaitErrorTimer = 0;
Joseph Radford 0:2df78a4443cd 10 measFlashTimer = 0;
Joseph Radford 0:2df78a4443cd 11
Joseph Radford 0:2df78a4443cd 12 m_tick = new Ticker();
Joseph Radford 0:2df78a4443cd 13 // configure the ticker object to run every 1ms, and to call \sa run when it does so.
Joseph Radford 0:2df78a4443cd 14 m_tick->attach(this, &MyTimers::run, 0.001);
Joseph Radford 0:2df78a4443cd 15 }
Joseph Radford 0:2df78a4443cd 16
Joseph Radford 0:2df78a4443cd 17 MyTimers::~MyTimers()
Joseph Radford 0:2df78a4443cd 18 {
Joseph Radford 0:2df78a4443cd 19 delete m_tick;
Joseph Radford 0:2df78a4443cd 20 }
Joseph Radford 0:2df78a4443cd 21
Joseph Radford 0:2df78a4443cd 22 void MyTimers::run()
Joseph Radford 0:2df78a4443cd 23 {
Joseph Radford 0:2df78a4443cd 24 // decrement each timer in the class
Joseph Radford 0:2df78a4443cd 25 if (groveMeasureTimer) groveMeasureTimer--;
Joseph Radford 0:2df78a4443cd 26 if (gprsPowerTimer ) gprsPowerTimer--;
Joseph Radford 0:2df78a4443cd 27 if (gprsRxTxTimer ) gprsRxTxTimer--;
Joseph Radford 0:2df78a4443cd 28 if (sdWaitErrorTimer ) sdWaitErrorTimer--;
Joseph Radford 0:2df78a4443cd 29 if (measFlashTimer ) measFlashTimer--;
Joseph Radford 0:2df78a4443cd 30 }
Joseph Radford 0:2df78a4443cd 31
Joseph Radford 0:2df78a4443cd 32
Joseph Radford 0:2df78a4443cd 33 void MyTimers::SetTimer(eTimerType timertype, unsigned long time_ms)
Joseph Radford 0:2df78a4443cd 34 {
Joseph Radford 0:2df78a4443cd 35 // see which timer we have to set, and set it
Joseph Radford 0:2df78a4443cd 36 switch(timertype)
Joseph Radford 0:2df78a4443cd 37 {
Joseph Radford 0:2df78a4443cd 38 case tmr_GroveMeasure:
Joseph Radford 0:2df78a4443cd 39 groveMeasureTimer = time_ms;
Joseph Radford 0:2df78a4443cd 40 break;
Joseph Radford 0:2df78a4443cd 41 case tmr_GprsPower:
Joseph Radford 0:2df78a4443cd 42 gprsPowerTimer = time_ms;
Joseph Radford 0:2df78a4443cd 43 break;
Joseph Radford 0:2df78a4443cd 44 case tmr_GprsRxTx:
Joseph Radford 0:2df78a4443cd 45 gprsRxTxTimer = time_ms;
Joseph Radford 0:2df78a4443cd 46 break;
Joseph Radford 0:2df78a4443cd 47 case tmr_SdWaitError:
Joseph Radford 0:2df78a4443cd 48 sdWaitErrorTimer = time_ms;
Joseph Radford 0:2df78a4443cd 49 break;
Joseph Radford 0:2df78a4443cd 50 case tmr_MeasFlash:
Joseph Radford 0:2df78a4443cd 51 measFlashTimer = time_ms;
Joseph Radford 0:2df78a4443cd 52 break;
Joseph Radford 0:2df78a4443cd 53 }
Joseph Radford 0:2df78a4443cd 54 }
Joseph Radford 0:2df78a4443cd 55
Joseph Radford 0:2df78a4443cd 56 unsigned long MyTimers::GetTimer(eTimerType timertype)
Joseph Radford 0:2df78a4443cd 57 {
Joseph Radford 0:2df78a4443cd 58 // see which timer we have to get, and return it.
Joseph Radford 0:2df78a4443cd 59 switch(timertype)
Joseph Radford 0:2df78a4443cd 60 {
Joseph Radford 0:2df78a4443cd 61 case tmr_GroveMeasure:
Joseph Radford 0:2df78a4443cd 62 return groveMeasureTimer;
Joseph Radford 0:2df78a4443cd 63 case tmr_GprsPower:
Joseph Radford 0:2df78a4443cd 64 return gprsPowerTimer;
Joseph Radford 0:2df78a4443cd 65 case tmr_GprsRxTx:
Joseph Radford 0:2df78a4443cd 66 return gprsRxTxTimer;
Joseph Radford 0:2df78a4443cd 67 case tmr_SdWaitError:
Joseph Radford 0:2df78a4443cd 68 return sdWaitErrorTimer;
Joseph Radford 0:2df78a4443cd 69 case tmr_MeasFlash:
Joseph Radford 0:2df78a4443cd 70 return measFlashTimer;
Joseph Radford 0:2df78a4443cd 71 }
Joseph Radford 0:2df78a4443cd 72 return 0;
Joseph Radford 0:2df78a4443cd 73 }
Joseph Radford 0:2df78a4443cd 74