Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый Сегодня, 13:47
Новичок на форуме
Отправить личное сообщение для xovataj129 Посмотреть профиль Найти все сообщения от xovataj129
 
Регистрация: 28.08.2026
Сообщений: 1

Как правильно обрабатывать фрагментацию буфера и блокировку потока в Web Serial API п
Всем привет!
Пишу диагностическую панель в браузере с использованием Web Serial API (плюс тестирую аналогичный сервис на Node.js через serialport) и столкнулся с неприятной проблемой фрагментации бинарных потоков и зависания reader-локов. Надеюсь, кто-то из опытных коллег уже набивал шишки на стыке фронтенда и работы с железом.
Немного контекста: мы собираем в лаборатории тестовый стенд для снятия телеметрии с микроконтроллеров. Физически все это подключено через целый ворох компьютерных и сетевых кабелей — самодельные переходники RS-485/USB, различные сервисные патч https://serverorbit.com/cables/miscellaneous -корды и витые пары для снятия сигналов с датчиков. Контроллеры непрерывно шлют пакеты телеметрии (фиксированные фреймы по 32 байта) по последовательному интерфейсу на скорости 115200 бод.
Основная проблема в том, что чанки из ReadableStream в браузере приходят произвольными кусками и совершенно не привязаны к границам наших пакетов. В зависимости от таймингов ОС и буферизации данных в кабеле, в одном read() может прийти 12 байт, а в следующем — 52 байта, содержащих остаток прошлого пакета и начало нового.
Сейчас базовый цикл чтения выглядит примерно так:
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно отслеживать изменения в API запросе? Redline Node.JS 0 16.12.2022 09:28
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20