Project

Dependencies:   Hotboards_keypad TextLCD eeprom

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?

UserRevisionLine numberNew 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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 786
shivanandgowdakr 1:1894419d5def 787 printf("GreenTime,YellowTime,RedTime,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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 }