UNO+ DS1302.h синхронизация времени с локальным компьютером
- Войдите на сайт для отправки комментариев
Пнд, 13/05/2019 - 11:27
Добрый день. Делаю синхронизацию времени с сервером, переменные объявляются корректно, подскажите почему не работает этот код?
(inputString.indexOf("set time")!=-1)
// Установка времени на устройстве входящая строка "set time 46,01,10,13,05,2019,1" // ----------------Установка времени------------------------START--------- if (inputString.indexOf("set time")!=-1) { digitalWrite(LED_BUILTIN, LOW); client.println("Set time: "+inputString); uint8_t ss = inputString.substring(10, 11).toInt(); //секунды uint8_t nn = inputString.substring(13, 14).toInt(); //минуты uint8_t hh = inputString.substring(16, 17).toInt(); //часы uint8_t dd = inputString.substring(19, 20).toInt(); //день uint8_t mm = inputString.substring(22, 23).toInt(); //месяц uint16_t yy = inputString.substring(25, 28).toInt(); //год uint8_t kk = inputString.substring(30, 30).toInt(); //день недели // Проверка в порт переданных переменных Serial.println("Установка времени: "+String(ss)+","+String(nn)+","+String(hh)+","+ String(dd)+","+String(mm)+","+String(yy)+","+String(kk)); // Запись в модуль rtc.halt(false); rtc.writeProtect(false); rtc.setDOW(kk); // день недели rtc.setTime(hh, nn, ss); // 12:00:00 (24hr формат) rtc.setDate(dd, mm, yy); // 5.10.2019 digitalWrite(LED_BUILTIN, HIGH); //----------------Установка времени-------------------------------END---------
как вы определяете что он не работает ? по каким признакам ?
1. Делаю запрос на выдачу времени:
2. не выполняется нижняя строчка "
"
У вас код написан из предположения. что строка начинается с "set time" и помещается в буфер целиком - а ни то ни другое может быть не так. Вы когда indexOf() от строки берете - это и есть настоящее начало вашей строки. Сохраните индекс и ищите цифры от него, а не от начала.
И еще - по-моему вы в позициях цифр обсчитались, помните, что счет идет с нуля.
"не работает - не плати зарплату" (с) Ворота. ;)))
Ну и, к тому же, сегондя понедельник 13-ое. Кто ж станет работать?!
================
Б707! Тут же безумная "каша в стрингах", ты ж "шидевр" весь не видел, может Уна, со своими двумя КБ памяти, уже давно плачет в темном углу.
У вас код написан из предположения. что строка начинается с "set time" и помещается в буфер целиком - а ни то ни другое может быть не так. Вы когда indexOf() от строки берете - это и есть настоящее начало вашей строки. Сохраните индекс и ищите цифры от него, а не от начала.
И еще - по-моему вы в позициях цифр обсчитались, помните, что счет идет с нуля.
Поняла. Сейчас попробую искать от индекса.