Две утилитки для исследования протоколов обмена по UART в самокате (под Windows). Писались ситуационно, лень было битики в уме считать. На какую то законченность не претендуют. Все возможные протоколы не поддерживают (только два).
   К UART шине удобно подключаться через USB-UART платки переходники, их сейчас много доступно на любой вкус. После установки драйверов (см. чип на платке) появится виртуальный COM порт, через него утилитки и работают. Если в вашем компьютере есть встроенный COM порт, можно его использовать плюс плату преобразователя уровней. Только не подключайте COM порт напрямую - выжгите порты у контроллеров.
Адаптеры

imBK.exe - имитатор бортового компьютера.
Подключается к КМ вместо БК самоката.
imKM.exe - имитатор контроллера мотор-колеса.
Подключается к БК вместо КМ самоката.
Окно imBK Окно imKM

Окно утилит разделено чертой на две половины. Верхняя относится к приемному Rx, нижняя к передающему Tx каналу имитатора.

Декодер одно из трех:

Connect - соединение с USB-UART адаптером через его COM порт. Номер предварительно нужно выбрать в поле выше этой кнопки. Если порт доступен, ниже кнопок отобразится "Соединение установлено", порт захватит данная утилита. Если отобразится "Нет доступа" то или COM порта с таким номером нет, или он блокируется другим программным обеспечением. Если в выпадающем списке "Декодер" выбрано "Halten RS" или "QS-S4" скорость COM порта будет выбрана автоматически в соответствии с протоколом обмена. Если выбрано "Неизвестный (test)" то скорость обмена нужно выбирать вручную. Для этого (после коннекта) кликните в левой части заголовка программы левой кнопкой мыши (или по заголовку в центре правой) и выберите в системном меню "Скорость...".
системное меню   выбор скорости

Disconnect - освобождает захваченный COM порт. После чего, его можно использовать в другой программе не закрывая текущую утилиту.

Ед. чтен. - чтение одного пакета, после чего прием останавливается.

Чтен. до измен. - сначала одиночное чтение, потом чтение до изменения содержимого пакета, после чего прием останавливается. Инкрементный байт и CRC за изменение не считаются. Отобразятся первый и измененный пакет.

Авто чтен. - Непрерывный прием. Отображается правда не каждый пакет (не успеть все отрисовать, будет плохо видно). Для остановки непрерывного чтения, можно нажать "Ед. чтен.".

В файл 60s - В течении минуты все принимаемые пакеты будут записываться в файл без пропуска пакетов. Файл будет создан в директории, где располагается утилита, с именем km_цифирки.txt или bk_цифирки.txt, в циферках дата и время. Начало имени по названию источника данных (не утилиты).

Любое чтение будет остановлено если поток данных прервется на несколько секунд (останов по таймауту).


Имитировать ответ - включает/отключает передачу по Tx каналу от имитатора.

ВНИМАНИЕ: Старт передачи начинается не с установки галочки, а при нажатии кнопок "Ед. чтен.", "Чтен. до измен." или "Авто чтен." если галочка установлена. А вот прекращение передачи будет сразу по снятии галочки. Передача ведется непрерывно, после старта пока галочка активна, даже если прием остановился.

Начальный шаблон - очищайте это поле если хотите чтобы выходной пакет сформировался автоматически.

Однако, не все битики в протоколе опознаны. Остановите передачу. Теперь вы сможете в поле "Начальный шаблон" изменить любой байт как захотите, после старта передачи будет использоваться измененный шаблон. CRC в поле писать не надо.

Download: im.7z.