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 #include "mbed.h"
shivanandgowdakr 0:194ff03a2e6a 2 #include "Time.h"
shivanandgowdakr 0:194ff03a2e6a 3 #include "LCDDisplay.h"
shivanandgowdakr 0:194ff03a2e6a 4 #include <string>
shivanandgowdakr 0:194ff03a2e6a 5
shivanandgowdakr 0:194ff03a2e6a 6 int Date_Time_Setting(struct tm curt,char *str)
shivanandgowdakr 0:194ff03a2e6a 7 {
shivanandgowdakr 0:194ff03a2e6a 8 int len=0;
shivanandgowdakr 0:194ff03a2e6a 9 len= strlen(str);
shivanandgowdakr 0:194ff03a2e6a 10 // printf("len = %d",len);
shivanandgowdakr 0:194ff03a2e6a 11 if(len < 14)
shivanandgowdakr 0:194ff03a2e6a 12 return 0;
shivanandgowdakr 0:194ff03a2e6a 13
shivanandgowdakr 0:194ff03a2e6a 14 curt.tm_mday = ( str[0]-0x30)*10+(str[1]-0x30);
shivanandgowdakr 0:194ff03a2e6a 15 curt.tm_mon = ( str[2]-0x30)*10+(str[3]-0x30) -1;
shivanandgowdakr 0:194ff03a2e6a 16 curt.tm_year = (( str[4]-0x30)*1000 + (str[5]-0x30)*100 + (str[6]-0x30)*10 + (str[7]-0x30)) -1900 ;
shivanandgowdakr 0:194ff03a2e6a 17
shivanandgowdakr 0:194ff03a2e6a 18 curt.tm_hour=(str[8]-0x30)*10+(str[9]-0x30);
shivanandgowdakr 0:194ff03a2e6a 19 curt.tm_min=(str[10]-0x30)*10+(str[11]-0x30);
shivanandgowdakr 0:194ff03a2e6a 20 curt.tm_sec=(str[12]-0x30)*10+(str[13]-0x30);
shivanandgowdakr 0:194ff03a2e6a 21
shivanandgowdakr 0:194ff03a2e6a 22 time_t epoch = mktime(&curt);
shivanandgowdakr 0:194ff03a2e6a 23 if (epoch == (time_t) -1) {
shivanandgowdakr 0:194ff03a2e6a 24 error("Error in clock setting\n");
shivanandgowdakr 0:194ff03a2e6a 25 // Stop here
shivanandgowdakr 0:194ff03a2e6a 26 }
shivanandgowdakr 0:194ff03a2e6a 27 set_time(epoch);
shivanandgowdakr 0:194ff03a2e6a 28 return 1;
shivanandgowdakr 0:194ff03a2e6a 29 }
shivanandgowdakr 0:194ff03a2e6a 30
shivanandgowdakr 0:194ff03a2e6a 31
shivanandgowdakr 0:194ff03a2e6a 32 int iSetTerminalTime(char *tstring)
shivanandgowdakr 0:194ff03a2e6a 33 {
shivanandgowdakr 0:194ff03a2e6a 34 int ret=0;
shivanandgowdakr 0:194ff03a2e6a 35 struct tm curt;
shivanandgowdakr 0:194ff03a2e6a 36
shivanandgowdakr 0:194ff03a2e6a 37 ret = Date_Time_Setting(curt,tstring);
shivanandgowdakr 0:194ff03a2e6a 38
shivanandgowdakr 0:194ff03a2e6a 39 if(ret == 1) {
shivanandgowdakr 0:194ff03a2e6a 40 wait(1);
shivanandgowdakr 0:194ff03a2e6a 41
shivanandgowdakr 0:194ff03a2e6a 42 Display_LCD(0,0," DATE-TIME ");
shivanandgowdakr 0:194ff03a2e6a 43 Display_LCD(0,1," SET SUCCESS ");
shivanandgowdakr 0:194ff03a2e6a 44 printf("Date Time Set succesfully\r\n");
shivanandgowdakr 0:194ff03a2e6a 45
shivanandgowdakr 0:194ff03a2e6a 46 } else {
shivanandgowdakr 0:194ff03a2e6a 47 Display_LCD(0,0," DATE-TIME ");
shivanandgowdakr 0:194ff03a2e6a 48 Display_LCD(0,1," SET FAILURE ");
shivanandgowdakr 0:194ff03a2e6a 49 printf("Date Time Set Failure \r\n");
shivanandgowdakr 0:194ff03a2e6a 50
shivanandgowdakr 0:194ff03a2e6a 51 }
shivanandgowdakr 0:194ff03a2e6a 52 wait(1);
shivanandgowdakr 0:194ff03a2e6a 53 // Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 54
shivanandgowdakr 0:194ff03a2e6a 55 return ret;
shivanandgowdakr 0:194ff03a2e6a 56 }
shivanandgowdakr 0:194ff03a2e6a 57
shivanandgowdakr 0:194ff03a2e6a 58
shivanandgowdakr 0:194ff03a2e6a 59 int chk_time (char *str)
shivanandgowdakr 0:194ff03a2e6a 60 {
shivanandgowdakr 0:194ff03a2e6a 61 int HH,MM,SS;
shivanandgowdakr 0:194ff03a2e6a 62 HH=(str[0]-0x30)*10+(str[1]-0x30);
shivanandgowdakr 0:194ff03a2e6a 63 MM=(str[2]-0x30)*10+(str[3]-0x30);
shivanandgowdakr 0:194ff03a2e6a 64 SS=(str[4]-0x30)*10+(str[5]-0x30);
shivanandgowdakr 0:194ff03a2e6a 65 if ( HH < 0 || HH > 23 || MM < 0 || MM > 59 || SS < 0 || SS > 59 )
shivanandgowdakr 0:194ff03a2e6a 66 return -1;
shivanandgowdakr 0:194ff03a2e6a 67 return 1;
shivanandgowdakr 0:194ff03a2e6a 68 }
shivanandgowdakr 0:194ff03a2e6a 69
shivanandgowdakr 0:194ff03a2e6a 70 int chk_date (char *str)
shivanandgowdakr 0:194ff03a2e6a 71 {
shivanandgowdakr 0:194ff03a2e6a 72 int epos_date=0,epos_month=0,epos_year=0;
shivanandgowdakr 0:194ff03a2e6a 73 epos_date = ( str[0]-0x30)*10+(str[1]-0x30);
shivanandgowdakr 0:194ff03a2e6a 74 epos_month = ( str[2]-0x30)*10+(str[3]-0x30);
shivanandgowdakr 0:194ff03a2e6a 75 epos_year = ( str[4]-0x30)*1000+ (str[5]-0x30)*100 + (str[6]-0x30)*10 + (str[7]-0x30);
shivanandgowdakr 0:194ff03a2e6a 76
shivanandgowdakr 0:194ff03a2e6a 77
shivanandgowdakr 0:194ff03a2e6a 78 if ( epos_month < 1 || epos_date < 1 || epos_date > 31 || epos_month > 12 || epos_year < 2008 ) return ERROR ;
shivanandgowdakr 0:194ff03a2e6a 79
shivanandgowdakr 0:194ff03a2e6a 80 else if(epos_month == 1 || epos_month == 3 || epos_month == 5 || epos_month == 7 || epos_month == 8 || epos_month ==10 ||epos_month == 12) {
shivanandgowdakr 0:194ff03a2e6a 81
shivanandgowdakr 0:194ff03a2e6a 82 if (epos_date > 31)
shivanandgowdakr 0:194ff03a2e6a 83 return -1;
shivanandgowdakr 0:194ff03a2e6a 84 }
shivanandgowdakr 0:194ff03a2e6a 85
shivanandgowdakr 0:194ff03a2e6a 86 else if (epos_month == 4 || epos_month == 6 || epos_month == 9 || epos_month == 11) {
shivanandgowdakr 0:194ff03a2e6a 87
shivanandgowdakr 0:194ff03a2e6a 88 if (epos_date > 30)
shivanandgowdakr 0:194ff03a2e6a 89 return -1;
shivanandgowdakr 0:194ff03a2e6a 90 }
shivanandgowdakr 0:194ff03a2e6a 91
shivanandgowdakr 0:194ff03a2e6a 92 else if (epos_month == 2 )
shivanandgowdakr 0:194ff03a2e6a 93
shivanandgowdakr 0:194ff03a2e6a 94 {
shivanandgowdakr 0:194ff03a2e6a 95 if ( !(epos_year%400) || (epos_year%100 != 0 && epos_year%4==0 ) ) {
shivanandgowdakr 0:194ff03a2e6a 96 if (epos_date > 29 ) return -1;
shivanandgowdakr 0:194ff03a2e6a 97 }
shivanandgowdakr 0:194ff03a2e6a 98
shivanandgowdakr 0:194ff03a2e6a 99 else if( epos_date > 28 ) return -1;
shivanandgowdakr 0:194ff03a2e6a 100 }
shivanandgowdakr 0:194ff03a2e6a 101 return 1;
shivanandgowdakr 0:194ff03a2e6a 102 }
shivanandgowdakr 0:194ff03a2e6a 103
shivanandgowdakr 0:194ff03a2e6a 104 void Get_Date_Time(char *date_string,char *time_string, char *DTSTRING)
shivanandgowdakr 0:194ff03a2e6a 105 {
shivanandgowdakr 0:194ff03a2e6a 106 time_t curr_time;
shivanandgowdakr 0:194ff03a2e6a 107 tm * curr_tm;
shivanandgowdakr 0:194ff03a2e6a 108 time(&curr_time);
shivanandgowdakr 0:194ff03a2e6a 109 curr_tm = localtime(&curr_time);
shivanandgowdakr 0:194ff03a2e6a 110 strftime(date_string,10,"%Y%m%d",curr_tm);
shivanandgowdakr 0:194ff03a2e6a 111 strftime(time_string,10,"%H%M%S",curr_tm);
shivanandgowdakr 0:194ff03a2e6a 112 strftime(DTSTRING,20,"%Y%m%d%H%M%S",curr_tm);
shivanandgowdakr 0:194ff03a2e6a 113 }
shivanandgowdakr 0:194ff03a2e6a 114
shivanandgowdakr 0:194ff03a2e6a 115 void Get_Date_Time(char *date_string,char *time_string)
shivanandgowdakr 0:194ff03a2e6a 116 {
shivanandgowdakr 0:194ff03a2e6a 117 time_t curr_time;
shivanandgowdakr 0:194ff03a2e6a 118 tm * curr_tm;
shivanandgowdakr 0:194ff03a2e6a 119 time(&curr_time);
shivanandgowdakr 0:194ff03a2e6a 120 curr_tm = localtime(&curr_time);
shivanandgowdakr 0:194ff03a2e6a 121 strftime(date_string,10,"%Y%m%d",curr_tm);
shivanandgowdakr 0:194ff03a2e6a 122 strftime(time_string,10,"%H%M%S",curr_tm);
shivanandgowdakr 0:194ff03a2e6a 123
shivanandgowdakr 0:194ff03a2e6a 124 }
shivanandgowdakr 0:194ff03a2e6a 125
shivanandgowdakr 0:194ff03a2e6a 126
shivanandgowdakr 0:194ff03a2e6a 127 void Get_Date_Time( char *DTSTRING)
shivanandgowdakr 0:194ff03a2e6a 128 {
shivanandgowdakr 0:194ff03a2e6a 129 time_t curr_time;
shivanandgowdakr 0:194ff03a2e6a 130 tm * curr_tm;
shivanandgowdakr 0:194ff03a2e6a 131 time(&curr_time);
shivanandgowdakr 0:194ff03a2e6a 132 curr_tm = localtime(&curr_time);
shivanandgowdakr 0:194ff03a2e6a 133 strftime(DTSTRING,20,"%Y%m%d%H%M%S",curr_tm);
shivanandgowdakr 0:194ff03a2e6a 134 }
shivanandgowdakr 0:194ff03a2e6a 135
shivanandgowdakr 0:194ff03a2e6a 136 void Get_Date_Time_Trns( char *DTSTRING)
shivanandgowdakr 0:194ff03a2e6a 137 {
shivanandgowdakr 0:194ff03a2e6a 138 time_t curr_time;
shivanandgowdakr 0:194ff03a2e6a 139 tm * curr_tm;
shivanandgowdakr 0:194ff03a2e6a 140 time(&curr_time);
shivanandgowdakr 0:194ff03a2e6a 141 curr_tm = localtime(&curr_time);
shivanandgowdakr 0:194ff03a2e6a 142 strftime(DTSTRING,20,"%d%m%Y%H%M%S",curr_tm);
shivanandgowdakr 0:194ff03a2e6a 143 }
shivanandgowdakr 0:194ff03a2e6a 144
shivanandgowdakr 0:194ff03a2e6a 145
shivanandgowdakr 0:194ff03a2e6a 146
shivanandgowdakr 0:194ff03a2e6a 147 int is_12_O_Clock_Night(void)
shivanandgowdakr 0:194ff03a2e6a 148 {
shivanandgowdakr 0:194ff03a2e6a 149 char dat[9]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 150 char tim[9]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 151 int HH,MM;
shivanandgowdakr 0:194ff03a2e6a 152 Get_Date_Time(dat,tim);
shivanandgowdakr 0:194ff03a2e6a 153 HH=(tim[0]-0x30)*10+(tim[1]-0x30);
shivanandgowdakr 0:194ff03a2e6a 154 MM=(tim[2]-0x30)*10+(tim[3]-0x30);
shivanandgowdakr 0:194ff03a2e6a 155
shivanandgowdakr 0:194ff03a2e6a 156 if((HH==0) &&(MM <59))
shivanandgowdakr 0:194ff03a2e6a 157 {
shivanandgowdakr 0:194ff03a2e6a 158 return 1;
shivanandgowdakr 0:194ff03a2e6a 159 }
shivanandgowdakr 0:194ff03a2e6a 160 else
shivanandgowdakr 0:194ff03a2e6a 161 {
shivanandgowdakr 0:194ff03a2e6a 162 return 0;
shivanandgowdakr 0:194ff03a2e6a 163 }
shivanandgowdakr 0:194ff03a2e6a 164 }
shivanandgowdakr 0:194ff03a2e6a 165
shivanandgowdakr 0:194ff03a2e6a 166
shivanandgowdakr 0:194ff03a2e6a 167 int is_6_O_Clock(void)
shivanandgowdakr 0:194ff03a2e6a 168 {
shivanandgowdakr 0:194ff03a2e6a 169 char dat[9]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 170 char tim[9]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 171 int HH,MM;
shivanandgowdakr 0:194ff03a2e6a 172 Get_Date_Time(dat,tim);
shivanandgowdakr 0:194ff03a2e6a 173 HH=(tim[0]-0x30)*10+(tim[1]-0x30);
shivanandgowdakr 0:194ff03a2e6a 174 MM=(tim[2]-0x30)*10+(tim[3]-0x30);
shivanandgowdakr 0:194ff03a2e6a 175
shivanandgowdakr 0:194ff03a2e6a 176 if((HH==6) &&(MM <30))
shivanandgowdakr 0:194ff03a2e6a 177 {
shivanandgowdakr 0:194ff03a2e6a 178 return 1;
shivanandgowdakr 0:194ff03a2e6a 179 }
shivanandgowdakr 0:194ff03a2e6a 180 else
shivanandgowdakr 0:194ff03a2e6a 181 {
shivanandgowdakr 0:194ff03a2e6a 182 return 0;
shivanandgowdakr 0:194ff03a2e6a 183 }
shivanandgowdakr 0:194ff03a2e6a 184 }