Протестировал работу на одновременные запросы.
Сделал страницу запрашивающую по ajax с периодом от 200 до 300 мс. Открыл таких вкладок по 3 шт. в 3 разных браузерах. На странице сделал проверку принятых данных. Бывает раз в 1000 запросов, какой-либо запрос теряется, но не портиться и не вклинивается в другой, так что статус равен 0, и это можно обработать.
Я прекрасно понимаю pvvx в вопросе надежности таких вещей, но т.к. uart не подрузамевает многопользовательскую работу, то и такой результат более чем достаточен, если другого способа нет.
В моих устройствах в протоколе uart используется подобие modbus (только без адресации), поэтому целостность данных более менее проверяема.
Также можно вставить код на проверку открытого канала tcp2uart и не выполнять ajax запросы если он открыт.
Это решение мне подходит тем, что у моих устройств уже есть каналы общения с пользователем:
1) Родной экран и кнопки
2) USB-UART-TTL переходник
3) Bluetooth переходник
А теперь еще и WiFi ESP8266, так что меня устраивает.
Также вопрос к pvvx:
Если сервер парсить страницу (1), то в это время если поступает другой запрос, сервер одновременно начинает парсить и эту страницу (2) или ждет окончания парсинга страницы (1).
Т.е. ос вытесняющая или другая?
Как можно задействовать мьютексы?
И что происходить, если в коде парсинга встречается os_delay_us ?
Я использовал файл web_int_callbacks.c от версии 0.6.2 а при коммите он у вас вырезал ваш код add uart_ajax @oleg_777 · pvvx/esp8266web@8ac1fde · GitHub
Вот прикрепил правильный файл.