• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP32 Arduino core socket

Alex_Tim

New member
Всем привет!
Такой вопрос. Написан tcp сервер на python, клиент на arduino. Но случается такая ерунда при частных запросах иногда.
Сервер посылает клиенту сообщение. Например (ABCDEFGH\n). ESP32 читает из сокета с помощью функции client.readStringUntil('\n');
В канале скапливается очередь из таких сообщений.
И бывает такое что сообщение читается не корректно. Вместо ABCDEFGH резульат получается ABCABCDEFGH
Счем это может быть связано
ведь tcp обязательно последовательно байты передает
 

nikolz

Well-known member
и они в буфере приема накапливаются а буфер не бесконечный. Может в этом причина?
или глюк в винегрете из питона и ардуины.
 

Alex_Tim

New member
и они в буфере приема накапливаются а буфер не бесконечный. Может в этом причина?
или глюк в винегрете из питона и ардуины.
Да накопление есть. Ладно бы пропадали данные, а получается что он их не правильно читает.
 

Alex_Tim

New member
и они в буфере приема накапливаются а буфер не бесконечный. Может в этом причина?
или глюк в винегрете из питона и ардуины.
Хотя да в этом действительно может быть причина. Так как та часть что повторяется есть у всех предыдущих сообщений. Видимо одно из сообщений не передается до конца из-за чего происходит такая проблема. Буду формировать что-то типо флагов. Спасибо
 

CodeNameHawk

Moderator
Команда форума
Alex_Tim, добавьте символы начала и конца посылки, легко отбросите неполные посылки.
 
Сверху Снизу