<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Javascript-форум - Оффтопик</title>
		<link>https://javascript.ru/forum</link>
		<description>Разные интересные топики ;)</description>
		<language>ru</language>
		<lastBuildDate>Tue, 08 Sep 2026 14:48:36 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>1</ttl>
		<image>
			<url>https://javascript.ru/forum/images/ca_serenity/misc/rss.jpg</url>
			<title>Javascript-форум - Оффтопик</title>
			<link>https://javascript.ru/forum</link>
		</image>
		<item>
			<title>Как правильно обрабатывать фрагментацию буфера и блокировку потока в Web Serial API п</title>
			<link>https://javascript.ru/forum/showthread.php?t=87032&amp;goto=newpost</link>
			<pubDate>Fri, 28 Aug 2026 10:47:56 GMT</pubDate>
			<description><![CDATA[Всем привет!
Пишу диагностическую панель в браузере с использованием Web Serial API (плюс тестирую аналогичный сервис на Node.js через serialport) и столкнулся с неприятной проблемой фрагментации бинарных потоков и зависания reader-локов. Надеюсь, кто-то из опытных коллег уже набивал шишки на стыке фронтенда и работы с железом.
Немного контекста: мы собираем в лаборатории тестовый стенд для снятия телеметрии с микроконтроллеров. Физически все это подключено через целый ворох компьютерных и сетевых кабелей — самодельные переходники RS-485/USB, различные сервисные патч <a href="https://serverorbit.com/cables/miscellaneous" target="_blank" rel="nofollow">https://serverorbit.com/cables/miscellaneous</a> -корды и витые пары для снятия сигналов с датчиков. Контроллеры непрерывно шлют пакеты телеметрии (фиксированные фреймы по 32 байта) по последовательному интерфейсу на скорости 115200 бод.
Основная проблема в том, что чанки из ReadableStream в браузере приходят произвольными кусками и совершенно не привязаны к границам наших пакетов. В зависимости от таймингов ОС и буферизации данных в кабеле, в одном read() может прийти 12 байт, а в следующем — 52 байта, содержащих остаток прошлого пакета и начало нового.
Сейчас базовый цикл чтения выглядит примерно так:]]></description>
			<content:encoded><![CDATA[<div>Всем привет!<br />
Пишу диагностическую панель в браузере с использованием Web Serial API (плюс тестирую аналогичный сервис на Node.js через serialport) и столкнулся с неприятной проблемой фрагментации бинарных потоков и зависания reader-локов. Надеюсь, кто-то из опытных коллег уже набивал шишки на стыке фронтенда и работы с железом.<br />
Немного контекста: мы собираем в лаборатории тестовый стенд для снятия телеметрии с микроконтроллеров. Физически все это подключено через целый ворох компьютерных и сетевых кабелей — самодельные переходники RS-485/USB, различные сервисные патч <a href="https://serverorbit.com/cables/miscellaneous" target="_blank" rel="nofollow">https://serverorbit.com/cables/miscellaneous</a> -корды и витые пары для снятия сигналов с датчиков. Контроллеры непрерывно шлют пакеты телеметрии (фиксированные фреймы по 32 байта) по последовательному интерфейсу на скорости 115200 бод.<br />
Основная проблема в том, что чанки из ReadableStream в браузере приходят произвольными кусками и совершенно не привязаны к границам наших пакетов. В зависимости от таймингов ОС и буферизации данных в кабеле, в одном read() может прийти 12 байт, а в следующем — 52 байта, содержащих остаток прошлого пакета и начало нового.<br />
Сейчас базовый цикл чтения выглядит примерно так:</div>

]]></content:encoded>
			<category domain="https://javascript.ru/forum/forumdisplay.php?f=27">Оффтопик</category>
			<dc:creator>xovataj129</dc:creator>
			<guid isPermaLink="true">https://javascript.ru/forum/showthread.php?t=87032</guid>
		</item>
	</channel>
</rss>
