Проблема с OTA-обновлением ESP32. Потеряно байтC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема с OTA-обновлением ESP32. Потеряно байт

Сообщение Anonymous »


Добрый день, надеюсь, кто-нибудь поможет мне со следующей проблемой.

Ситуация: У меня есть приложение Flutter, подключенное к серверу веб-сокетов, размещенному на esp32, с помощью библиотеки link2004/websockets (https://github.com/Links2004/arduinoWebSockets). Я пытаюсь передать прошивку через сокет в двоичном виде, этот процесс правильный, я также добавляю байт идентификатора (чтобы знать, что я нахожусь в обновлении) и следующий, чтобы знать, является ли он последним, в заключение я добавляю байт в конце в результате вычисления контрольной суммы кадра.

На обоих концах я проверяю контрольную сумму и объем данных, но получаю следующую ошибку:

Преждевременное завершение: res:0, pos:864256/1966080

Наиболее актуальный код и следы отладки:

esp_err_t Updater::handleUpdateData(const uint8_t *data, size_t length) { //отладка переменных. статический int k; статический int j; если (!isUpdateInProgress) { logger().log("Неустранимая ошибка, обновление не запущено", debug_info_t::WARNING_D); вернуть ESP_FAIL; } если (длина 10048 ..... I/futter (5132): пакет 85 => 864128 I/futter (5132): пакет 86=> 865712 Отладочные трассировки на стороне ESP32: [ИНФО]: Пакет 0 записан => 10048 [ИНФО]: всего=>10048 .... [ИНФО]: Packet85 записан => 10048 [ИНФО]: всего=> 864128 [ИНФО]: Packet86 записан => 1584 [ИНФО]: всего=> 865712 Просмотр свойств моего файла прошивки.bin по данным проводника ОС (liux), прошивка занимает 865712 байт.

Поэтому я получаю следующее сообщение об ошибке: [ 19662][E][Updater.cpp:284] end(): преждевременное завершение: res:0, pos:864256/1966080

1456 байт потеряно, и я не понимаю, почему.

Если кто-нибудь сможет мне помочь, буду очень благодарен.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»