Интерфейс управления E-Stim 2B

Электросексом E-stim 2B можно управлять с компьютера через соединительный кабель Digital link. Стандартная программа для управления прибором – Commander. Протокол обмена с прибором не скрывается производителем. Можно разработать свой софт или собрать устройство на базе Arduino для управления E-stim 2B.

Этот пост поможет понять несложные принципы обмена командами с электростимулятором. Для изучения воспользуемся парой простых утилит. Первая программа, которую следует запустить, это сам Commander.

Окно программы Commander E-stim
Окно программы Commander E-stim

Программа Commander отправляет на E-stim строку с командой. E-stim исполняет команду, устанавливает новый режим или уровень, и отвечает компьютеру строкой с параметрами своего состояния. Commander содержит встроенный Монитор, который позволяет наглядно наблюдать за обменном данными.

Для работы с Commander, возможно, на самом E-stim потребуется переключить настройку с «Commander Off» на «Commander On». Зависит от версии прошивки на приборе.

Монитор вызывается из главного меню Commander «View -> Activity Window» или нажатием комбинации «Cntl + A».

Меню вызова Монитора в программе Commander
Меню вызова Монитора в программе Commander

Изменим в Commander режим на Wave (область Program Mode).

Установка режима Wave в Commander
Установка режима Wave в Commander

На E-stim тотчас же установится режим Wave, а в окне Монитора отобразится примерно следующее:

18.02.2018 16:50:47 sTx:M5
18.02.2018 16:50:47 sRx:[754:0:0:100:100:]
18.02.2018 16:50:47 sRx:[5:L:0:2.105×10]
18.02.2018 16:50:47 *754:0:0:100:100:5:L:0:2.105×10*
18.02.2018 16:50:47 Display Parsed

Префикс sTx означает, что это команда была отправлена с компьютера на прибор, sRx означает пришедшие с прибора данные. Неважно, что с прибора приходят две строки текста, они склеиваются и рассматриваются как одна строка.

Окно Монитора в программе Commander
Окно Монитора в программе Commander

Если отбросить лишнюю информацию, то на E-stim была отправлена команда:
M5

Получена была строка:
754:0:0:100:100:5:L:0:2.105

Обмен с E-stim очень простой. Отправляется команда длиной от 1-го до 3-х символов, приходит строка состояния в одном и том же формате; позиции состояния прибора разделены двоеточием.

Стоит поиграться с элементами управления в программе Commander, и посмотреть на обмен в окне Монитора.

Программа Commander и окно Монитора
Программа Commander и окно Монитора

Монитор в Commander позволяет только наблюдать за обменом, но не посылать самостоятельно текстовые команды на E-stim.

Возможность посылать свои команды дает программа SerialTest. Утилита специально выпущена производителем E-stim для изучения протокола обмена. Скачать SerialTest можно тут.

Закройте Commander и запустите SerialTest. Выберите порт и нажмите на Connect.

Окно программы SerialTest
Окно программы SerialTest

Отправив команду A10, получим строку 756:20:0:100:100:8:L:0:2.105, при этом уровень канала А на приборе установится в 10 единиц.

Если дать команду M3, то на приборе установиться режим Split, а прибор ответит строкой 756:0:0:100:100:3:L:0:2.105.

Полный список возможных команд и «расшифровку» строки состояния я дам в одной из следующих публикаций.

Можно заметить, что в SerialTest данные с прибора приходят не одной строкой, а бьются на две или три. Это обусловлено тем, что SerialTest считывает данные быстрее, чем E-stim отправляет их в буфер обмена. Небольшая проблема, просто в реальном приложении надо будет встроить некоторую задержку считывания буфера.

Посылать команд в E-stim не обязательно через SerialTest, можно использовать и любую другую терминальную программу, например, тот же монитор порта Arduino IDE.

Окно Монитора порта в Arduino IDE
Окно Монитора порта в Arduino IDE

Для разработки собственной программы или устройства на базе Arduino, важно ещё знать три вещи:

  1. E-stim 2B поддерживает работу только на скорости 9600 бит/c (9600 8N1), именно на этой скорости и надо делать коннект.
  2. Команда, отправляемая на E-stim, обязательно должна завершаться символом CR — перевод каретки. Код символа ASCII – 13.
  3. Ответ строкой состояния от E-stim всегда завершается символом LF — перевод строки. Код символа ASCII – 10.

Утилита SerialTest автоматически добавляет к каждой отправленной команде символ перевод каретки CR. Заметить, что строка от E-stim завершается символом перевода строки, можно в окне Монитора программы Commander: 754:0:0:100:100:5:L:0:2.105x10

На этом закончу. Полученных сведений уже достаточно для собственной разработки. Очень жду ваших комментариев…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *