Точно помню, что находил этот скрипт, а сейчас он понадобился и нет его. Где можно найти?и почему не реализованных? ota over http прекрасно работает, php скрипт даже выкладывал
unsigned long crc_update(unsigned long crc, byte data) {
byte tbl_idx;
tbl_idx = crc ^ (data >> (0 * 4));
crc = pgm_read_dword_near(crc_table + (tbl_idx & 0x0f)) ^ (crc >> 4);
tbl_idx = crc ^ (data >> (1 * 4));
crc = pgm_read_dword_near(crc_table + (tbl_idx & 0x0f)) ^ (crc >> 4);
return crc;
}
Я не сильно понимаю в сдвигах, XOR, NOR и проч. Да и вообще не сильно понимаю )byte tbl_idx - переполняется?
unsigned long crc_byte(byte *b, int len)
{
unsigned long crc = ~0L;
uint8_t i;
for (i = 0 ; i < len ; i++)
{
crc = crc_update(crc, *b++);
}
О, спасибо, буду проверять ...а, это же подфункция расчета, тут всё ок с размерностью
проблема раньше
размер блока int lenКод:unsigned long crc_byte(byte *b, int len) { unsigned long crc = ~0L; uint8_t i; for (i = 0 ; i < len ; i++) { crc = crc_update(crc, *b++); }
а итератор цикла всего uint8_t i, надо его приводить в соответствие
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Fri, 12 Apr 2019 14:55:53 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
X-Powered-By: PHP/5.6.40
X-Hosted-By: http://www.host-food.ru/
16
f444777110000
0
в httpclient используется библиотека более высокого уровня где есть отрезание лишнегоКакой же я нуб. Нужно заменить client.readStringUntil на просто client.readString
а как лишнее отсечь? в примере BasicHTTPClient.ino приходило только f444777110000
Можно конечно пропарсить и все значения распихать куда нужно, но может есть более изящный способ
Хочу поделится своим скетчем с конфигуратором в eeprom, может быть будет кому-то полезно
Сохранение настроек c crc, включение/выключение клиента wifi, отправлялки данных на сервер через GET
проверка адреса клиента и запрет менять настройки со стороны wifi station
имя точки задается из переменной и последних 4х символом мак адреса, пароль точки аналогично
Готов выслушать любые комментарии)
aESPtemplate.ino
edit:
Добавил возможность выключения точки при подключении в режиме клиента, сохранение пустых паролей и что-то еще по мелочи.
edit:
для работы http ota нужен сервер отдающий прошивки, например с таким скриптом esp.php.txt