Онлайн-отладчик последовательного порта
Браузерный инструмент отладки последовательного порта - не требует загрузки, мониторинг в реальном времени через Web Serial API
Подключение
Монитор данных
Отправить данные
История отправки
Статистика
Документация отладчика последовательного порта
Как использовать этот инструмент
- Подключите последовательное устройство к компьютеру
- Настройте параметры подключения (скорость передачи, биты данных, четность, стоп-биты)
- Нажмите "Подключить" для установления последовательного соединения
- Отслеживайте получаемые данные в реальном времени
- Отправляйте данные в текстовом формате или формате HEX
- Используйте историю отправки для повторения предыдущих команд
- Просматривайте статистику подключения и скорость передачи данных
Параметры подключения
Принципы реализации
Этот инструмент реализован с использованием Web Serial API, современного интерфейса браузера, который позволяет веб-приложениям напрямую взаимодействовать с последовательными устройствами. Ниже приведены основные детали реализации:
Основной API: Web Serial API
Инструмент построен на основе Web Serial API, который предоставляет JavaScript-интерфейсы для доступа к последовательным портам через браузер.
Основные функции:
- Собственный доступ браузера к последовательному порту без установки драйверов или плагинов
- Поддержка нескольких конфигураций последовательного порта (скорость передачи, биты данных, четность, стоповые биты, управление потоком)
- Двунаправленная передача данных с использованием Readable/Writable Streams
- Асинхронные операции на основе Promises и async/await
Шаги реализации
1. Запрос доступа к последовательному порту
const port = await navigator.serial.requestPort();
Используйте navigator.serial.requestPort(), чтобы попросить пользователя выбрать устройство последовательного порта. Это требует взаимодействия с пользователем для обеспечения безопасности.
2. Настройка и открытие порта
await port.open({
baudRate: 9600,
dataBits: 8,
parity: 'none',
stopBits: 1,
flowControl: 'none'
});
Вызовите метод port.open() с параметрами конфигурации, включая скорость передачи, биты данных, четность, стоповые биты и управление потоком.
3. Чтение данных
const reader = port.readable.getReader();
while (true) {
const { value, done } = await reader.read();
if (done) break;
// Обработка полученных данных (Uint8Array)
const text = new TextDecoder().decode(value);
}
Получите reader из port.readable и используйте асинхронный цикл для непрерывного чтения данных. Полученные данные находятся в формате Uint8Array и должны быть декодированы с помощью TextDecoder.
4. Отправка данных
const writer = port.writable.getWriter();
const encoder = new TextEncoder();
const data = encoder.encode('Hello Serial!');
await writer.write(data);
Получите writer из port.writable, используйте TextEncoder для преобразования строк в Uint8Array, затем вызовите writer.write() для отправки данных.
5. Закрытие соединения
await reader.cancel();
await reader.releaseLock();
await writer.releaseLock();
await port.close();
Перед закрытием освободите блокировки reader и writer, затем вызовите port.close() для закрытия соединения с последовательным портом.
Используемые ключевые API
-
navigator.serial.requestPort() - Запрос у пользователя выбора последовательного порта -
port.open(options) - Открытие последовательного порта с конфигурацией -
port.readable.getReader() - Получение reader потока чтения -
port.writable.getWriter() - Получение writer потока записи -
reader.read() - Чтение данных из последовательного порта -
writer.write(data) - Запись данных в последовательный порт -
TextDecoder / TextEncoder - Преобразование между строками и массивами байтов -
port.addEventListener('disconnect') - Прослушивание событий отключения устройства
Справочная информация официальной документации
Ключевые возможности
Web Serial API
Прямой доступ браузера к последовательным портам без дополнительного программного обеспечения
Мониторинг в реальном времени
Мониторинг данных в реальном времени с поддержкой временных меток и автопрокрутки
Режим HEX
Отправка и получение данных в шестнадцатеричном формате с проверкой
История отправки
Отслеживание и повтор ранее отправленных команд
Статистика
Мониторинг скорости передачи данных и времени подключения
Многоязычность
Поддержка китайского, английского, японского, французского и испанского языков
Распространенные случаи использования
Разработка и отладка
- Разработка Arduino и ESP32
- Отладка встраиваемых систем
- Разработка и тестирование прошивки
- Настройка устройств IoT
Тестирование и связь
- Тестирование AT-команд для модемов
- Мониторинг данных датчиков
- Анализ и отладка протоколов
- Связь с промышленными устройствами
Поддержка браузеров и требования
Поддерживаемые браузеры
- Chrome 89+
- Edge 89+
- Firefox (не поддерживается)
- Safari (не поддерживается)
Требования
- Браузер на основе Chromium с поддержкой Web Serial API
- HTTPS-соединение (требуется для Web Serial API)
- Разрешение пользователя на доступ к последовательным портам
- Установлены совместимые драйверы последовательных устройств
Связанные стандарты и спецификации
Для получения дополнительной информации: Документация стандартов протокола RS-232 и UART в Википедии
Связанные инструменты
CRC Калькулятор
Вычисление контрольных сумм CRC-8, CRC-16, CRC-32, CRC-64 с поддержкой Modbus, CCITT и других стандартов протоколов
Конвертер систем счисления
Конвертация между двоичной, восьмеричной, десятичной и шестнадцатеричной системами с поддержкой произвольных оснований (2-36)
Конвертер временных меток
Преобразование между Unix временными метками и читаемыми датой/временем
Текстовый инструментарий
Полный набор инструментов для работы с текстом с счетчиком слов, извлечением данных, разделением/объединением, фильтрацией строк, операциями с префиксами/суффиксами
Конвертер кодировок
Преобразование кодировки текста между UTF-8, GBK, Big5, Shift_JIS, ISO-8859, кодовыми страницами Windows с автоопределением
Regex-Тестер
Тестирование и отладка регулярных выражений с мгновенными результатами совпадений