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

Прошивка TCP2UART переходника с настройкой по Web

Midnight

New member
Там ожидание набора до размера буфера стоит в 50 ms.
Вот у меня и выходит, что-то около того: дельта времени между отправленным пакетом от клиента и принятым клиентом от устройства около 60мс. Хотя тут у меня, если честно, сомнения есть. Когда я вместо устройства запустил скрипт, который эмулирует микроконтроллер и сразу на запрос клиента шлёт ответ - такой задержки не было(хотя пробовал я один раз, может чего не того увидел:) ). Вот я и не знаю, где собака зарыта, т.к. с другой стороны по проводу никаких заминок не наблюдалось...

50мс, т.е. если через 50мс ничего не приходит, буфер уходит по wifi и точно также в обратную сторону - по usart'y?
1. Я могу самостоятельно поэкспериментировать с данной паузой, а где именно не подскажите:)?
2. У меня на stm контроль принимаемых байт сделан через таймер, можно и через спец регистр uart'a. Вы не пробовали, как по modbus rtu контроль тишины на 3,5 символа сделать?

P.S. ни в коем разе не берусь что-то советовать, просто интересуюсь.
 

pvvx

Активный участник сообщества
Вот у меня и выходит, что-то около того: дельта времени между отправленным пакетом от клиента и принятым клиентом от устройства около 60мс. Хотя тут у меня, если честно, сомнения есть. Когда я вместо устройства запустил скрипт, который эмулирует микроконтроллер и сразу на запрос клиента шлёт ответ - такой задержки не было(хотя пробовал я один раз, может чего не того увидел:) ). Вот я и не знаю, где собака зарыта, т.к. с другой стороны по проводу никаких заминок не наблюдалось...

50мс, т.е. если через 50мс ничего не приходит, буфер уходит по wifi и точно также в обратную сторону - по usart'y?
1. Я могу самостоятельно поэкспериментировать с данной паузой, а где именно не подскажите:)?
2. У меня на stm контроль принимаемых байт сделан через таймер, можно и через спец регистр uart'a. Вы не пробовали, как по modbus rtu контроль тишины на 3,5 символа сделать?

P.S. ни в коем разе не берусь что-то советовать, просто интересуюсь.
При отправке одного блока TCP задержка у приемной стороны равны 200ms. Т.е. если, к примеру, мы передает 10 раздельных байт, то они придут через 2 сек, с паузами между подтверждениями пакетов в 200 ms. Можно передать их быстрее, но если последний пакет одиночный в окне стека, то будет пауза на его подтверждение от приемника в 200ms. Такова реализация TCP стека от Микрософт и стоит на многих устройствах (особенно windows, но есть программное переключение - зависит от автора ПО). Жалуйтесь им :)
 

oleg_777

New member
Уважаемый автор прошивки, молю вас очень сильно, можете ли вы данную паузу сделать настраиваемоей в web интерфейсе. Боюсь я с компиляцией не справлюсь. Готов заплатить деньги. Просто мне позарез нужна минимальная задержка в моих устройствах, да и другим таким как я тоже. Можно сделать ее в диапазоне 10-200 мс.

Если вы это сделаете я просто молиться на вас буду.

П.С. В своих программах я применяю TCP_NODELAY к драйверу.
 

pvvx

Активный участник сообщества
Уважаемый автор прошивки, молю вас очень сильно, можете ли вы данную паузу сделать настраиваемоей в web интерфейсе. Боюсь я с компиляцией не справлюсь. Готов заплатить деньги. Просто мне позарез нужна минимальная задержка в моих устройствах, да и другим таким как я тоже. Можно сделать ее в диапазоне 10-200 мс.

Если вы это сделаете я просто молиться на вас буду.

П.С. В своих программах я применяю TCP_NODELAY к драйверу.
Исходники для прошивки без задержки уже недавно положены в гит... c VERSION "0.5.8"
Комменты по данному поводу, начиная с этого соо:
http://esp8266.ru/forum/threads/raz...o-webservera-na-esp8266.56/page-66#post-15549
И далее:
Новая версия алго в TCP2UART уже в git. При скорости 1 мегабит у меня не выставляет RTS/CTS - успевает и так. При 3 Mегабита - только когда поток в две стороны, то не появляется RTS/CTS, но дырки есть - тоже какие-то китай задержки периодически происходят и ломают равномерность.
Все паузы наборов буферов выкинуты. Передает как приходит блок по UART - сразу после обнаружения паузы в 3 символа (при более 19200 - 1 ms, и так до 500000, потом аппаратного счетчика не хватает и пауза уменьшатся в пропорции от скорости UART). Если байты передаются типа постоянно по одному с паузами, то тут уж ничего не поделать и разбивка на пакеты убивается, но попытки это сделать остаются. Иначе не уложиться в трафик TCP.

Вот данные по скорости, при:

C компа по TCP передается 1 символ и он выходит на UART ESP и принимается обратно (включен LoopBack - к выходу TX подключен RX) и отсылается обратно на комп:

Соединение через свисток USB-WiFi
(название "Wi-Pi") в компе к AP ESP8266, прошивка TCP2UART v0.5.8, скорость 930232 Buad, LoopBack enable: On, :
LoopBackAP.gif
Транзакция: 1.8..5.2 ms, средняя к 2 ms.

Соединение через роутер на LAN
(название "ASUS RT-N56U") c AP, ESP8266 станция и подключена к общей сети, прошивка TCP2UART v0.5.8, скорость 930232 Buad, LoopBack enable: On, :
LoopBackST.gif
Транзакция: 1.3..3.2 ms, средняя к 2 ms.

