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.
195 lines
8.0 KiB
195 lines
8.0 KiB
void timerconvert()
|
|
{ //timerout= {"id":"tout","t1":"100","t2":"010","t3":"001"} подкл таймеров по выходов
|
|
//String timerdata
|
|
//{"timer1":["01:00","09:00","10:00","11:00","","","","","",""],"timer2":[
|
|
// String timerweek={"id":"week","timer1_week":"0111100","timer2_week":"1000011","timer3_week":"0101010"};
|
|
//(str[1] = 't')
|
|
//uint16_t BTimer1 [11] = {3, 390, 450, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440}; // массивы всех таймеров для суточных каналов (1 - 4) 0-й элемент отвечает за состояние канала (1 - вкл/ 0 - выкл/ 2 - авто))
|
|
if (timerdata.startsWith("{\"timer1"))//парсим "timer1":["01
|
|
{tdat=0;
|
|
int timer=0;//номер таймера
|
|
//int index =1;// индекс массива таймера
|
|
// Serial.println("timer");
|
|
// Serial.println(timerdata.length());
|
|
// Serial.println(timerdata[12]);
|
|
for (int i = 0; i < timerdata.length() ; i++) {//перебираем строку данных
|
|
|
|
if (timerdata[i]=='[')
|
|
{timer++;
|
|
//********************************************************************
|
|
if (timer==1)
|
|
{i=i+2;
|
|
for (int j = 1; j < 11 ; j++){
|
|
if (timerdata[i]!='\"')
|
|
{
|
|
BTimer1 [j]=((int(timerdata[i] - '0')*10+int(timerdata[i+1] - '0'))*60+(int(timerdata[i+3] - '0')*10+int(timerdata[i+4] - '0')));
|
|
i=i+8;
|
|
//Serial.println(BTimer1 [j]);
|
|
}
|
|
else
|
|
{i=i+3;
|
|
BTimer1 [j]=1440;//время неустановлено
|
|
}
|
|
// Serial.println(timerdata[i]);
|
|
|
|
}
|
|
|
|
}
|
|
//******************************************************************************
|
|
if (timer==2)
|
|
{i=i+2;
|
|
for (int j = 1; j < 11 ; j++){
|
|
|
|
if (timerdata[i]!='\"')
|
|
{
|
|
BTimer2 [j]=((int(timerdata[i] - '0')*10+int(timerdata[i+1] - '0'))*60+(int(timerdata[i+3] - '0')*10+int(timerdata[i+4] - '0')));
|
|
i=i+8;
|
|
//Serial.println(BTimer1 [j]);
|
|
}
|
|
else
|
|
{i=i+3;
|
|
BTimer2 [j]=1440;
|
|
}
|
|
// Serial.println(timerdata[i]);
|
|
|
|
}
|
|
|
|
}
|
|
if (timer==3)
|
|
{i=i+2;
|
|
for (int j = 1; j < 11 ; j++){
|
|
if (timerdata[i]!='\"')
|
|
{
|
|
BTimer3 [j]=((int(timerdata[i] - '0')*10+int(timerdata[i+1] - '0'))*60+(int(timerdata[i+3] - '0')*10+int(timerdata[i+4] - '0')));
|
|
i=i+8;
|
|
//Serial.println(BTimer1 [j]);
|
|
}
|
|
else
|
|
{i=i+3;
|
|
BTimer3 [j]=1440;
|
|
}
|
|
// Serial.println(timerdata[i]);
|
|
|
|
}
|
|
// Serial.println(" ");
|
|
// for(int a = 0; a < 11; a++)
|
|
// { Serial.print(BTimer3[a]);
|
|
// }
|
|
// Serial.println(" ");
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//******************************************************************************************
|
|
if (timerweek.startsWith("{\"id\":\"week"))//парсим {"id":"week","timer1_week":"0111100"
|
|
{tweek=0;
|
|
int timer=0;//номер таймера
|
|
// Serial.println("week");
|
|
// Serial.println(timerweek.length());
|
|
for (int i = 0; i < timerweek.length() ; i++) {//перебираем строку данных
|
|
if (timerweek[i]==':')
|
|
{timer++;
|
|
if (timer==2)//данные таймера1 идут после вторых двоеточий
|
|
{i=i+2;
|
|
for (int j = 0; j < 7 ; j++){
|
|
weekTimer1 [j]=int(timerweek[i+j] - '0');//пребразуем строку "0111100" в массив чисел weekTimer1 [7]=
|
|
}
|
|
}
|
|
if (timer==3)
|
|
{i=i+2;
|
|
for (int j = 0; j < 7 ; j++){
|
|
weekTimer2 [j]=int(timerweek[i+j] - '0');//пребразуем строку "0111100" в массив чисел weekTimer1 [7]=
|
|
}
|
|
}
|
|
if (timer==4)
|
|
{i=i+2;
|
|
for (int j = 0; j < 7 ; j++){
|
|
weekTimer3 [j]=int(timerweek[i+j] - '0');//пребразуем строку "0111100" в массив чисел weekTimer1 [7]=
|
|
}
|
|
Serial.print("weekTimer3");
|
|
for(int a = 0; a < 7; a++)
|
|
{ Serial.print(weekTimer3[a]);
|
|
}
|
|
Serial.println("");
|
|
//Serial.println("");
|
|
// Serial.print("tweekday");
|
|
//Serial.println(tweekday);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// weekTimer1 [7]={0,0,0,0,0,0,0};//недельные установки t1
|
|
if(weekTimer1 [tweekday-1]==1)
|
|
{BTimer1 [0]=2;//управляем таймером
|
|
}else
|
|
{
|
|
BTimer1 [0]=3;//управляем кнопками
|
|
}
|
|
if(weekTimer2 [tweekday-1]==1)
|
|
{BTimer2 [0]=2;//управляем таймером
|
|
}else
|
|
{
|
|
BTimer2 [0]=3;//управляем кнопками
|
|
}
|
|
if(weekTimer3 [tweekday-1]==1)
|
|
{BTimer3 [0]=2;//управляем таймером
|
|
}else
|
|
{
|
|
BTimer3 [0]=3;//управляем кнопками
|
|
}
|
|
Serial.print("BTimer1 [0]:");
|
|
Serial.println(BTimer1 [0]);
|
|
Serial.print("BTimer2 [0]:");
|
|
Serial.println(BTimer2 [0]);
|
|
Serial.print("BTimer3 [0]:");
|
|
Serial.println(BTimer3 [0]);
|
|
//******************************************************************************************
|
|
if (timerout.startsWith("{\"id\":\"tout"))//парсим timerout= {"id":"tout","t1":"100","t2":"010","t3":"001"} подкл таймеров по выходов
|
|
{//tuot=0;
|
|
int timer=0;//номер таймера
|
|
// Serial.println("timerout");
|
|
// Serial.println(timerout.length());
|
|
for (int i = 0; i < timerout.length() ; i++) {//перебираем строку данных
|
|
if (timerout[i]==':')
|
|
{timer++;
|
|
if (timer==2)//данные таймера1 идут после вторых двоеточий
|
|
{i=i+2;
|
|
for (int j = 0; j < 3 ; j++){
|
|
gpioTimer1[j]=int(timerout[i+j] - '0');//пребразуем строку "011" в массив чисел gpioTimer1 [3]={1,0,0};
|
|
}
|
|
}
|
|
if (timer==3)
|
|
{i=i+2;
|
|
for (int j = 0; j < 3 ; j++){
|
|
gpioTimer2[j]=int(timerout[i+j] - '0');//пребразуем строку "011" в массив чисел gpioTimer2 [3]={1,1,0};
|
|
}
|
|
}
|
|
if (timer==4)
|
|
{i=i+2;
|
|
for (int j = 0; j < 3 ; j++){
|
|
gpioTimer3[j]=int(timerout[i+j] - '0');//пребразуем строку "011" в массив чисел gpioTimer3 [3]={1,1,0};
|
|
}
|
|
Serial.println("");
|
|
Serial.print("gpioTimer1");
|
|
for(int a = 0; a < 3; a++)
|
|
{ Serial.print(gpioTimer1[a]);
|
|
}
|
|
Serial.println("");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
current_time = hour1 * 60 + min1;//настройка выходов в соот с таймерами
|
|
for (int i = 0; i <= 1439; i++) {
|
|
if (current_time > 1439) current_time = 0;
|
|
state1 = main_log(BTimer1, state1);
|
|
state2 = main_log(BTimer2, state2);
|
|
state3 = main_log(BTimer3, state3);
|
|
current_time++;
|
|
}
|
|
btime();
|
|
}
|
|
|