You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.6 KiB
140 lines
3.6 KiB
void ntp()
|
|
{
|
|
// while(!timeClient.update()) {
|
|
// timeClient.forceUpdate();
|
|
//}
|
|
Serial.println("NTP");
|
|
ntp_on=0;
|
|
if(!timeClient.update()) {
|
|
for(int i=0; i<2 && !timeClient.update(); i++)
|
|
{timeClient.forceUpdate();
|
|
if(i<1)//проверка подкл к NTP
|
|
{ntp_on=1;
|
|
}
|
|
else
|
|
{
|
|
ntp_on=0;
|
|
}
|
|
}
|
|
}
|
|
else{
|
|
ntp_on=1;
|
|
}
|
|
|
|
|
|
//если подкл
|
|
if(ntp_on==1)
|
|
{ // The formattedDate comes with the following format:
|
|
// 2018-05-28T16:00:13Z
|
|
// We need to extract date and time
|
|
// formattedDate = timeClient.getFormattedDate();
|
|
formattedTime =timeClient.getFormattedTime();
|
|
Serial.println(formattedTime);
|
|
Serial.println("NTP3");
|
|
// getDay
|
|
//getHours
|
|
//getMinutes
|
|
//getSeconds
|
|
//getFormattedTime
|
|
// formattedDate =timeClient.getFormattedDate();
|
|
// int splitT = formattedDate.indexOf("T");
|
|
// dayStamp = formattedDate.substring(0, splitT);
|
|
// Serial.println(timeClient.getDay());
|
|
|
|
// Extract time
|
|
// timeStamp = formattedDate.substring(splitT+1, formattedDate.length()-1);
|
|
// Serial.println("ntp");
|
|
// Serial.println(timeClient.getEpochTime());
|
|
stamp.getDateTime(timeClient.getEpochTime());
|
|
EpochTime=timeClient.getEpochTime();
|
|
Serial.println(EpochTime);
|
|
// забираем вот так
|
|
// Serial.println(stamp.year);
|
|
Serial.println(stamp.month);
|
|
Serial.println(stamp.day);
|
|
// Serial.println(stamp.hour);
|
|
// Serial.println(stamp.minute);
|
|
// Serial.println(stamp.second);
|
|
Serial.println(stamp.dayOfWeek);
|
|
timeserv=formatTimeDigits(stamp.hour,stamp.minute);
|
|
Serial.println("time");
|
|
Serial.println(timeserv);
|
|
//dataserv=formatDateDigits(stamp.day, stamp.month, stamp.year);
|
|
//***************************Из ntp в ds 3231************************************
|
|
DateTime now = rtc.now();
|
|
if((stamp.day==now.day())&&(stamp.hour==now.hour()))
|
|
{ rtc.adjust(DateTime(stamp.year,stamp.month, stamp.day, stamp.hour,stamp.minute,stamp.second));
|
|
Serial.println("NTP time write");
|
|
}
|
|
|
|
hour1=stamp.hour;
|
|
min1=stamp.minute;
|
|
|
|
dataserv=stamp.day;
|
|
munthserv=strm[stamp.month-1] ;
|
|
weekserv=strweek[stamp.dayOfWeek];
|
|
// tweekday=stamp.dayOfWeek;//1-7
|
|
//Serial.println(timeserv);
|
|
//Serial.println(dataserv);
|
|
}
|
|
else
|
|
{Serial.println("NTP not c0nnect");//EpochTime=10983 3:03:03
|
|
//EpochTime=EpochTime;//если NTP не ответил читаем EpochTime с СД карты
|
|
}
|
|
|
|
}
|
|
|
|
char *formatTimeDigits(int hour, int minute)
|
|
{
|
|
char *time_str = new char[5];
|
|
time_str[0] = '0' + (hour / 10);
|
|
time_str[1] = '0' + (hour % 10);
|
|
time_str[2] = ':';
|
|
time_str[3] = '0' + (minute / 10);
|
|
time_str[4] = '0' + (minute % 10);
|
|
time_str[5] = '\0';
|
|
|
|
return time_str;
|
|
}
|
|
|
|
char *formatDateDigits(int date, int mounth, int year)
|
|
{
|
|
char *date_str = new char[9];
|
|
|
|
date_str[1] = '0' + (date % 10);
|
|
date_str[2] = '/';
|
|
date_str[0] = '0' + (date / 10);
|
|
date_str[3] = '0' + (mounth / 10);
|
|
date_str[4] = '0' + (mounth % 10);
|
|
date_str[5] = '/';
|
|
date_str[6] = '0' + ((year % 100) / 10);
|
|
date_str[7] = '0' + (year % 10);
|
|
date_str[8] = '\0';
|
|
|
|
return date_str;
|
|
}
|
|
|
|
void ntphome()
|
|
{DateTime now = rtc.now();
|
|
// stamp.getDateTime(timeClient.getEpochTime());
|
|
// timeserv=formatTimeDigits(stamp.hour,stamp.minute);
|
|
timeserv=formatTimeDigits(now.hour(),now.minute());
|
|
// hour1=stamp.hour;
|
|
hour1=now.hour();
|
|
//min1=stamp.minute;
|
|
min1=now.minute();
|
|
|
|
// dataserv=formatDateDigits(stamp.day, stamp.month, stamp.year);
|
|
//dataserv=stamp.day;
|
|
dataserv=now.day();
|
|
data1=now.day();
|
|
munthserv=strm[now.month()-1] ;
|
|
|
|
weekserv=strweek[now.dayOfTheWeek()];
|
|
|
|
tweekday=now.dayOfTheWeek();
|
|
month1=now.month();
|
|
year1=now.year();
|
|
Serial.println("time");
|
|
Serial.println(timeserv);
|
|
}
|
|
|