Project

Dependencies:   Hotboards_keypad TextLCD eeprom

Revision:
0:194ff03a2e6a
Child:
1:1894419d5def
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Oct 23 08:12:53 2018 +0000
@@ -0,0 +1,862 @@
+
+
+#include "mbed.h"
+#include "LCDDisplay.h"
+#include "i2ceeprom.h"
+#include "Hotboards_keypad.h"
+#include "Hotboards_keypad.h"
+
+// Defines the keys array with it's respective number of rows & cols,
+// and with the value of each key
+char keys[ 4 ][ 4 ] =
+{
+    { '1' , '2' , '3' , 'A' },
+    { '4' , '5' , '6' , 'B' },
+    { '7' , '8' , '9' , 'C' },
+    { '*' , '0' , '#' , 'D' }
+};
+
+// Defines the pins connected to the rows
+DigitalInOut rowPins[ 4 ] = {D4,D5,D6,D7 };
+// Defines the pins connected to the cols
+DigitalInOut colPins[ 4 ] = { D8,D9,D10,D11};
+     //connect to the column pinouts of the keypad
+
+Keypad keypad( makeKeymap( keys ), rowPins, colPins,4,4);
+
+DigitalIn Mode1(PC_8);
+DigitalIn Mode2(PC_6);
+DigitalIn Mode3(PC_5);
+//DigitalIn Mode4(PC_5);
+//DigitalIn Mode5(PC_8);
+//DigitalIn Mode6(PC_6);
+
+bool PasswordStatus=false;
+int mode=0;
+DigitalIn Start(PA_12);
+DigitalIn Stop(PA_11);
+DigitalIn Reset(PB_12);
+
+
+DigitalOut GreenLight(PB_1);
+DigitalOut YellowLight(PB_15);
+DigitalOut RedLight(PB_14);
+DigitalOut SpareLight(PB_13);
+DigitalOut Buzzer(PC_13);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+
+
+
+uint32_t Current_Mode=0;
+
+float G_time=0;
+float Y_time=0;
+float R_time=0;
+
+uint8_t  StartButtonPressed=0;
+uint8_t  StopButtonPressed=0;
+uint8_t  ReStartButtonPressed=0;
+Timer timer;
+Timer timerred;
+//Thread EveryOneSec;
+
+void keypadEvent(KeypadEvent key);
+bool ReadEachLightTime(int mode,char *mmss);
+bool ReadAllTimesofEachMode(int MODE,char *Greentime,char *Yellowtime,char *Redtime);
+void ExtractTimesinSecs(char *greentime,char *yellowtime,char *redtime,float *grntim,float *yeltim,float *redtim);
+void SaveTimes(int Mode,float GreenTime,float YellowTime,float RedTime);
+void CalculateTimeElapsed(float TimeElapsed, char *TimeStr);
+bool PasswordAcceptance();
+int ModeSelectTochange();
+void fn(char rkey);
+int main()
+{
+  bool start=false;
+  Mode1.mode(PullUp);
+  Mode2.mode(PullUp);
+  Mode3.mode(PullUp);
+//  Mode4.mode(PullUp);
+//  Mode5.mode(PullUp);
+//  Mode6.mode(PullUp);
+  bool lcdflag=true;
+  Start.mode(PullUp);
+  Stop.mode(PullUp);
+  Reset.mode(PullUp);
+   
+    float timeElapsed=0;
+    char buff[6]= {'\0'};
+    char Buffer[17]= {'\0'};
+    Clear_LCD();
+    Display_LCD(0,0,"  Initialising  ");
+    SpareLight=1;
+    GreenLight=1;
+    YellowLight=1;
+    RedLight=1;
+    wait(1);
+    Clear_LCD();
+    //Current_Mode=1;
+     Display_LCD(0,0,"Select Mode Or");
+     Display_LCD(0,1,"Press Start ");
+     G_time=20;
+     Y_time=5;
+     R_time=10;
+    char key;
+    while(1) {
+        
+        
+        key=keypad.getKey();
+        if(key)
+        {
+          if(key=='*')
+          {
+            PasswordStatus=PasswordAcceptance();  
+          }
+          if(PasswordStatus==true)
+          {
+              PasswordStatus=false;
+             mode= ModeSelectTochange();
+             if(mode>=1 &&  mode <=6)
+             {    
+               fn((char)(mode+0x30));
+              mode=0;  
+             }
+             else
+             {
+                Display_LCD(0,0," Invalid Mode   ");
+                Display_LCD(0,1,"Mode b/w 1-6   ");
+               wait(2);
+               
+               Clear_LCD();
+               Display_LCD(0,0,"Select Mode Or");
+               Display_LCD(0,1,"Press Start ");
+                    
+             }
+          }
+          
+         else if(key=='A')
+         {
+           printf("Started \r\n");
+             StartButtonPressed=1;
+             StopButtonPressed=0;
+             ReStartButtonPressed=0;
+             printf("Started ************ %d \r\n",StartButtonPressed);
+             printf("Started ############## %d \r\n",StopButtonPressed);
+             printf("Started 88888888888888%d \r\n",ReStartButtonPressed);
+             timer.start();
+          
+         }
+         
+         else if(key=='B')
+         {
+          StartButtonPressed=0;
+             StopButtonPressed=1;
+             ReStartButtonPressed=0;
+         
+         printf("Stopped \r\n");
+         wait(0.2);
+         }
+         else if(key=='C')
+         {
+             StartButtonPressed=0;
+             StopButtonPressed=0;
+             ReStartButtonPressed=1;
+             timer.stop();
+             printf("Reset \r\n");
+             wait(0.2);
+         }
+         
+         else if(key=='D')
+         {
+          Clear_LCD();
+          Display_LCD(0,0,"Choose Mode");
+          wait(0.5);
+          char tempkey=keypad.waitForKey();
+          if(tempkey>=0x31 && tempkey<=0x36)
+          {
+              char Buff[20]={'\0'};
+              sprintf(Buff,"Current Mode %c",tempkey);
+              Display_LCD(0,1,Buff);
+              Current_Mode=(int)(tempkey-0x30);
+              wait(1);
+              Clear_LCD();
+              
+              }
+              else
+              {
+                  Display_LCD(0,0,"Invld Mod Entrd");
+                  wait(1);
+                  Clear_LCD();
+                  
+              }
+         }
+         else
+         {}
+          
+        }
+
+        
+//        if(Mode1==0)
+ if(Current_Mode==1)
+        {
+            printf("Am here in Mode 1\r\n");
+            G_time=20;
+            Y_time=5;
+            R_time=10;
+         
+//          ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+            printf("Current MOde  1 \r\n");
+//            Display_LCD(0,1,"Mode: 1");
+            Y_time=Y_time+G_time;
+            R_time=R_time+Y_time;
+            wait(0.2);
+         }
+         
+//          if(Mode2==0)
+ if(Current_Mode==2)
+        {
+         
+            G_time=2;
+            Y_time=5;
+            R_time=1;
+            Current_Mode=2;
+//          ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+            printf("Current MOde  2 \r\n");
+//            Display_LCD(0,1,"Mode: 2");
+            Y_time=Y_time+G_time;
+            R_time=R_time+Y_time;
+            wait(0.1);
+         }
+         
+//         if(Mode3==0)
+ if(Current_Mode==3)
+        {
+         
+            G_time=12;
+            Y_time=5;
+            R_time=10;
+            Current_Mode=3;
+//          ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+            printf("Current MOde  3 \r\n");
+//            Display_LCD(0,1,"Mode: 3");
+            Y_time=Y_time+G_time;
+            R_time=R_time+Y_time;
+            wait(0.1);
+         }
+         
+         
+      //  if(Mode4==0)
+      if(Current_Mode==4)
+        {
+         
+            G_time=20;
+            Y_time=5;
+            R_time=10;
+            Current_Mode=4;
+//            ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+            printf("Current MOde  1 \r\n");
+            Display_LCD(0,1,"Mode: 4");
+            Y_time=Y_time+G_time;
+            R_time=R_time+Y_time;
+            wait(0.2);
+         }
+//         
+            if(Current_Mode==5)
+        {
+         
+            G_time=2;
+            Y_time=5;
+            R_time=1;
+            Current_Mode=5;
+            printf("Current MOde  2 \r\n");
+//            ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+           Display_LCD(0,1,"Mode: 5");
+            Y_time=Y_time+G_time;
+            R_time=R_time+Y_time;
+            wait(0.2);
+         }
+//         
+//         if(Mode6==0)
+if(Current_Mode==6)
+        {
+         
+            G_time=12;
+            Y_time=5;
+            R_time=10;
+            Current_Mode=3;
+            printf("Current MOde  3 \r\n");
+//            ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+            Display_LCD(0,1,"Mode: 6");
+            Y_time=Y_time+G_time;
+            R_time=R_time+Y_time;
+            wait(0.2);
+         }
+
+
+         if(Start==0)
+         {
+             printf("Started \r\n");
+             StartButtonPressed=1;
+             StopButtonPressed=0;
+             ReStartButtonPressed=0;
+             printf("Started ************ %d \r\n",StartButtonPressed);
+             printf("Started ############## %d \r\n",StopButtonPressed);
+             printf("Started 88888888888888%d \r\n",ReStartButtonPressed);
+            
+             timer.start();
+                         
+         }
+          if(Stop==0)
+         {
+             StartButtonPressed=0;
+             StopButtonPressed=1;
+             ReStartButtonPressed=0;
+         
+         printf("Stopped \r\n");
+         wait(0.2);
+         
+         }
+         
+         if(Reset==0)
+         {
+             StartButtonPressed=0;
+             StopButtonPressed=0;
+             ReStartButtonPressed=1;
+             timer.stop();
+             printf("Reset \r\n");
+             wait(0.2);
+         }
+         
+         
+        if(StartButtonPressed==1 && StopButtonPressed==0 && ReStartButtonPressed==0 ) { 
+         printf("  Read Time %f\r\n",timer.read()); //while
+            if(timer.read()<=G_time ) {
+               
+                if(lcdflag==true)
+                {
+                  Clear_LCD();
+                  lcdflag=false;
+                 
+                }
+//                timer.start();
+                printf("  Read Time %f\r\n",timer.read());
+                Display_LCD(0,0,"Green Light    ");
+                GreenLight=0;
+                YellowLight=1;
+                RedLight=1;
+                wait(0.1);
+            } else if( timer.read()>G_time && timer.read()<=Y_time ) {
+                Display_LCD(0,0,"Yellow Light   ");
+                
+                GreenLight=1;
+                YellowLight=0;
+                RedLight=1;
+                wait(0.1);
+                printf("  Read Time %f\r\n",timer.read());
+            }
+
+            else if( timer.read()>Y_time  && timer.read()<=R_time )
+            {
+                Display_LCD(0,0,"Red  Light    ");
+                GreenLight=1;
+                YellowLight=1;
+                RedLight=0;
+                timerred.start();
+                wait(0.1);
+                 
+                 printf("  Read Time %f\r\n",timer.read());
+            } 
+            //else if(timer.read()>R_time) {
+//                Display_LCD(0,0,"Time Lmt Excded ");
+//                GreenLight=1;
+//                YellowLight=1;
+//                RedLight=1;
+//                wait(0.2);
+//                
+//
+//            }
+
+        }
+//        timeElapsed=timer.read();
+//        CalculateTimeElapsed(timeElapsed,buff);
+        if(StartButtonPressed==0 && StopButtonPressed==1 && ReStartButtonPressed==0 ) {
+            timeElapsed=timer.read();
+            timer.stop();
+           
+            printf("Total Time  = %f\r\n",timeElapsed);
+            
+            CalculateTimeElapsed(timeElapsed,buff);
+            
+            sprintf(Buffer,"Total Time %s",buff);
+            
+            Display_LCD(0,0,Buffer);
+            memset(Buffer,'\0',17);
+            timeElapsed=timerred.read();
+            timerred.stop();
+             CalculateTimeElapsed(timeElapsed,buff);
+            memset(Buffer,'\0',17);
+            sprintf(Buffer,"Tim af Red %s",buff);
+            Display_LCD(0,1,Buffer);
+            memset(Buffer,'\0',17);
+            
+            wait(0.1);
+            
+           // /******************************************/
+//               ReStartButtonPressed=1;
+//                StartButtonPressed=0;
+//            StopButtonPressed=0;
+//                /******************************************/
+        }
+        if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==1 ) {
+
+           
+            Display_LCD(0,0,"Done Resetting");
+            StartButtonPressed=0;
+            StopButtonPressed=0;
+            ReStartButtonPressed=0;
+            Clear_LCD();
+            
+          
+        }
+       if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==0 ) {
+            GreenLight=1;
+            YellowLight=1;
+            RedLight=1;
+            timer.reset();
+            timerred.reset();
+            
+//            printf(" Last Line\r\n");
+            Display_LCD(0,0,"Select Mode Or");
+            Display_LCD(0,1,"Press Start ");
+           
+            lcdflag=true;
+        }
+
+    }
+}
+
+
+void ReadTimes()
+{
+    char rkey;
+    char Str[5]= {'\0'};
+    char Star[5]={'\0'};
+    char text[5]={'\0'};
+    char  GreenTime[6]={'\0'};
+    char  YellowTime[6]={'\0'};
+    char  RedTime[6]={'\0'};
+    bool Staus=false;
+              rkey=keypad.waitForKey();          
+
+                        switch(rkey)
+                        {
+                                                  
+                                    case '1':
+                
+                                      {
+                                        Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+                                           SaveTimes(1,GTIME,YTIME,RTIME);
+                                        }
+                                        Staus=false;
+                                        }
+                                        break;
+                                    case '2':
+                                      {       
+                                        Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+                                           SaveTimes(2,GTIME,YTIME,RTIME);
+                                        }
+                                        Staus=false;
+                                       }
+                                        break;
+                                    case '3':
+                                        {
+                                        Staus=ReadAllTimesofEachMode(3,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+                                           SaveTimes(3,GTIME,YTIME,RTIME);
+                                        }
+                                        Staus=false;
+                                        }
+                
+                                        break;
+                                    case '4':
+                                        {
+                                        Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+                                           SaveTimes(4,GTIME,YTIME,RTIME);
+                                        }
+                                        Staus=false;
+                                        }
+                
+                                        break;
+                                    case '5':
+                                        {
+                                        Staus=ReadAllTimesofEachMode(5,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+                                           SaveTimes(5,GTIME,YTIME,RTIME);
+                                        }
+                                        Staus=false;
+                                        }
+                
+                                        break;
+                
+                                    case '6':
+                                     {
+                                        Staus=ReadAllTimesofEachMode(6,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+                                           SaveTimes(6,GTIME,YTIME,RTIME);
+                                        }
+                                        Staus=false;
+                                        }
+                
+                                        break;
+                                    default:
+                                    {
+                                        printf("No Mode\r\n");
+                                        Clear_LCD();
+                                        Display_LCD(0,0,"  InValid Mode ");
+                                        
+                                    }
+                                        
+                                        
+                            }
+                    
+          
+}
+
+bool ReadEachLightTime(int mode,char *mmss,char *lightTimeName)
+{
+    Clear_LCD();
+    char Buffer[17]= {'\0'};
+    char Buffer1[17]="Entr Time Mode:";
+    char Buffer2[17]="Tim MM:SS";
+    
+    uint8_t index1=0;
+    char key='\0';
+    char str[6]= {'\0'};
+    Clear_LCD();
+    sprintf(Buffer,"%s%d",Buffer1,mode);
+    Display_LCD(0,0,Buffer);
+    memset(Buffer,'\0',16);
+    sprintf(Buffer,"%s %s",lightTimeName,Buffer2);
+    Display_LCD(0,1,Buffer);
+    
+   wait(3);
+    Clear_LCD();
+    Display_LCD(0,0,"Press # Set ");
+    Display_LCD(0,1,"Prss * to Exit ");
+
+    key=keypad.waitForKey();
+    if(key=='#') {
+        Clear_LCD();
+        Display_LCD(0,0,"MM:SS ");
+       
+        index1=0;
+        while(index1==0 ||(index1<=4 && key !='#' && key!='*')) {
+            key=keypad.waitForKey();
+            str[index1]=key;
+            if(index1==2) {
+                str[index1]=':';
+                index1++;
+                str[index1]=key;
+            }
+            index1++;
+            Display_LCD(0,0,"MM:SS ");
+            Display_LCD(0,1,"MM:SS ");
+            Display_LCD(0,1,str);
+        }
+        Clear_LCD();
+        Display_LCD(0,0,"Saving Mode ");
+        Display_LCD(0,1,str);
+        memcpy(mmss,str,5);
+        mmss[6]='\0';
+        wait(1);
+        Clear_LCD();
+        
+        return true;
+    } else if(key=='*'){
+        Display_LCD(0,0,"Mode Not Set    ");
+        Display_LCD(0,1,"Retains PrevMode");
+        return false;
+    }
+}
+
+
+bool ReadAllTimesofEachMode(int MODE,char *Greentime,char *Yellowtime,char *Redtime)
+{
+    bool Greenflag=false,Yellowflag=false,Redflag=false;
+    Greenflag=ReadEachLightTime(MODE,Greentime,"Green");
+    
+    if(Greenflag==true) {
+        
+        Yellowflag=ReadEachLightTime(MODE,Yellowtime,"Yellow");
+        if(Yellowflag==true) {
+           
+            Redflag=ReadEachLightTime(MODE,Redtime,"Red");
+            if(Redflag==true) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+
+    } else
+        return false;
+}
+
+
+void ExtractTimesinSecs(char *greentime,char *yellowtime,char *redtime,float *grntim,float *yeltim,float *redtim)
+{
+    int mins,secs;
+    if( greentime[2]==':') {
+        mins=(( greentime[0]-0x30)*10)+(greentime[1]-0x30);
+        secs=((greentime[3]-0x30)*10)+(greentime[4]-0x30);
+    }
+    *grntim=mins*60+secs;
+    if( yellowtime[2]==':') {
+        mins=(( yellowtime[0]-0x30)*10)+(yellowtime[1]-0x30);
+        secs=((yellowtime[3]-0x30)*10)+(yellowtime[4]-0x30);
+    }
+    *yeltim=mins*60+secs;
+    if( redtime[2]==':') {
+        mins=(( redtime[0]-0x30)*10)+(redtime[1]-0x30);
+        secs=((redtime[3]-0x30)*10)+(redtime[4]-0x30);
+    }
+    *redtim=mins*60+secs;
+}
+
+void SaveTimes(int Mode,float GreenTime,float YellowTime,float RedTime)
+{
+    bool flag=false;
+    flag=WriteCorresspondingTimes(Mode, GreenTime,YellowTime,RedTime);
+    {
+        if(flag==true) {
+            Clear_LCD();
+            Display_LCD(0,0," Mode Save Success");
+            wait(1);
+        } else {
+            Clear_LCD();
+            Display_LCD(0,0," Mode Save Failure");
+            wait(1);
+        }
+    }
+}
+
+void CalculateTimeElapsed(float TimeElapsed, char *TimeStr)
+{
+    memset(TimeStr,'\0',sizeof TimeStr);
+    int mins=(int)TimeElapsed/60;
+    int secs=(int)TimeElapsed%60;
+    sprintf(TimeStr,"%2d:%02d",mins,secs);
+}
+
+
+              bool PasswordAcceptance()
+              {
+             Clear_LCD();
+             Display_LCD(0,0,"Enter Password ");   
+              char PasswordStr[5]={'\0'};
+              char temp='\0';
+              temp=keypad.waitForKey();
+              PasswordStr[0]=temp;
+              Display_LCD(0,1,PasswordStr);  
+              temp=keypad.waitForKey();
+              PasswordStr[1]=temp;
+               Display_LCD(0,1,PasswordStr);  
+              temp=keypad.waitForKey();
+              PasswordStr[2]=temp;
+               Display_LCD(0,1,PasswordStr);  
+              temp=keypad.waitForKey();
+              PasswordStr[3]=temp;
+               Display_LCD(0,1,PasswordStr);  
+              printf("Password Str %s\r\n",PasswordStr);
+               
+              if(PasswordStr[0]=='1' && PasswordStr[1] =='1' && PasswordStr[2]=='1' && PasswordStr[3]=='1')
+              {
+               Display_LCD(0,0,"Accepted "); 
+               printf("Accepted\r\n");   
+               return true;          
+              }     
+         return false;  
+        }
+        
+        
+       int ModeSelectTochange()
+       {
+              Clear_LCD();
+              Display_LCD(0,0,"Select Mode 1-6 ");   
+              char str[2]={'\0'};
+              char temp='\0';
+              temp=keypad.waitForKey();
+              if(temp>=0x31 && temp<=0x36)
+              {
+              Display_LCD(0,1,"Mode Is: "); 
+              str[0]=temp;
+              Display_LCD(9,1,str); 
+              wait(1);
+              return (temp-0x30); 
+              }
+               Display_LCD(0,0,"Invalid Mode"); 
+               return -1;
+                
+        }
+        
+        
+        
+        
+        
+        
+   void fn(char rkey)
+   {
+         char GreenTime[10]={'\0'},YellowTime[10]={'\0'},RedTime[10]={'\0'};
+         bool Staus=false;
+         switch(rkey)
+         
+                        {
+                                                  
+                                    case '1':
+                
+                                      {
+                                        Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+//                                           SaveTimes(1,GTIME,YTIME,RTIME);
+                                            Display_LCD(0,0,"Done Saving ");
+                                            Display_LCD(0,1,"Mode Saved");
+                                            wait(1);
+                                            Clear_LCD();
+                                        }
+                                        Staus=false;
+                                        }
+                                        break;
+                                    case '2':
+                                      {       
+                                        Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+//                                           SaveTimes(2,GTIME,YTIME,RTIME);
+                                            Display_LCD(0,0,"Done Saving ");
+                                            Display_LCD(0,1,"Mode Saved");
+                                            wait(1);
+                                            Clear_LCD();
+                                        }
+                                        Staus=false;
+                                       }
+                                        break;
+                                    case '3':
+                                        {
+                                        Staus=ReadAllTimesofEachMode(3,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+//                                           SaveTimes(3,GTIME,YTIME,RTIME);
+                                            Display_LCD(0,0,"Done Saving ");
+                                            Display_LCD(0,1,"Mode Saved");
+                                            wait(1);
+                                            Clear_LCD();
+                                        }
+                                        Staus=false;
+                                        }
+                
+                                        break;
+                                    case '4':
+                                        {
+                                        Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+//                                           SaveTimes(4,GTIME,YTIME,RTIME);
+                                            Display_LCD(0,0,"Done Saving ");
+                                            Display_LCD(0,1,"Mode Saved");
+                                            wait(1);
+                                            Clear_LCD();
+                                        }
+                                        Staus=false;
+                                        }
+                
+                                        break;
+                                    case '5':
+                                        {
+                                        Staus=ReadAllTimesofEachMode(5,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+//                                           SaveTimes(5,GTIME,YTIME,RTIME);
+                                            Display_LCD(0,0,"Done Saving ");
+                                            Display_LCD(0,1,"Mode Saved");
+                                            wait(1);
+                                            Clear_LCD();
+                                        }
+                                        Staus=false;
+                                        }
+                
+                                        break;
+                
+                                    case '6':
+                                     {
+                                        Staus=ReadAllTimesofEachMode(6,GreenTime,YellowTime,RedTime);
+                                        if(Staus==true)
+                                        {
+                                          
+                                           float GTIME=0,YTIME=0,RTIME=0;
+                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
+//                                           SaveTimes(6,GTIME,YTIME,RTIME);
+                                            Display_LCD(0,0,"Done Saving ");
+                                            Display_LCD(0,1,"Mode Saved");
+                                            wait(1);
+                                            Clear_LCD();
+                                        }
+                                        Staus=false;
+                                        }
+                
+                                        break;
+                                    default:
+                                            Display_LCD(0,0,"No Mode saved");
+                                            Display_LCD(0,1,"Retns Prev Mode");
+                                            wait(1);
+                                            Clear_LCD();
+                                        printf("No Mode\r\n");
+                                        
+                            }
+                            
+                        }
\ No newline at end of file