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(); }