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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers timers.cpp Source File

timers.cpp

00001 #include "timers.h"
00002 
00003 MyTimers::MyTimers()
00004 {
00005     // initialise timers
00006     groveMeasureTimer = 0;
00007     gprsPowerTimer    = 0;
00008     gprsRxTxTimer     = 0;
00009     sdWaitErrorTimer  = 0;
00010     measFlashTimer    = 0;
00011 
00012     m_tick = new Ticker();
00013     // configure the ticker object to run every 1ms, and to call \sa run when it does so.
00014     m_tick->attach(this, &MyTimers::run, 0.001);
00015 }
00016 
00017 MyTimers::~MyTimers()
00018 {
00019     delete m_tick;
00020 }
00021 
00022 void MyTimers::run()
00023 {
00024     // decrement each timer in the class
00025     if (groveMeasureTimer) groveMeasureTimer--;
00026     if (gprsPowerTimer   ) gprsPowerTimer--;
00027     if (gprsRxTxTimer    ) gprsRxTxTimer--;
00028     if (sdWaitErrorTimer ) sdWaitErrorTimer--;
00029     if (measFlashTimer   ) measFlashTimer--;
00030 }
00031 
00032 
00033 void MyTimers::SetTimer(eTimerType  timertype, unsigned long time_ms)
00034 {
00035     // see which timer we have to set, and set it
00036     switch(timertype)
00037     {
00038     case tmr_GroveMeasure:
00039         groveMeasureTimer = time_ms;
00040         break;
00041     case tmr_GprsPower:
00042         gprsPowerTimer = time_ms;
00043         break;
00044     case tmr_GprsRxTx:
00045         gprsRxTxTimer = time_ms;
00046         break;
00047     case tmr_SdWaitError:
00048         sdWaitErrorTimer = time_ms;
00049         break;
00050     case tmr_MeasFlash:
00051         measFlashTimer = time_ms;
00052         break;
00053     }
00054 }
00055 
00056 unsigned long MyTimers::GetTimer(eTimerType  timertype)
00057 {
00058     // see which timer we have to get, and return it.
00059     switch(timertype)
00060     {
00061     case tmr_GroveMeasure:
00062         return groveMeasureTimer;
00063     case tmr_GprsPower:
00064         return gprsPowerTimer;
00065     case tmr_GprsRxTx:
00066         return gprsRxTxTimer;
00067     case tmr_SdWaitError:
00068         return sdWaitErrorTimer;
00069     case tmr_MeasFlash:
00070         return measFlashTimer;
00071     }
00072     return 0;
00073 }
00074