Время передачи символа по UART плюс примерно ~500us (при 920600) на анализ паузы = 10/930232 + 0.0005 = 0.000511 сек. Время передачи Комп-WiFi-ESP (и обратно ESP-WiFi-Комп) = (2 - 0.000511)/2 = около 1 ms.

С десятого раза только сосчитал и поправил... :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
А где тот git? Я похоже чего то пропустил.
Первое соо темы или в первом соо Разработка ‘библиотеки’ малого webсервера на esp8266.
Все пути ведут туда. Готовых полных прошивок v0.5.8 пока нет, т.к. новый алго не оттестирован до конца и пока нет времени и желания делать "предрелиз" с готовым fullflash - старый для данной темы проверен и работает... Транслируйте исходники.
 
Последнее редактирование:

Alex

Member
Первое соо темы или в первом соо Разработка ‘библиотеки’ малого webсервера на esp8266.
Все пути ведут туда. Готовых полных прошивок v0.5.8 пока нет, т.к. новый алго не оттестирован до конца и пока нет времени и желания делать "предрелиз" с готовым fullflash - старый для данной темы проверен и работает... Транслируйте исходники.
Это то я знаю. Но там последняя активность недельной давности. А Вы в понедельник писали что еще не выкладывали. Тут я и "заблудился" :)
 

pvvx

Активный участник сообщества
Это то я знаю. Но там последняя активность недельной давности. А Вы в понедельник писали что еще не выкладывали. Тут я и "заблудился" :)
esp8266web/user_config.h at master · pvvx/esp8266web · GitHub [HASHTAG]#define[/HASHTAG] SYS_VERSION "0.5.8"
----------
Значит не там обновил. Счас будет "0.5.9" ...
 

pvvx

Активный участник сообщества
Заодно и здесь стоило бы, а то там до сих пор 0.5.7а и 4 коммита.
На то у меня сил сегодня не хватит. Слишком много активных проектов, разных процессоров и прочего (не в гит по ESP, а тут у меня дома в отладке) и уже заблудился в них. Я там такого нагорожу... :) Лимит на сегодня с MCU/CPU/DSP и прочим написанием под них исчерпан...
 

Alex

Member
А можно попросить какой нибудь пример работы с SPI slave. Можно под IRAMSDK. А то от всего что есть крыша потекла.
 

pvvx

Активный участник сообщества
А можно попросить какой нибудь пример работы с SPI slave. Можно под IRAMSDK. А то от всего что есть крыша потекла.
В этом точно запутаетесь RamWorldHSPI.zip: RamWorldHSPI.zip но это отлаживал: Подключение датчиков типа 10-DOF - акселерометр, гироскоп, магнитометр, температура, давление...
а другого пока нет.
 

oleg_777

New member
Спасибо огромное, вы меня просто спасли. А пауза в 3 символа это вообще прелесть. Все буду ждать полную прошивку.

Но лучше отдохните, а то другого такого классного профи, нам не найти. ;)
 
Последнее редактирование:

shaman1010

Member
Сегодня возился со скомпиленной прошивкой, и случайно отловил TCP2UART connection от 120.227.254.63:1
Это китайцы.... ОПС...

p.s. хотя, похоже, какой-то баг. При обновлении WEBFiles.bin и до перезагрузки модуля появляются фантомные соединения.
 
Последнее редактирование:

TheEvilGenius

New member
На 0.59 сбрасываются настройки tcp uart. Получается указать только порт.
Зы. В чем отличие Modbus и tcp2uart?
На 0.54а мост между двумя есп образуется только если одна ST+AP, а другая ST. При этом, через некоторое время происходит разрыв. Модуль 01, все ноги подтянуты к 3.3в через 10 ком резисторы
 
Последнее редактирование:

pvvx

Активный участник сообщества
На 0.59 сбрасываются настройки tcp uart. Получается указать только порт.
Перепутаны данные дисков в тех прошивках. Вроде исправил - закинул новые.
Зы. В чем отличие Modbus и tcp2uart?
В предназначении. Одно для tcp2uart, второе для modbus rs-485 :)
На 0.54а мост между двумя есп образуется только если одна ST+AP, а другая ST. При этом, через некоторое время происходит разрыв. Модуль 01, все ноги подтянуты к 3.3в через 10 ком резисторы
Мало данных - что и куда разрывается, да когда?
 

shaman1010

Member
Перепутаны данные дисков в тех прошивках. Вроде исправил - закинул новые.
Вроде-б то 0.5.9 270216 вчера закидывал. Там фантомные подключения на TCP2UART светятся. На гите тоже 3 дня ничего не менялось. Подключения остаются не только при обновлении WEB интерфейса, но и при открытии/закрытии соединения. Периодически, то дублируется IP:порт из WEB подключения, то изменяются то на китай, то на domru.ru. Что-то там лишнее втисалось.
059.png
059_2.png
 
Последнее редактирование:

pvvx

Активный участник сообщества
Вроде-б то 0.5.9 270216 вчера закидывал. Там фантомные подключения на TCP2UART светятся. На гите тоже 3 дня ничего не менялось.
Ну перепутаны были данные для дисков и прошивки. А что там из этого каши выйдет - не знаю. Если ещё прошивать разные сами прошивки (tcp2uart/modbus), но не стирать область сохранения настроек, то тоже каша будет.
 

shaman1010

Member
Ну перепутаны были данные для дисков и прошивки. А что там из этого каши выйдет - не знаю. Если ещё прошивать разные сами прошивки (tcp2uart/modbus), но не стирать область сохранения настроек, то тоже каша будет.
Там точно были перепутаны веб интерфейсы в фуллфлешах.
Т.е. сегодня стоит перекачать? (просто светится, что 3 дня там ничего не менялось, отсюда и вопрос)
 
Сверху Снизу