Project
Dependencies: Hotboards_keypad TextLCD eeprom
main.cpp@1:1894419d5def, 2019-09-16 (annotated)
- Committer:
- shivanandgowdakr
- Date:
- Mon Sep 16 14:05:54 2019 +0000
- Revision:
- 1:1894419d5def
- Parent:
- 0:194ff03a2e6a
Time Controlled Switch Display
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shivanandgowdakr | 0:194ff03a2e6a | 1 | |
shivanandgowdakr | 0:194ff03a2e6a | 2 | #include "mbed.h" |
shivanandgowdakr | 0:194ff03a2e6a | 3 | #include "LCDDisplay.h" |
shivanandgowdakr | 0:194ff03a2e6a | 4 | #include "i2ceeprom.h" |
shivanandgowdakr | 0:194ff03a2e6a | 5 | #include "Hotboards_keypad.h" |
shivanandgowdakr | 0:194ff03a2e6a | 6 | #include "Hotboards_keypad.h" |
shivanandgowdakr | 0:194ff03a2e6a | 7 | |
shivanandgowdakr | 0:194ff03a2e6a | 8 | // Defines the keys array with it's respective number of rows & cols, |
shivanandgowdakr | 0:194ff03a2e6a | 9 | // and with the value of each key |
shivanandgowdakr | 1:1894419d5def | 10 | char keys[ 4 ][ 4 ] = { |
shivanandgowdakr | 0:194ff03a2e6a | 11 | { '1' , '2' , '3' , 'A' }, |
shivanandgowdakr | 0:194ff03a2e6a | 12 | { '4' , '5' , '6' , 'B' }, |
shivanandgowdakr | 0:194ff03a2e6a | 13 | { '7' , '8' , '9' , 'C' }, |
shivanandgowdakr | 0:194ff03a2e6a | 14 | { '*' , '0' , '#' , 'D' } |
shivanandgowdakr | 0:194ff03a2e6a | 15 | }; |
shivanandgowdakr | 0:194ff03a2e6a | 16 | |
shivanandgowdakr | 0:194ff03a2e6a | 17 | // Defines the pins connected to the rows |
shivanandgowdakr | 0:194ff03a2e6a | 18 | DigitalInOut rowPins[ 4 ] = {D4,D5,D6,D7 }; |
shivanandgowdakr | 0:194ff03a2e6a | 19 | // Defines the pins connected to the cols |
shivanandgowdakr | 0:194ff03a2e6a | 20 | DigitalInOut colPins[ 4 ] = { D8,D9,D10,D11}; |
shivanandgowdakr | 1:1894419d5def | 21 | //connect to the column pinouts of the keypad |
shivanandgowdakr | 0:194ff03a2e6a | 22 | |
shivanandgowdakr | 0:194ff03a2e6a | 23 | Keypad keypad( makeKeymap( keys ), rowPins, colPins,4,4); |
shivanandgowdakr | 0:194ff03a2e6a | 24 | |
shivanandgowdakr | 0:194ff03a2e6a | 25 | |
shivanandgowdakr | 0:194ff03a2e6a | 26 | bool PasswordStatus=false; |
shivanandgowdakr | 0:194ff03a2e6a | 27 | int mode=0; |
shivanandgowdakr | 1:1894419d5def | 28 | |
shivanandgowdakr | 0:194ff03a2e6a | 29 | |
shivanandgowdakr | 0:194ff03a2e6a | 30 | |
shivanandgowdakr | 0:194ff03a2e6a | 31 | DigitalOut GreenLight(PB_1); |
shivanandgowdakr | 0:194ff03a2e6a | 32 | DigitalOut YellowLight(PB_15); |
shivanandgowdakr | 0:194ff03a2e6a | 33 | DigitalOut RedLight(PB_14); |
shivanandgowdakr | 0:194ff03a2e6a | 34 | DigitalOut SpareLight(PB_13); |
shivanandgowdakr | 0:194ff03a2e6a | 35 | DigitalOut Buzzer(PC_13); |
shivanandgowdakr | 0:194ff03a2e6a | 36 | DigitalOut led1(LED1); |
shivanandgowdakr | 0:194ff03a2e6a | 37 | DigitalOut led2(LED2); |
shivanandgowdakr | 0:194ff03a2e6a | 38 | DigitalOut led3(LED3); |
shivanandgowdakr | 0:194ff03a2e6a | 39 | |
shivanandgowdakr | 0:194ff03a2e6a | 40 | |
shivanandgowdakr | 0:194ff03a2e6a | 41 | |
shivanandgowdakr | 1:1894419d5def | 42 | uint32_t Current_Mode=1; |
shivanandgowdakr | 0:194ff03a2e6a | 43 | |
shivanandgowdakr | 0:194ff03a2e6a | 44 | float G_time=0; |
shivanandgowdakr | 0:194ff03a2e6a | 45 | float Y_time=0; |
shivanandgowdakr | 0:194ff03a2e6a | 46 | float R_time=0; |
shivanandgowdakr | 0:194ff03a2e6a | 47 | |
shivanandgowdakr | 1:1894419d5def | 48 | |
shivanandgowdakr | 0:194ff03a2e6a | 49 | uint8_t StartButtonPressed=0; |
shivanandgowdakr | 0:194ff03a2e6a | 50 | uint8_t StopButtonPressed=0; |
shivanandgowdakr | 0:194ff03a2e6a | 51 | uint8_t ReStartButtonPressed=0; |
shivanandgowdakr | 0:194ff03a2e6a | 52 | Timer timer; |
shivanandgowdakr | 0:194ff03a2e6a | 53 | Timer timerred; |
shivanandgowdakr | 0:194ff03a2e6a | 54 | //Thread EveryOneSec; |
shivanandgowdakr | 0:194ff03a2e6a | 55 | |
shivanandgowdakr | 0:194ff03a2e6a | 56 | void keypadEvent(KeypadEvent key); |
shivanandgowdakr | 1:1894419d5def | 57 | bool ReadEachLightTime(uint32_t mode,char *mmss); |
shivanandgowdakr | 1:1894419d5def | 58 | bool ReadAllTimesofEachMode(uint32_t MODE,char *Greentime,char *Yellowtime,char *Redtime); |
shivanandgowdakr | 0:194ff03a2e6a | 59 | void ExtractTimesinSecs(char *greentime,char *yellowtime,char *redtime,float *grntim,float *yeltim,float *redtim); |
shivanandgowdakr | 1:1894419d5def | 60 | void SaveTimes(uint32_t Mode,float GreenTime,float YellowTime,float RedTime); |
shivanandgowdakr | 0:194ff03a2e6a | 61 | void CalculateTimeElapsed(float TimeElapsed, char *TimeStr); |
shivanandgowdakr | 0:194ff03a2e6a | 62 | bool PasswordAcceptance(); |
shivanandgowdakr | 0:194ff03a2e6a | 63 | int ModeSelectTochange(); |
shivanandgowdakr | 1:1894419d5def | 64 | void Get_Time_Elapsed_after_Start(float timeInSec, char * str); |
shivanandgowdakr | 0:194ff03a2e6a | 65 | void fn(char rkey); |
shivanandgowdakr | 0:194ff03a2e6a | 66 | int main() |
shivanandgowdakr | 0:194ff03a2e6a | 67 | { |
shivanandgowdakr | 1:1894419d5def | 68 | bool start=false; |
shivanandgowdakr | 1:1894419d5def | 69 | |
shivanandgowdakr | 1:1894419d5def | 70 | bool lcdflag=true; |
shivanandgowdakr | 1:1894419d5def | 71 | |
shivanandgowdakr | 1:1894419d5def | 72 | char Timestr[10]={'\0'}; |
shivanandgowdakr | 1:1894419d5def | 73 | char Buf[17]={'\0'}; |
shivanandgowdakr | 0:194ff03a2e6a | 74 | float timeElapsed=0; |
shivanandgowdakr | 0:194ff03a2e6a | 75 | char buff[6]= {'\0'}; |
shivanandgowdakr | 0:194ff03a2e6a | 76 | char Buffer[17]= {'\0'}; |
shivanandgowdakr | 0:194ff03a2e6a | 77 | Clear_LCD(); |
shivanandgowdakr | 0:194ff03a2e6a | 78 | Display_LCD(0,0," Initialising "); |
shivanandgowdakr | 0:194ff03a2e6a | 79 | SpareLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 80 | GreenLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 81 | YellowLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 82 | RedLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 83 | wait(1); |
shivanandgowdakr | 0:194ff03a2e6a | 84 | Clear_LCD(); |
shivanandgowdakr | 0:194ff03a2e6a | 85 | //Current_Mode=1; |
shivanandgowdakr | 1:1894419d5def | 86 | // Last_Saved_Mode(); |
shivanandgowdakr | 1:1894419d5def | 87 | Display_LCD(0,0,"Select Mode Or"); |
shivanandgowdakr | 1:1894419d5def | 88 | Display_LCD(0,1,"Press Start "); |
shivanandgowdakr | 1:1894419d5def | 89 | G_time=20; |
shivanandgowdakr | 1:1894419d5def | 90 | Y_time=5; |
shivanandgowdakr | 1:1894419d5def | 91 | R_time=10; |
shivanandgowdakr | 0:194ff03a2e6a | 92 | char key; |
shivanandgowdakr | 1:1894419d5def | 93 | |
shivanandgowdakr | 1:1894419d5def | 94 | |
shivanandgowdakr | 1:1894419d5def | 95 | Current_Mode = readCurrentMode(); |
shivanandgowdakr | 1:1894419d5def | 96 | |
shivanandgowdakr | 1:1894419d5def | 97 | //WriteCorresspondingTimes(1, 10,20,30); |
shivanandgowdakr | 1:1894419d5def | 98 | // ReadCorresspondingTimes(1,&G_time,&Y_time,&R_time); |
shivanandgowdakr | 1:1894419d5def | 99 | |
shivanandgowdakr | 1:1894419d5def | 100 | |
shivanandgowdakr | 1:1894419d5def | 101 | printf("Current Mode is %d \r\n", Current_Mode); |
shivanandgowdakr | 1:1894419d5def | 102 | |
shivanandgowdakr | 0:194ff03a2e6a | 103 | while(1) { |
shivanandgowdakr | 0:194ff03a2e6a | 104 | |
shivanandgowdakr | 0:194ff03a2e6a | 105 | key=keypad.getKey(); |
shivanandgowdakr | 1:1894419d5def | 106 | |
shivanandgowdakr | 1:1894419d5def | 107 | printf("Key is :%c\r\n",key); |
shivanandgowdakr | 1:1894419d5def | 108 | if(key) { |
shivanandgowdakr | 1:1894419d5def | 109 | if(key=='*') { |
shivanandgowdakr | 1:1894419d5def | 110 | PasswordStatus=PasswordAcceptance(); |
shivanandgowdakr | 1:1894419d5def | 111 | } |
shivanandgowdakr | 1:1894419d5def | 112 | if(PasswordStatus==true) { |
shivanandgowdakr | 1:1894419d5def | 113 | PasswordStatus=false; |
shivanandgowdakr | 1:1894419d5def | 114 | mode= ModeSelectTochange(); |
shivanandgowdakr | 1:1894419d5def | 115 | if(mode>=1 && mode <=6) { |
shivanandgowdakr | 1:1894419d5def | 116 | fn((char)(mode+0x30)); |
shivanandgowdakr | 1:1894419d5def | 117 | mode=0; |
shivanandgowdakr | 1:1894419d5def | 118 | } else { |
shivanandgowdakr | 1:1894419d5def | 119 | Display_LCD(0,0," Invalid Mode "); |
shivanandgowdakr | 1:1894419d5def | 120 | Display_LCD(0,1," Mode b/w 1-6 "); |
shivanandgowdakr | 1:1894419d5def | 121 | wait(2); |
shivanandgowdakr | 1:1894419d5def | 122 | |
shivanandgowdakr | 1:1894419d5def | 123 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 124 | Display_LCD(0,0,"Select Mode Or"); |
shivanandgowdakr | 1:1894419d5def | 125 | Display_LCD(0,1,"Press Start "); |
shivanandgowdakr | 1:1894419d5def | 126 | |
shivanandgowdakr | 1:1894419d5def | 127 | } |
shivanandgowdakr | 1:1894419d5def | 128 | } |
shivanandgowdakr | 1:1894419d5def | 129 | |
shivanandgowdakr | 1:1894419d5def | 130 | else if(key=='A') { |
shivanandgowdakr | 1:1894419d5def | 131 | printf("Started \r\n"); |
shivanandgowdakr | 1:1894419d5def | 132 | StartButtonPressed=1; |
shivanandgowdakr | 1:1894419d5def | 133 | StopButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 134 | ReStartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 135 | printf("Started \r\n"); |
shivanandgowdakr | 1:1894419d5def | 136 | timer.start(); |
shivanandgowdakr | 1:1894419d5def | 137 | |
shivanandgowdakr | 1:1894419d5def | 138 | } |
shivanandgowdakr | 1:1894419d5def | 139 | |
shivanandgowdakr | 1:1894419d5def | 140 | else if(key=='B') { |
shivanandgowdakr | 1:1894419d5def | 141 | StartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 142 | StopButtonPressed=1; |
shivanandgowdakr | 1:1894419d5def | 143 | ReStartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 144 | |
shivanandgowdakr | 1:1894419d5def | 145 | printf("Stopped \r\n"); |
shivanandgowdakr | 1:1894419d5def | 146 | wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 147 | } |
shivanandgowdakr | 1:1894419d5def | 148 | |
shivanandgowdakr | 1:1894419d5def | 149 | else if(key=='C') { |
shivanandgowdakr | 1:1894419d5def | 150 | StartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 151 | StopButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 152 | ReStartButtonPressed=1; |
shivanandgowdakr | 1:1894419d5def | 153 | timer.stop(); |
shivanandgowdakr | 1:1894419d5def | 154 | printf("Reset \r\n"); |
shivanandgowdakr | 1:1894419d5def | 155 | wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 156 | } |
shivanandgowdakr | 1:1894419d5def | 157 | |
shivanandgowdakr | 1:1894419d5def | 158 | else if(key=='D') { |
shivanandgowdakr | 1:1894419d5def | 159 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 160 | Display_LCD(0,0,"Choose Mode"); |
shivanandgowdakr | 1:1894419d5def | 161 | wait(0.5); |
shivanandgowdakr | 1:1894419d5def | 162 | char tempkey=keypad.waitForKey(); |
shivanandgowdakr | 1:1894419d5def | 163 | if(tempkey>=0x31 && tempkey<=0x36) { |
shivanandgowdakr | 1:1894419d5def | 164 | char Buff[20]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 165 | sprintf(Buff,"Current Mode %c",tempkey); |
shivanandgowdakr | 1:1894419d5def | 166 | Display_LCD(0,1,Buff); |
shivanandgowdakr | 1:1894419d5def | 167 | Current_Mode=(int)(tempkey-0x30); |
shivanandgowdakr | 1:1894419d5def | 168 | StoreCurrentMode(Current_Mode); |
shivanandgowdakr | 1:1894419d5def | 169 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 170 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 171 | |
shivanandgowdakr | 1:1894419d5def | 172 | } else { |
shivanandgowdakr | 1:1894419d5def | 173 | Display_LCD(0,0,"Invld Mod Entrd"); |
shivanandgowdakr | 1:1894419d5def | 174 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 175 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 176 | |
shivanandgowdakr | 1:1894419d5def | 177 | } |
shivanandgowdakr | 1:1894419d5def | 178 | } else |
shivanandgowdakr | 1:1894419d5def | 179 | {} |
shivanandgowdakr | 1:1894419d5def | 180 | |
shivanandgowdakr | 0:194ff03a2e6a | 181 | } |
shivanandgowdakr | 0:194ff03a2e6a | 182 | |
shivanandgowdakr | 1:1894419d5def | 183 | |
shivanandgowdakr | 0:194ff03a2e6a | 184 | // if(Mode1==0) |
shivanandgowdakr | 1:1894419d5def | 185 | if(Current_Mode==1) { |
shivanandgowdakr | 1:1894419d5def | 186 | // printf("Am here in Mode 1\r\n"); |
shivanandgowdakr | 1:1894419d5def | 187 | // G_time=20; |
shivanandgowdakr | 1:1894419d5def | 188 | // Y_time=5; |
shivanandgowdakr | 1:1894419d5def | 189 | // R_time=10; |
shivanandgowdakr | 1:1894419d5def | 190 | |
shivanandgowdakr | 1:1894419d5def | 191 | ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time); |
shivanandgowdakr | 1:1894419d5def | 192 | // printf(" G_time %f, Y Time %f R_time %f :",G_time,Y_time,R_time); |
shivanandgowdakr | 1:1894419d5def | 193 | // printf("Current MOde 1 \r\n"); |
shivanandgowdakr | 0:194ff03a2e6a | 194 | // Display_LCD(0,1,"Mode: 1"); |
shivanandgowdakr | 1:1894419d5def | 195 | |
shivanandgowdakr | 1:1894419d5def | 196 | |
shivanandgowdakr | 0:194ff03a2e6a | 197 | Y_time=Y_time+G_time; |
shivanandgowdakr | 0:194ff03a2e6a | 198 | R_time=R_time+Y_time; |
shivanandgowdakr | 0:194ff03a2e6a | 199 | wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 200 | } |
shivanandgowdakr | 1:1894419d5def | 201 | |
shivanandgowdakr | 0:194ff03a2e6a | 202 | // if(Mode2==0) |
shivanandgowdakr | 1:1894419d5def | 203 | if(Current_Mode==2) { |
shivanandgowdakr | 1:1894419d5def | 204 | |
shivanandgowdakr | 1:1894419d5def | 205 | // G_time=2; |
shivanandgowdakr | 1:1894419d5def | 206 | // Y_time=5; |
shivanandgowdakr | 1:1894419d5def | 207 | // R_time=1; |
shivanandgowdakr | 1:1894419d5def | 208 | Current_Mode=2; |
shivanandgowdakr | 1:1894419d5def | 209 | ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time); |
shivanandgowdakr | 1:1894419d5def | 210 | |
shivanandgowdakr | 0:194ff03a2e6a | 211 | printf("Current MOde 2 \r\n"); |
shivanandgowdakr | 0:194ff03a2e6a | 212 | // Display_LCD(0,1,"Mode: 2"); |
shivanandgowdakr | 0:194ff03a2e6a | 213 | Y_time=Y_time+G_time; |
shivanandgowdakr | 0:194ff03a2e6a | 214 | R_time=R_time+Y_time; |
shivanandgowdakr | 0:194ff03a2e6a | 215 | wait(0.1); |
shivanandgowdakr | 1:1894419d5def | 216 | } |
shivanandgowdakr | 1:1894419d5def | 217 | |
shivanandgowdakr | 0:194ff03a2e6a | 218 | // if(Mode3==0) |
shivanandgowdakr | 1:1894419d5def | 219 | if(Current_Mode==3) { |
shivanandgowdakr | 1:1894419d5def | 220 | |
shivanandgowdakr | 1:1894419d5def | 221 | // G_time=12; |
shivanandgowdakr | 1:1894419d5def | 222 | // Y_time=5; |
shivanandgowdakr | 1:1894419d5def | 223 | // R_time=10; |
shivanandgowdakr | 0:194ff03a2e6a | 224 | Current_Mode=3; |
shivanandgowdakr | 1:1894419d5def | 225 | ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time); |
shivanandgowdakr | 0:194ff03a2e6a | 226 | printf("Current MOde 3 \r\n"); |
shivanandgowdakr | 0:194ff03a2e6a | 227 | // Display_LCD(0,1,"Mode: 3"); |
shivanandgowdakr | 0:194ff03a2e6a | 228 | Y_time=Y_time+G_time; |
shivanandgowdakr | 0:194ff03a2e6a | 229 | R_time=R_time+Y_time; |
shivanandgowdakr | 0:194ff03a2e6a | 230 | wait(0.1); |
shivanandgowdakr | 1:1894419d5def | 231 | } |
shivanandgowdakr | 1:1894419d5def | 232 | |
shivanandgowdakr | 1:1894419d5def | 233 | |
shivanandgowdakr | 1:1894419d5def | 234 | // if(Mode4==0) |
shivanandgowdakr | 1:1894419d5def | 235 | if(Current_Mode==4) { |
shivanandgowdakr | 1:1894419d5def | 236 | |
shivanandgowdakr | 1:1894419d5def | 237 | // G_time=20; |
shivanandgowdakr | 1:1894419d5def | 238 | // Y_time=5; |
shivanandgowdakr | 1:1894419d5def | 239 | // R_time=10; |
shivanandgowdakr | 0:194ff03a2e6a | 240 | Current_Mode=4; |
shivanandgowdakr | 1:1894419d5def | 241 | ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time); |
shivanandgowdakr | 0:194ff03a2e6a | 242 | printf("Current MOde 1 \r\n"); |
shivanandgowdakr | 0:194ff03a2e6a | 243 | Display_LCD(0,1,"Mode: 4"); |
shivanandgowdakr | 0:194ff03a2e6a | 244 | Y_time=Y_time+G_time; |
shivanandgowdakr | 0:194ff03a2e6a | 245 | R_time=R_time+Y_time; |
shivanandgowdakr | 0:194ff03a2e6a | 246 | wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 247 | } |
shivanandgowdakr | 1:1894419d5def | 248 | // |
shivanandgowdakr | 1:1894419d5def | 249 | if(Current_Mode==5) { |
shivanandgowdakr | 1:1894419d5def | 250 | |
shivanandgowdakr | 1:1894419d5def | 251 | // G_time=2; |
shivanandgowdakr | 1:1894419d5def | 252 | // Y_time=5; |
shivanandgowdakr | 1:1894419d5def | 253 | // R_time=1; |
shivanandgowdakr | 0:194ff03a2e6a | 254 | Current_Mode=5; |
shivanandgowdakr | 1:1894419d5def | 255 | // printf("Current MOde 2 \r\n"); |
shivanandgowdakr | 1:1894419d5def | 256 | ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time); |
shivanandgowdakr | 1:1894419d5def | 257 | Display_LCD(0,1,"Mode: 5"); |
shivanandgowdakr | 0:194ff03a2e6a | 258 | Y_time=Y_time+G_time; |
shivanandgowdakr | 0:194ff03a2e6a | 259 | R_time=R_time+Y_time; |
shivanandgowdakr | 0:194ff03a2e6a | 260 | wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 261 | } |
shivanandgowdakr | 1:1894419d5def | 262 | // |
shivanandgowdakr | 0:194ff03a2e6a | 263 | // if(Mode6==0) |
shivanandgowdakr | 1:1894419d5def | 264 | if(Current_Mode==6) { |
shivanandgowdakr | 1:1894419d5def | 265 | |
shivanandgowdakr | 1:1894419d5def | 266 | // G_time=12; |
shivanandgowdakr | 1:1894419d5def | 267 | // Y_time=5; |
shivanandgowdakr | 1:1894419d5def | 268 | // R_time=10; |
shivanandgowdakr | 0:194ff03a2e6a | 269 | Current_Mode=3; |
shivanandgowdakr | 1:1894419d5def | 270 | // printf("Current MOde 3 \r\n"); |
shivanandgowdakr | 1:1894419d5def | 271 | ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time); |
shivanandgowdakr | 0:194ff03a2e6a | 272 | Display_LCD(0,1,"Mode: 6"); |
shivanandgowdakr | 0:194ff03a2e6a | 273 | Y_time=Y_time+G_time; |
shivanandgowdakr | 0:194ff03a2e6a | 274 | R_time=R_time+Y_time; |
shivanandgowdakr | 0:194ff03a2e6a | 275 | wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 276 | } |
shivanandgowdakr | 0:194ff03a2e6a | 277 | |
shivanandgowdakr | 0:194ff03a2e6a | 278 | |
shivanandgowdakr | 1:1894419d5def | 279 | // if(Start==0) { |
shivanandgowdakr | 1:1894419d5def | 280 | // printf("Started \r\n"); |
shivanandgowdakr | 1:1894419d5def | 281 | // StartButtonPressed=1; |
shivanandgowdakr | 1:1894419d5def | 282 | // StopButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 283 | // ReStartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 284 | // printf("Started ************ %d \r\n",StartButtonPressed); |
shivanandgowdakr | 1:1894419d5def | 285 | // printf("Started ############## %d \r\n",StopButtonPressed); |
shivanandgowdakr | 1:1894419d5def | 286 | // printf("Started 88888888888888%d \r\n",ReStartButtonPressed); |
shivanandgowdakr | 1:1894419d5def | 287 | // |
shivanandgowdakr | 1:1894419d5def | 288 | // timer.start(); |
shivanandgowdakr | 1:1894419d5def | 289 | // |
shivanandgowdakr | 1:1894419d5def | 290 | // } |
shivanandgowdakr | 1:1894419d5def | 291 | // if(Stop==0) { |
shivanandgowdakr | 1:1894419d5def | 292 | // StartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 293 | // StopButtonPressed=1; |
shivanandgowdakr | 1:1894419d5def | 294 | // ReStartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 295 | // |
shivanandgowdakr | 1:1894419d5def | 296 | // printf("Stopped \r\n"); |
shivanandgowdakr | 1:1894419d5def | 297 | // wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 298 | // |
shivanandgowdakr | 1:1894419d5def | 299 | // } |
shivanandgowdakr | 1:1894419d5def | 300 | // |
shivanandgowdakr | 1:1894419d5def | 301 | // if(Reset==0) { |
shivanandgowdakr | 1:1894419d5def | 302 | // StartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 303 | // StopButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 304 | // ReStartButtonPressed=1; |
shivanandgowdakr | 1:1894419d5def | 305 | // timer.stop(); |
shivanandgowdakr | 1:1894419d5def | 306 | // printf("Reset \r\n"); |
shivanandgowdakr | 1:1894419d5def | 307 | // wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 308 | // } |
shivanandgowdakr | 1:1894419d5def | 309 | |
shivanandgowdakr | 1:1894419d5def | 310 | |
shivanandgowdakr | 1:1894419d5def | 311 | if(StartButtonPressed==1 && StopButtonPressed==0 && ReStartButtonPressed==0 ) { |
shivanandgowdakr | 1:1894419d5def | 312 | printf(" Read Time %f\r\n",timer.read()); //while |
shivanandgowdakr | 0:194ff03a2e6a | 313 | if(timer.read()<=G_time ) { |
shivanandgowdakr | 1:1894419d5def | 314 | |
shivanandgowdakr | 1:1894419d5def | 315 | if(lcdflag==true) { |
shivanandgowdakr | 1:1894419d5def | 316 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 317 | lcdflag=false; |
shivanandgowdakr | 1:1894419d5def | 318 | |
shivanandgowdakr | 0:194ff03a2e6a | 319 | } |
shivanandgowdakr | 1:1894419d5def | 320 | |
shivanandgowdakr | 1:1894419d5def | 321 | |
shivanandgowdakr | 0:194ff03a2e6a | 322 | // timer.start(); |
shivanandgowdakr | 0:194ff03a2e6a | 323 | printf(" Read Time %f\r\n",timer.read()); |
shivanandgowdakr | 1:1894419d5def | 324 | Display_LCD(0,0," Green Light "); |
shivanandgowdakr | 1:1894419d5def | 325 | Get_Time_Elapsed_after_Start(timer.read(),Timestr); |
shivanandgowdakr | 1:1894419d5def | 326 | // Display_LCD(0,1,Timestr); |
shivanandgowdakr | 1:1894419d5def | 327 | sprintf(Buf," %s ",Timestr); |
shivanandgowdakr | 1:1894419d5def | 328 | Display_LCD(0,1,Buf); |
shivanandgowdakr | 1:1894419d5def | 329 | memset(Buf,'\0',16); |
shivanandgowdakr | 0:194ff03a2e6a | 330 | GreenLight=0; |
shivanandgowdakr | 0:194ff03a2e6a | 331 | YellowLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 332 | RedLight=1; |
shivanandgowdakr | 1:1894419d5def | 333 | |
shivanandgowdakr | 0:194ff03a2e6a | 334 | } else if( timer.read()>G_time && timer.read()<=Y_time ) { |
shivanandgowdakr | 1:1894419d5def | 335 | Display_LCD(0,0," Yellow Light "); |
shivanandgowdakr | 1:1894419d5def | 336 | Get_Time_Elapsed_after_Start(timer.read(),Timestr); |
shivanandgowdakr | 1:1894419d5def | 337 | sprintf(Buf," %s ",Timestr); |
shivanandgowdakr | 1:1894419d5def | 338 | Display_LCD(0,1,Buf); |
shivanandgowdakr | 1:1894419d5def | 339 | memset(Buf,'\0',16); |
shivanandgowdakr | 0:194ff03a2e6a | 340 | GreenLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 341 | YellowLight=0; |
shivanandgowdakr | 0:194ff03a2e6a | 342 | RedLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 343 | wait(0.1); |
shivanandgowdakr | 0:194ff03a2e6a | 344 | printf(" Read Time %f\r\n",timer.read()); |
shivanandgowdakr | 0:194ff03a2e6a | 345 | } |
shivanandgowdakr | 0:194ff03a2e6a | 346 | |
shivanandgowdakr | 1:1894419d5def | 347 | else if( timer.read()>Y_time && timer.read()<=R_time ) { |
shivanandgowdakr | 1:1894419d5def | 348 | Display_LCD(0,0," Red Light "); |
shivanandgowdakr | 1:1894419d5def | 349 | Get_Time_Elapsed_after_Start(timer.read(),Timestr); |
shivanandgowdakr | 1:1894419d5def | 350 | // Display_LCD(0,1,Timestr); |
shivanandgowdakr | 1:1894419d5def | 351 | sprintf(Buf," %s ",Timestr); |
shivanandgowdakr | 1:1894419d5def | 352 | Display_LCD(0,1,Buf); |
shivanandgowdakr | 1:1894419d5def | 353 | memset(Buf,'\0',16); |
shivanandgowdakr | 0:194ff03a2e6a | 354 | GreenLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 355 | YellowLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 356 | RedLight=0; |
shivanandgowdakr | 0:194ff03a2e6a | 357 | timerred.start(); |
shivanandgowdakr | 1:1894419d5def | 358 | |
shivanandgowdakr | 1:1894419d5def | 359 | |
shivanandgowdakr | 1:1894419d5def | 360 | printf(" Read Time %f\r\n",timer.read()); |
shivanandgowdakr | 1:1894419d5def | 361 | } |
shivanandgowdakr | 1:1894419d5def | 362 | else if( timer.read()>R_time ) |
shivanandgowdakr | 1:1894419d5def | 363 | { |
shivanandgowdakr | 1:1894419d5def | 364 | GreenLight=1; |
shivanandgowdakr | 1:1894419d5def | 365 | YellowLight=1; |
shivanandgowdakr | 1:1894419d5def | 366 | RedLight=1; |
shivanandgowdakr | 1:1894419d5def | 367 | timeElapsed=timer.read(); |
shivanandgowdakr | 1:1894419d5def | 368 | timer.stop(); |
shivanandgowdakr | 1:1894419d5def | 369 | printf("Total Time = %f\r\n",timeElapsed); |
shivanandgowdakr | 1:1894419d5def | 370 | |
shivanandgowdakr | 1:1894419d5def | 371 | CalculateTimeElapsed(timeElapsed,buff); |
shivanandgowdakr | 1:1894419d5def | 372 | |
shivanandgowdakr | 1:1894419d5def | 373 | sprintf(Buffer,"Total Time %s",buff); |
shivanandgowdakr | 1:1894419d5def | 374 | |
shivanandgowdakr | 1:1894419d5def | 375 | Display_LCD(0,0,Buffer); |
shivanandgowdakr | 1:1894419d5def | 376 | memset(Buffer,'\0',17); |
shivanandgowdakr | 1:1894419d5def | 377 | timeElapsed=timerred.read(); |
shivanandgowdakr | 1:1894419d5def | 378 | timerred.stop(); |
shivanandgowdakr | 1:1894419d5def | 379 | CalculateTimeElapsed(timeElapsed,buff); |
shivanandgowdakr | 1:1894419d5def | 380 | memset(Buffer,'\0',17); |
shivanandgowdakr | 1:1894419d5def | 381 | sprintf(Buffer,"Tim af Red %s",buff); |
shivanandgowdakr | 1:1894419d5def | 382 | Display_LCD(0,1,Buffer); |
shivanandgowdakr | 1:1894419d5def | 383 | memset(Buffer,'\0',17); |
shivanandgowdakr | 1:1894419d5def | 384 | |
shivanandgowdakr | 1:1894419d5def | 385 | StartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 386 | StopButtonPressed=1; |
shivanandgowdakr | 1:1894419d5def | 387 | ReStartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 388 | |
shivanandgowdakr | 1:1894419d5def | 389 | |
shivanandgowdakr | 1:1894419d5def | 390 | } |
shivanandgowdakr | 1:1894419d5def | 391 | |
shivanandgowdakr | 0:194ff03a2e6a | 392 | //else if(timer.read()>R_time) { |
shivanandgowdakr | 0:194ff03a2e6a | 393 | // Display_LCD(0,0,"Time Lmt Excded "); |
shivanandgowdakr | 0:194ff03a2e6a | 394 | // GreenLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 395 | // YellowLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 396 | // RedLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 397 | // wait(0.2); |
shivanandgowdakr | 1:1894419d5def | 398 | // |
shivanandgowdakr | 0:194ff03a2e6a | 399 | // |
shivanandgowdakr | 0:194ff03a2e6a | 400 | // } |
shivanandgowdakr | 0:194ff03a2e6a | 401 | |
shivanandgowdakr | 0:194ff03a2e6a | 402 | } |
shivanandgowdakr | 0:194ff03a2e6a | 403 | // timeElapsed=timer.read(); |
shivanandgowdakr | 0:194ff03a2e6a | 404 | // CalculateTimeElapsed(timeElapsed,buff); |
shivanandgowdakr | 0:194ff03a2e6a | 405 | if(StartButtonPressed==0 && StopButtonPressed==1 && ReStartButtonPressed==0 ) { |
shivanandgowdakr | 0:194ff03a2e6a | 406 | timeElapsed=timer.read(); |
shivanandgowdakr | 0:194ff03a2e6a | 407 | timer.stop(); |
shivanandgowdakr | 1:1894419d5def | 408 | |
shivanandgowdakr | 0:194ff03a2e6a | 409 | printf("Total Time = %f\r\n",timeElapsed); |
shivanandgowdakr | 1:1894419d5def | 410 | |
shivanandgowdakr | 0:194ff03a2e6a | 411 | CalculateTimeElapsed(timeElapsed,buff); |
shivanandgowdakr | 1:1894419d5def | 412 | |
shivanandgowdakr | 0:194ff03a2e6a | 413 | sprintf(Buffer,"Total Time %s",buff); |
shivanandgowdakr | 1:1894419d5def | 414 | |
shivanandgowdakr | 0:194ff03a2e6a | 415 | Display_LCD(0,0,Buffer); |
shivanandgowdakr | 0:194ff03a2e6a | 416 | memset(Buffer,'\0',17); |
shivanandgowdakr | 0:194ff03a2e6a | 417 | timeElapsed=timerred.read(); |
shivanandgowdakr | 0:194ff03a2e6a | 418 | timerred.stop(); |
shivanandgowdakr | 1:1894419d5def | 419 | CalculateTimeElapsed(timeElapsed,buff); |
shivanandgowdakr | 0:194ff03a2e6a | 420 | memset(Buffer,'\0',17); |
shivanandgowdakr | 0:194ff03a2e6a | 421 | sprintf(Buffer,"Tim af Red %s",buff); |
shivanandgowdakr | 0:194ff03a2e6a | 422 | Display_LCD(0,1,Buffer); |
shivanandgowdakr | 0:194ff03a2e6a | 423 | memset(Buffer,'\0',17); |
shivanandgowdakr | 1:1894419d5def | 424 | |
shivanandgowdakr | 0:194ff03a2e6a | 425 | wait(0.1); |
shivanandgowdakr | 1:1894419d5def | 426 | /******************************************* |
shivanandgowdakr | 1:1894419d5def | 427 | * If you want to use Reset Button Comment these lines |
shivanandgowdakr | 1:1894419d5def | 428 | * Presently it is with auto reset |
shivanandgowdakr | 1:1894419d5def | 429 | ******************************************/ |
shivanandgowdakr | 1:1894419d5def | 430 | ReStartButtonPressed=1; |
shivanandgowdakr | 1:1894419d5def | 431 | StartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 432 | StopButtonPressed=0; |
shivanandgowdakr | 0:194ff03a2e6a | 433 | // /******************************************/ |
shivanandgowdakr | 0:194ff03a2e6a | 434 | } |
shivanandgowdakr | 0:194ff03a2e6a | 435 | if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==1 ) { |
shivanandgowdakr | 0:194ff03a2e6a | 436 | |
shivanandgowdakr | 1:1894419d5def | 437 | // Display_LCD(0,0,"Done Resetting"); |
shivanandgowdakr | 0:194ff03a2e6a | 438 | StartButtonPressed=0; |
shivanandgowdakr | 0:194ff03a2e6a | 439 | StopButtonPressed=0; |
shivanandgowdakr | 0:194ff03a2e6a | 440 | ReStartButtonPressed=0; |
shivanandgowdakr | 1:1894419d5def | 441 | // Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 442 | |
shivanandgowdakr | 0:194ff03a2e6a | 443 | } |
shivanandgowdakr | 1:1894419d5def | 444 | if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==0 ) { |
shivanandgowdakr | 0:194ff03a2e6a | 445 | GreenLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 446 | YellowLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 447 | RedLight=1; |
shivanandgowdakr | 0:194ff03a2e6a | 448 | timer.reset(); |
shivanandgowdakr | 0:194ff03a2e6a | 449 | timerred.reset(); |
shivanandgowdakr | 0:194ff03a2e6a | 450 | // printf(" Last Line\r\n"); |
shivanandgowdakr | 1:1894419d5def | 451 | // Display_LCD(0,0,"Select Mode Or"); |
shivanandgowdakr | 1:1894419d5def | 452 | // Display_LCD(0,1,"Press Start "); |
shivanandgowdakr | 1:1894419d5def | 453 | |
shivanandgowdakr | 0:194ff03a2e6a | 454 | lcdflag=true; |
shivanandgowdakr | 0:194ff03a2e6a | 455 | } |
shivanandgowdakr | 0:194ff03a2e6a | 456 | |
shivanandgowdakr | 0:194ff03a2e6a | 457 | } |
shivanandgowdakr | 0:194ff03a2e6a | 458 | } |
shivanandgowdakr | 0:194ff03a2e6a | 459 | |
shivanandgowdakr | 0:194ff03a2e6a | 460 | |
shivanandgowdakr | 0:194ff03a2e6a | 461 | void ReadTimes() |
shivanandgowdakr | 0:194ff03a2e6a | 462 | { |
shivanandgowdakr | 0:194ff03a2e6a | 463 | char rkey; |
shivanandgowdakr | 0:194ff03a2e6a | 464 | char Str[5]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 465 | char Star[5]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 466 | char text[5]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 467 | char GreenTime[6]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 468 | char YellowTime[6]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 469 | char RedTime[6]= {'\0'}; |
shivanandgowdakr | 0:194ff03a2e6a | 470 | bool Staus=false; |
shivanandgowdakr | 1:1894419d5def | 471 | rkey=keypad.waitForKey(); |
shivanandgowdakr | 1:1894419d5def | 472 | |
shivanandgowdakr | 1:1894419d5def | 473 | switch(rkey) { |
shivanandgowdakr | 1:1894419d5def | 474 | |
shivanandgowdakr | 1:1894419d5def | 475 | case '1': |
shivanandgowdakr | 1:1894419d5def | 476 | |
shivanandgowdakr | 1:1894419d5def | 477 | { |
shivanandgowdakr | 1:1894419d5def | 478 | Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 479 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 480 | |
shivanandgowdakr | 1:1894419d5def | 481 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 482 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 483 | SaveTimes(1,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 484 | printf(" Times %f %f %f \r\n",GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 485 | } |
shivanandgowdakr | 1:1894419d5def | 486 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 487 | } |
shivanandgowdakr | 1:1894419d5def | 488 | break; |
shivanandgowdakr | 1:1894419d5def | 489 | case '2': { |
shivanandgowdakr | 1:1894419d5def | 490 | Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 491 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 492 | |
shivanandgowdakr | 1:1894419d5def | 493 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 494 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 495 | printf(" Times %f %f %f \r\n",GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 496 | SaveTimes(2,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 497 | } |
shivanandgowdakr | 1:1894419d5def | 498 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 499 | } |
shivanandgowdakr | 1:1894419d5def | 500 | break; |
shivanandgowdakr | 1:1894419d5def | 501 | case '3': { |
shivanandgowdakr | 1:1894419d5def | 502 | Staus=ReadAllTimesofEachMode(3,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 503 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 504 | |
shivanandgowdakr | 1:1894419d5def | 505 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 506 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 507 | SaveTimes(3,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 508 | } |
shivanandgowdakr | 1:1894419d5def | 509 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 510 | } |
shivanandgowdakr | 0:194ff03a2e6a | 511 | |
shivanandgowdakr | 1:1894419d5def | 512 | break; |
shivanandgowdakr | 1:1894419d5def | 513 | case '4': { |
shivanandgowdakr | 1:1894419d5def | 514 | Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 515 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 516 | |
shivanandgowdakr | 1:1894419d5def | 517 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 518 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 519 | SaveTimes(4,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 520 | } |
shivanandgowdakr | 1:1894419d5def | 521 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 522 | } |
shivanandgowdakr | 1:1894419d5def | 523 | |
shivanandgowdakr | 1:1894419d5def | 524 | break; |
shivanandgowdakr | 1:1894419d5def | 525 | case '5': { |
shivanandgowdakr | 1:1894419d5def | 526 | Staus=ReadAllTimesofEachMode(5,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 527 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 528 | |
shivanandgowdakr | 1:1894419d5def | 529 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 530 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 531 | SaveTimes(5,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 532 | } |
shivanandgowdakr | 1:1894419d5def | 533 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 534 | } |
shivanandgowdakr | 1:1894419d5def | 535 | |
shivanandgowdakr | 1:1894419d5def | 536 | break; |
shivanandgowdakr | 1:1894419d5def | 537 | |
shivanandgowdakr | 1:1894419d5def | 538 | case '6': { |
shivanandgowdakr | 1:1894419d5def | 539 | Staus=ReadAllTimesofEachMode(6,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 540 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 541 | |
shivanandgowdakr | 1:1894419d5def | 542 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 543 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 544 | SaveTimes(6,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 545 | } |
shivanandgowdakr | 1:1894419d5def | 546 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 547 | } |
shivanandgowdakr | 1:1894419d5def | 548 | |
shivanandgowdakr | 1:1894419d5def | 549 | break; |
shivanandgowdakr | 1:1894419d5def | 550 | default: { |
shivanandgowdakr | 1:1894419d5def | 551 | printf("No Mode\r\n"); |
shivanandgowdakr | 1:1894419d5def | 552 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 553 | Display_LCD(0,0," InValid Mode "); |
shivanandgowdakr | 1:1894419d5def | 554 | } |
shivanandgowdakr | 1:1894419d5def | 555 | } |
shivanandgowdakr | 1:1894419d5def | 556 | |
shivanandgowdakr | 1:1894419d5def | 557 | |
shivanandgowdakr | 0:194ff03a2e6a | 558 | } |
shivanandgowdakr | 0:194ff03a2e6a | 559 | |
shivanandgowdakr | 1:1894419d5def | 560 | bool ReadEachLightTime(uint32_t mode,char *mmss,char *lightTimeName) |
shivanandgowdakr | 0:194ff03a2e6a | 561 | { |
shivanandgowdakr | 0:194ff03a2e6a | 562 | Clear_LCD(); |
shivanandgowdakr | 0:194ff03a2e6a | 563 | char Buffer[17]= {'\0'}; |
shivanandgowdakr | 0:194ff03a2e6a | 564 | char Buffer1[17]="Entr Time Mode:"; |
shivanandgowdakr | 0:194ff03a2e6a | 565 | char Buffer2[17]="Tim MM:SS"; |
shivanandgowdakr | 1:1894419d5def | 566 | |
shivanandgowdakr | 0:194ff03a2e6a | 567 | uint8_t index1=0; |
shivanandgowdakr | 0:194ff03a2e6a | 568 | char key='\0'; |
shivanandgowdakr | 0:194ff03a2e6a | 569 | char str[6]= {'\0'}; |
shivanandgowdakr | 0:194ff03a2e6a | 570 | Clear_LCD(); |
shivanandgowdakr | 0:194ff03a2e6a | 571 | sprintf(Buffer,"%s%d",Buffer1,mode); |
shivanandgowdakr | 0:194ff03a2e6a | 572 | Display_LCD(0,0,Buffer); |
shivanandgowdakr | 0:194ff03a2e6a | 573 | memset(Buffer,'\0',16); |
shivanandgowdakr | 0:194ff03a2e6a | 574 | sprintf(Buffer,"%s %s",lightTimeName,Buffer2); |
shivanandgowdakr | 0:194ff03a2e6a | 575 | Display_LCD(0,1,Buffer); |
shivanandgowdakr | 1:1894419d5def | 576 | |
shivanandgowdakr | 1:1894419d5def | 577 | wait(3); |
shivanandgowdakr | 0:194ff03a2e6a | 578 | Clear_LCD(); |
shivanandgowdakr | 0:194ff03a2e6a | 579 | Display_LCD(0,0,"Press # Set "); |
shivanandgowdakr | 0:194ff03a2e6a | 580 | Display_LCD(0,1,"Prss * to Exit "); |
shivanandgowdakr | 0:194ff03a2e6a | 581 | |
shivanandgowdakr | 0:194ff03a2e6a | 582 | key=keypad.waitForKey(); |
shivanandgowdakr | 0:194ff03a2e6a | 583 | if(key=='#') { |
shivanandgowdakr | 0:194ff03a2e6a | 584 | Clear_LCD(); |
shivanandgowdakr | 0:194ff03a2e6a | 585 | Display_LCD(0,0,"MM:SS "); |
shivanandgowdakr | 1:1894419d5def | 586 | Display_LCD(0,1,"MM:SS "); |
shivanandgowdakr | 0:194ff03a2e6a | 587 | index1=0; |
shivanandgowdakr | 0:194ff03a2e6a | 588 | while(index1==0 ||(index1<=4 && key !='#' && key!='*')) { |
shivanandgowdakr | 0:194ff03a2e6a | 589 | key=keypad.waitForKey(); |
shivanandgowdakr | 0:194ff03a2e6a | 590 | str[index1]=key; |
shivanandgowdakr | 0:194ff03a2e6a | 591 | if(index1==2) { |
shivanandgowdakr | 0:194ff03a2e6a | 592 | str[index1]=':'; |
shivanandgowdakr | 0:194ff03a2e6a | 593 | index1++; |
shivanandgowdakr | 0:194ff03a2e6a | 594 | str[index1]=key; |
shivanandgowdakr | 0:194ff03a2e6a | 595 | } |
shivanandgowdakr | 0:194ff03a2e6a | 596 | index1++; |
shivanandgowdakr | 0:194ff03a2e6a | 597 | Display_LCD(0,0,"MM:SS "); |
shivanandgowdakr | 0:194ff03a2e6a | 598 | Display_LCD(0,1,"MM:SS "); |
shivanandgowdakr | 0:194ff03a2e6a | 599 | Display_LCD(0,1,str); |
shivanandgowdakr | 0:194ff03a2e6a | 600 | } |
shivanandgowdakr | 0:194ff03a2e6a | 601 | Clear_LCD(); |
shivanandgowdakr | 0:194ff03a2e6a | 602 | Display_LCD(0,0,"Saving Mode "); |
shivanandgowdakr | 0:194ff03a2e6a | 603 | Display_LCD(0,1,str); |
shivanandgowdakr | 0:194ff03a2e6a | 604 | memcpy(mmss,str,5); |
shivanandgowdakr | 0:194ff03a2e6a | 605 | mmss[6]='\0'; |
shivanandgowdakr | 0:194ff03a2e6a | 606 | wait(1); |
shivanandgowdakr | 0:194ff03a2e6a | 607 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 608 | |
shivanandgowdakr | 0:194ff03a2e6a | 609 | return true; |
shivanandgowdakr | 1:1894419d5def | 610 | } else if(key=='*') { |
shivanandgowdakr | 0:194ff03a2e6a | 611 | Display_LCD(0,0,"Mode Not Set "); |
shivanandgowdakr | 0:194ff03a2e6a | 612 | Display_LCD(0,1,"Retains PrevMode"); |
shivanandgowdakr | 1:1894419d5def | 613 | wait (2); |
shivanandgowdakr | 1:1894419d5def | 614 | Clear_LCD(); |
shivanandgowdakr | 0:194ff03a2e6a | 615 | return false; |
shivanandgowdakr | 0:194ff03a2e6a | 616 | } |
shivanandgowdakr | 0:194ff03a2e6a | 617 | } |
shivanandgowdakr | 0:194ff03a2e6a | 618 | |
shivanandgowdakr | 0:194ff03a2e6a | 619 | |
shivanandgowdakr | 1:1894419d5def | 620 | bool ReadAllTimesofEachMode(uint32_t MODE,char *Greentime,char *Yellowtime,char *Redtime) |
shivanandgowdakr | 0:194ff03a2e6a | 621 | { |
shivanandgowdakr | 0:194ff03a2e6a | 622 | bool Greenflag=false,Yellowflag=false,Redflag=false; |
shivanandgowdakr | 0:194ff03a2e6a | 623 | Greenflag=ReadEachLightTime(MODE,Greentime,"Green"); |
shivanandgowdakr | 1:1894419d5def | 624 | |
shivanandgowdakr | 0:194ff03a2e6a | 625 | if(Greenflag==true) { |
shivanandgowdakr | 1:1894419d5def | 626 | |
shivanandgowdakr | 0:194ff03a2e6a | 627 | Yellowflag=ReadEachLightTime(MODE,Yellowtime,"Yellow"); |
shivanandgowdakr | 0:194ff03a2e6a | 628 | if(Yellowflag==true) { |
shivanandgowdakr | 1:1894419d5def | 629 | |
shivanandgowdakr | 0:194ff03a2e6a | 630 | Redflag=ReadEachLightTime(MODE,Redtime,"Red"); |
shivanandgowdakr | 0:194ff03a2e6a | 631 | if(Redflag==true) { |
shivanandgowdakr | 0:194ff03a2e6a | 632 | return true; |
shivanandgowdakr | 0:194ff03a2e6a | 633 | } else { |
shivanandgowdakr | 0:194ff03a2e6a | 634 | return false; |
shivanandgowdakr | 0:194ff03a2e6a | 635 | } |
shivanandgowdakr | 0:194ff03a2e6a | 636 | } else { |
shivanandgowdakr | 0:194ff03a2e6a | 637 | return false; |
shivanandgowdakr | 0:194ff03a2e6a | 638 | } |
shivanandgowdakr | 0:194ff03a2e6a | 639 | |
shivanandgowdakr | 0:194ff03a2e6a | 640 | } else |
shivanandgowdakr | 0:194ff03a2e6a | 641 | return false; |
shivanandgowdakr | 0:194ff03a2e6a | 642 | } |
shivanandgowdakr | 0:194ff03a2e6a | 643 | |
shivanandgowdakr | 0:194ff03a2e6a | 644 | |
shivanandgowdakr | 0:194ff03a2e6a | 645 | void ExtractTimesinSecs(char *greentime,char *yellowtime,char *redtime,float *grntim,float *yeltim,float *redtim) |
shivanandgowdakr | 0:194ff03a2e6a | 646 | { |
shivanandgowdakr | 0:194ff03a2e6a | 647 | int mins,secs; |
shivanandgowdakr | 0:194ff03a2e6a | 648 | if( greentime[2]==':') { |
shivanandgowdakr | 0:194ff03a2e6a | 649 | mins=(( greentime[0]-0x30)*10)+(greentime[1]-0x30); |
shivanandgowdakr | 0:194ff03a2e6a | 650 | secs=((greentime[3]-0x30)*10)+(greentime[4]-0x30); |
shivanandgowdakr | 0:194ff03a2e6a | 651 | } |
shivanandgowdakr | 0:194ff03a2e6a | 652 | *grntim=mins*60+secs; |
shivanandgowdakr | 0:194ff03a2e6a | 653 | if( yellowtime[2]==':') { |
shivanandgowdakr | 0:194ff03a2e6a | 654 | mins=(( yellowtime[0]-0x30)*10)+(yellowtime[1]-0x30); |
shivanandgowdakr | 0:194ff03a2e6a | 655 | secs=((yellowtime[3]-0x30)*10)+(yellowtime[4]-0x30); |
shivanandgowdakr | 0:194ff03a2e6a | 656 | } |
shivanandgowdakr | 0:194ff03a2e6a | 657 | *yeltim=mins*60+secs; |
shivanandgowdakr | 0:194ff03a2e6a | 658 | if( redtime[2]==':') { |
shivanandgowdakr | 0:194ff03a2e6a | 659 | mins=(( redtime[0]-0x30)*10)+(redtime[1]-0x30); |
shivanandgowdakr | 0:194ff03a2e6a | 660 | secs=((redtime[3]-0x30)*10)+(redtime[4]-0x30); |
shivanandgowdakr | 0:194ff03a2e6a | 661 | } |
shivanandgowdakr | 0:194ff03a2e6a | 662 | *redtim=mins*60+secs; |
shivanandgowdakr | 0:194ff03a2e6a | 663 | } |
shivanandgowdakr | 0:194ff03a2e6a | 664 | |
shivanandgowdakr | 1:1894419d5def | 665 | void SaveTimes(uint32_t Mode,float GreenTime,float YellowTime,float RedTime) |
shivanandgowdakr | 0:194ff03a2e6a | 666 | { |
shivanandgowdakr | 0:194ff03a2e6a | 667 | bool flag=false; |
shivanandgowdakr | 0:194ff03a2e6a | 668 | flag=WriteCorresspondingTimes(Mode, GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 669 | |
shivanandgowdakr | 0:194ff03a2e6a | 670 | if(flag==true) { |
shivanandgowdakr | 0:194ff03a2e6a | 671 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 672 | Display_LCD(0,0," Mode Save "); |
shivanandgowdakr | 1:1894419d5def | 673 | Display_LCD(0,1," Success "); |
shivanandgowdakr | 0:194ff03a2e6a | 674 | wait(1); |
shivanandgowdakr | 0:194ff03a2e6a | 675 | } else { |
shivanandgowdakr | 0:194ff03a2e6a | 676 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 677 | Display_LCD(0,0," Mode Save "); |
shivanandgowdakr | 1:1894419d5def | 678 | Display_LCD(0,1," Failure "); |
shivanandgowdakr | 1:1894419d5def | 679 | |
shivanandgowdakr | 0:194ff03a2e6a | 680 | wait(1); |
shivanandgowdakr | 0:194ff03a2e6a | 681 | } |
shivanandgowdakr | 1:1894419d5def | 682 | |
shivanandgowdakr | 0:194ff03a2e6a | 683 | } |
shivanandgowdakr | 0:194ff03a2e6a | 684 | |
shivanandgowdakr | 0:194ff03a2e6a | 685 | void CalculateTimeElapsed(float TimeElapsed, char *TimeStr) |
shivanandgowdakr | 0:194ff03a2e6a | 686 | { |
shivanandgowdakr | 0:194ff03a2e6a | 687 | memset(TimeStr,'\0',sizeof TimeStr); |
shivanandgowdakr | 0:194ff03a2e6a | 688 | int mins=(int)TimeElapsed/60; |
shivanandgowdakr | 0:194ff03a2e6a | 689 | int secs=(int)TimeElapsed%60; |
shivanandgowdakr | 0:194ff03a2e6a | 690 | sprintf(TimeStr,"%2d:%02d",mins,secs); |
shivanandgowdakr | 0:194ff03a2e6a | 691 | } |
shivanandgowdakr | 0:194ff03a2e6a | 692 | |
shivanandgowdakr | 0:194ff03a2e6a | 693 | |
shivanandgowdakr | 1:1894419d5def | 694 | bool PasswordAcceptance() |
shivanandgowdakr | 1:1894419d5def | 695 | { |
shivanandgowdakr | 1:1894419d5def | 696 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 697 | Display_LCD(0,0,"Enter Password "); |
shivanandgowdakr | 1:1894419d5def | 698 | char PasswordStr[5]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 699 | char temp='\0'; |
shivanandgowdakr | 1:1894419d5def | 700 | temp=keypad.waitForKey(); |
shivanandgowdakr | 1:1894419d5def | 701 | PasswordStr[0]=temp; |
shivanandgowdakr | 1:1894419d5def | 702 | Display_LCD(0,1,PasswordStr); |
shivanandgowdakr | 1:1894419d5def | 703 | temp=keypad.waitForKey(); |
shivanandgowdakr | 1:1894419d5def | 704 | PasswordStr[1]=temp; |
shivanandgowdakr | 1:1894419d5def | 705 | Display_LCD(0,1,PasswordStr); |
shivanandgowdakr | 1:1894419d5def | 706 | temp=keypad.waitForKey(); |
shivanandgowdakr | 1:1894419d5def | 707 | PasswordStr[2]=temp; |
shivanandgowdakr | 1:1894419d5def | 708 | Display_LCD(0,1,PasswordStr); |
shivanandgowdakr | 1:1894419d5def | 709 | temp=keypad.waitForKey(); |
shivanandgowdakr | 1:1894419d5def | 710 | PasswordStr[3]=temp; |
shivanandgowdakr | 1:1894419d5def | 711 | Display_LCD(0,1,PasswordStr); |
shivanandgowdakr | 1:1894419d5def | 712 | printf("Password Str %s\r\n",PasswordStr); |
shivanandgowdakr | 1:1894419d5def | 713 | |
shivanandgowdakr | 1:1894419d5def | 714 | if(PasswordStr[0]=='1' && PasswordStr[1] =='1' && PasswordStr[2]=='1' && PasswordStr[3]=='1') { |
shivanandgowdakr | 1:1894419d5def | 715 | Display_LCD(0,0,"Accepted "); |
shivanandgowdakr | 1:1894419d5def | 716 | printf("Accepted\r\n"); |
shivanandgowdakr | 1:1894419d5def | 717 | return true; |
shivanandgowdakr | 1:1894419d5def | 718 | } |
shivanandgowdakr | 1:1894419d5def | 719 | return false; |
shivanandgowdakr | 1:1894419d5def | 720 | } |
shivanandgowdakr | 1:1894419d5def | 721 | |
shivanandgowdakr | 1:1894419d5def | 722 | |
shivanandgowdakr | 1:1894419d5def | 723 | int ModeSelectTochange() |
shivanandgowdakr | 1:1894419d5def | 724 | { |
shivanandgowdakr | 1:1894419d5def | 725 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 726 | Display_LCD(0,0,"Select Mode 1-6 "); |
shivanandgowdakr | 1:1894419d5def | 727 | char str[2]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 728 | char temp='\0'; |
shivanandgowdakr | 1:1894419d5def | 729 | temp=keypad.waitForKey(); |
shivanandgowdakr | 1:1894419d5def | 730 | if(temp>=0x31 && temp<=0x36) { |
shivanandgowdakr | 1:1894419d5def | 731 | Display_LCD(0,1,"Mode Is: "); |
shivanandgowdakr | 1:1894419d5def | 732 | str[0]=temp; |
shivanandgowdakr | 1:1894419d5def | 733 | Display_LCD(9,1,str); |
shivanandgowdakr | 1:1894419d5def | 734 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 735 | return (temp-0x30); |
shivanandgowdakr | 1:1894419d5def | 736 | } |
shivanandgowdakr | 1:1894419d5def | 737 | Display_LCD(0,0,"Invalid Mode"); |
shivanandgowdakr | 1:1894419d5def | 738 | return -1; |
shivanandgowdakr | 1:1894419d5def | 739 | |
shivanandgowdakr | 1:1894419d5def | 740 | } |
shivanandgowdakr | 1:1894419d5def | 741 | |
shivanandgowdakr | 1:1894419d5def | 742 | void fn(char rkey) |
shivanandgowdakr | 1:1894419d5def | 743 | { |
shivanandgowdakr | 1:1894419d5def | 744 | char GreenTime[10]= {'\0'},YellowTime[10]= {'\0'},RedTime[10]= {'\0'}; |
shivanandgowdakr | 1:1894419d5def | 745 | bool Staus=false; |
shivanandgowdakr | 1:1894419d5def | 746 | switch(rkey) |
shivanandgowdakr | 1:1894419d5def | 747 | |
shivanandgowdakr | 1:1894419d5def | 748 | { |
shivanandgowdakr | 1:1894419d5def | 749 | case '1': |
shivanandgowdakr | 1:1894419d5def | 750 | |
shivanandgowdakr | 1:1894419d5def | 751 | { |
shivanandgowdakr | 1:1894419d5def | 752 | Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 753 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 754 | |
shivanandgowdakr | 1:1894419d5def | 755 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 756 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 757 | SaveTimes(1,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 758 | Display_LCD(0,0,"Done Saving "); |
shivanandgowdakr | 1:1894419d5def | 759 | Display_LCD(0,1,"Mode Saved"); |
shivanandgowdakr | 1:1894419d5def | 760 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 761 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 762 | } |
shivanandgowdakr | 1:1894419d5def | 763 | Staus=false; |
shivanandgowdakr | 0:194ff03a2e6a | 764 | } |
shivanandgowdakr | 1:1894419d5def | 765 | break; |
shivanandgowdakr | 1:1894419d5def | 766 | case '2': { |
shivanandgowdakr | 1:1894419d5def | 767 | Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 768 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 769 | |
shivanandgowdakr | 1:1894419d5def | 770 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 771 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 772 | SaveTimes(2,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 773 | Display_LCD(0,0,"Done Saving "); |
shivanandgowdakr | 1:1894419d5def | 774 | Display_LCD(0,1,"Mode Saved"); |
shivanandgowdakr | 1:1894419d5def | 775 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 776 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 777 | } |
shivanandgowdakr | 1:1894419d5def | 778 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 779 | } |
shivanandgowdakr | 1:1894419d5def | 780 | break; |
shivanandgowdakr | 1:1894419d5def | 781 | case '3': { |
shivanandgowdakr | 1:1894419d5def | 782 | Staus=ReadAllTimesofEachMode(3,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 783 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 784 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 785 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 0:194ff03a2e6a | 786 | |
shivanandgowdakr | 1:1894419d5def | 787 | printf("GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME %s %s %s : %f %f %f \r\n ",GreenTime,YellowTime,RedTime,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 788 | SaveTimes(3,GTIME,YTIME,RTIME); |
shivanandgowdakr | 0:194ff03a2e6a | 789 | |
shivanandgowdakr | 1:1894419d5def | 790 | Display_LCD(0,0,"Done Saving "); |
shivanandgowdakr | 1:1894419d5def | 791 | Display_LCD(0,1,"Mode Saved"); |
shivanandgowdakr | 1:1894419d5def | 792 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 793 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 794 | } |
shivanandgowdakr | 1:1894419d5def | 795 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 796 | } |
shivanandgowdakr | 1:1894419d5def | 797 | |
shivanandgowdakr | 1:1894419d5def | 798 | break; |
shivanandgowdakr | 1:1894419d5def | 799 | case '4': { |
shivanandgowdakr | 1:1894419d5def | 800 | Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 801 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 802 | |
shivanandgowdakr | 1:1894419d5def | 803 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 804 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 805 | SaveTimes(4,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 806 | Display_LCD(0,0,"Done Saving "); |
shivanandgowdakr | 1:1894419d5def | 807 | Display_LCD(0,1,"Mode Saved"); |
shivanandgowdakr | 1:1894419d5def | 808 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 809 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 810 | } |
shivanandgowdakr | 1:1894419d5def | 811 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 812 | } |
shivanandgowdakr | 1:1894419d5def | 813 | |
shivanandgowdakr | 1:1894419d5def | 814 | break; |
shivanandgowdakr | 1:1894419d5def | 815 | case '5': { |
shivanandgowdakr | 1:1894419d5def | 816 | Staus=ReadAllTimesofEachMode(5,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 817 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 818 | |
shivanandgowdakr | 1:1894419d5def | 819 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 820 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 0:194ff03a2e6a | 821 | // SaveTimes(5,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 822 | Display_LCD(0,0,"Done Saving "); |
shivanandgowdakr | 1:1894419d5def | 823 | Display_LCD(0,1,"Mode Saved"); |
shivanandgowdakr | 1:1894419d5def | 824 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 825 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 826 | } |
shivanandgowdakr | 1:1894419d5def | 827 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 828 | } |
shivanandgowdakr | 1:1894419d5def | 829 | |
shivanandgowdakr | 1:1894419d5def | 830 | break; |
shivanandgowdakr | 1:1894419d5def | 831 | |
shivanandgowdakr | 1:1894419d5def | 832 | case '6': { |
shivanandgowdakr | 1:1894419d5def | 833 | Staus=ReadAllTimesofEachMode(6,GreenTime,YellowTime,RedTime); |
shivanandgowdakr | 1:1894419d5def | 834 | if(Staus==true) { |
shivanandgowdakr | 1:1894419d5def | 835 | float GTIME=0,YTIME=0,RTIME=0; |
shivanandgowdakr | 1:1894419d5def | 836 | ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME); |
shivanandgowdakr | 1:1894419d5def | 837 | SaveTimes(6,GTIME,YTIME,RTIME); |
shivanandgowdakr | 1:1894419d5def | 838 | Display_LCD(0,0,"Done Saving "); |
shivanandgowdakr | 1:1894419d5def | 839 | Display_LCD(0,1,"Mode Saved"); |
shivanandgowdakr | 1:1894419d5def | 840 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 841 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 842 | } |
shivanandgowdakr | 1:1894419d5def | 843 | Staus=false; |
shivanandgowdakr | 1:1894419d5def | 844 | } |
shivanandgowdakr | 1:1894419d5def | 845 | break; |
shivanandgowdakr | 1:1894419d5def | 846 | default: |
shivanandgowdakr | 1:1894419d5def | 847 | Display_LCD(0,0,"No Mode saved"); |
shivanandgowdakr | 1:1894419d5def | 848 | Display_LCD(0,1,"Retns Prev Mode"); |
shivanandgowdakr | 1:1894419d5def | 849 | wait(1); |
shivanandgowdakr | 1:1894419d5def | 850 | Clear_LCD(); |
shivanandgowdakr | 1:1894419d5def | 851 | printf("No Mode\r\n"); |
shivanandgowdakr | 1:1894419d5def | 852 | } |
shivanandgowdakr | 1:1894419d5def | 853 | |
shivanandgowdakr | 1:1894419d5def | 854 | } |
shivanandgowdakr | 1:1894419d5def | 855 | |
shivanandgowdakr | 1:1894419d5def | 856 | |
shivanandgowdakr | 1:1894419d5def | 857 | |
shivanandgowdakr | 1:1894419d5def | 858 | |
shivanandgowdakr | 1:1894419d5def | 859 | void Get_Time_Elapsed_after_Start(float timeInSec, char * str) |
shivanandgowdakr | 1:1894419d5def | 860 | { |
shivanandgowdakr | 1:1894419d5def | 861 | memset(str,'\0',6); |
shivanandgowdakr | 1:1894419d5def | 862 | uint8_t min=(int) timeInSec/60; |
shivanandgowdakr | 1:1894419d5def | 863 | uint8_t Secs=(int) timeInSec%60; |
shivanandgowdakr | 1:1894419d5def | 864 | |
shivanandgowdakr | 1:1894419d5def | 865 | if(min<10) |
shivanandgowdakr | 1:1894419d5def | 866 | { |
shivanandgowdakr | 1:1894419d5def | 867 | str[0]=0x30; |
shivanandgowdakr | 1:1894419d5def | 868 | str[1]=min+0x30; |
shivanandgowdakr | 1:1894419d5def | 869 | } |
shivanandgowdakr | 1:1894419d5def | 870 | else if(min>=10) |
shivanandgowdakr | 1:1894419d5def | 871 | { |
shivanandgowdakr | 1:1894419d5def | 872 | str[0]=(min/10)+0x30; |
shivanandgowdakr | 1:1894419d5def | 873 | str[1]=(min%10)+0x30; |
shivanandgowdakr | 1:1894419d5def | 874 | } |
shivanandgowdakr | 1:1894419d5def | 875 | |
shivanandgowdakr | 1:1894419d5def | 876 | str[2]=':'; |
shivanandgowdakr | 1:1894419d5def | 877 | if(Secs<10) |
shivanandgowdakr | 1:1894419d5def | 878 | { |
shivanandgowdakr | 1:1894419d5def | 879 | str[3]=0x30; |
shivanandgowdakr | 1:1894419d5def | 880 | str[4]=Secs+0x30; |
shivanandgowdakr | 1:1894419d5def | 881 | } |
shivanandgowdakr | 1:1894419d5def | 882 | else if(Secs>=10) |
shivanandgowdakr | 1:1894419d5def | 883 | { |
shivanandgowdakr | 1:1894419d5def | 884 | str[3]=(Secs/10)+0x30; |
shivanandgowdakr | 1:1894419d5def | 885 | str[4]=(Secs%10)+0x30; |
shivanandgowdakr | 1:1894419d5def | 886 | } |
shivanandgowdakr | 1:1894419d5def | 887 | str[5]='\0'; |
shivanandgowdakr | 1:1894419d5def | 888 | |
shivanandgowdakr | 1:1894419d5def | 889 | } |