header file
Dependencies: N5110 PowerControl SRF02 beep mbed
timeMgr.h@0:7a82ad48df33, 2015-05-05 (annotated)
- Committer:
- probrania7
- Date:
- Tue May 05 00:39:32 2015 +0000
- Revision:
- 0:7a82ad48df33
- Child:
- 3:bbfabbbc4291
rev1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
probrania7 | 0:7a82ad48df33 | 1 | #include "mbed.h" |
probrania7 | 0:7a82ad48df33 | 2 | Serial serial(USBTX,USBRX); |
probrania7 | 0:7a82ad48df33 | 3 | void serialISR(); // ISR that is called when serial data is received |
probrania7 | 0:7a82ad48df33 | 4 | void setTime(); // function to set the UNIX time |
probrania7 | 0:7a82ad48df33 | 5 | int setTimeFlag = 0; // flag for ISR |
probrania7 | 0:7a82ad48df33 | 6 | char rxString[16]; // buffer to store received string |
probrania7 | 0:7a82ad48df33 | 7 | void timer2Expired(); |
probrania7 | 0:7a82ad48df33 | 8 | Ticker timer2; |
probrania7 | 0:7a82ad48df33 | 9 | int timer2Flag = 0; |
probrania7 | 0:7a82ad48df33 | 10 | char buffer2[30]; // buffer used to store time string |
probrania7 | 0:7a82ad48df33 | 11 | void getCurrentTime(); |
probrania7 | 0:7a82ad48df33 | 12 | void chkUpdateTime(); |
probrania7 | 0:7a82ad48df33 | 13 | |
probrania7 | 0:7a82ad48df33 | 14 | |
probrania7 | 0:7a82ad48df33 | 15 | |
probrania7 | 0:7a82ad48df33 | 16 | void setTime() |
probrania7 | 0:7a82ad48df33 | 17 | { |
probrania7 | 0:7a82ad48df33 | 18 | // print time for debugging |
probrania7 | 0:7a82ad48df33 | 19 | serial.printf("\n\n\rset_time - %s",rxString); |
probrania7 | 0:7a82ad48df33 | 20 | // atoi() converts a string to an integer |
probrania7 | 0:7a82ad48df33 | 21 | int time = atoi(rxString); |
probrania7 | 0:7a82ad48df33 | 22 | // update the time |
probrania7 | 0:7a82ad48df33 | 23 | set_time(time); //string of numbers from epoch like "1430659413" |
probrania7 | 0:7a82ad48df33 | 24 | } |
probrania7 | 0:7a82ad48df33 | 25 | void serialISR() |
probrania7 | 0:7a82ad48df33 | 26 | { |
probrania7 | 0:7a82ad48df33 | 27 | |
probrania7 | 0:7a82ad48df33 | 28 | // when a serial interrupt occurs, read rx string into buffer |
probrania7 | 0:7a82ad48df33 | 29 | serial.gets(rxString,16); |
probrania7 | 0:7a82ad48df33 | 30 | // set flag |
probrania7 | 0:7a82ad48df33 | 31 | setTimeFlag = 1; |
probrania7 | 0:7a82ad48df33 | 32 | |
probrania7 | 0:7a82ad48df33 | 33 | } |
probrania7 | 0:7a82ad48df33 | 34 | //ISR |
probrania7 | 0:7a82ad48df33 | 35 | void timer2Expired() |
probrania7 | 0:7a82ad48df33 | 36 | { |
probrania7 | 0:7a82ad48df33 | 37 | timer2Flag = 1; |
probrania7 | 0:7a82ad48df33 | 38 | } |
probrania7 | 0:7a82ad48df33 | 39 | |
probrania7 | 0:7a82ad48df33 | 40 | void getCurrentTime() |
probrania7 | 0:7a82ad48df33 | 41 | { |
probrania7 | 0:7a82ad48df33 | 42 | timer2Flag = 0; |
probrania7 | 0:7a82ad48df33 | 43 | time_t seconds = time(NULL); // get current time |
probrania7 | 0:7a82ad48df33 | 44 | // format time into a string (time and date) |
probrania7 | 0:7a82ad48df33 | 45 | strftime(buffer2, 30 , "%R %d %b", localtime(&seconds)); |
probrania7 | 0:7a82ad48df33 | 46 | // print over serial |
probrania7 | 0:7a82ad48df33 | 47 | serial.printf("\n\n\rTime = %s\n",buffer2); |
probrania7 | 0:7a82ad48df33 | 48 | } |
probrania7 | 0:7a82ad48df33 | 49 | |
probrania7 | 0:7a82ad48df33 | 50 | void chkUpdateTime() |
probrania7 | 0:7a82ad48df33 | 51 | { // if updated time has been sent |
probrania7 | 0:7a82ad48df33 | 52 | setTimeFlag = 0; // clear flag |
probrania7 | 0:7a82ad48df33 | 53 | setTime(); // update time |
probrania7 | 0:7a82ad48df33 | 54 | } |