Электросексом E-stim 2B можно управлять с компьютера через соединительный кабель Digital link. Стандартная программа для управления прибором – Commander. Протокол обмена с прибором не скрывается производителем. Можно разработать свой софт или собрать устройство на базе Arduino для управления E-stim 2B.
Этот пост поможет понять несложные принципы обмена командами с электростимулятором. Для изучения воспользуемся парой простых утилит. Первая программа, которую следует запустить, это сам Commander.
Программа Commander отправляет на E-stim строку с командой. E-stim исполняет команду, устанавливает новый режим или уровень, и отвечает компьютеру строкой с параметрами своего состояния. Commander содержит встроенный Монитор, который позволяет наглядно наблюдать за обменном данными.
Для работы с Commander, возможно, на самом E-stim потребуется переключить настройку с «Commander Off» на «Commander On». Зависит от версии прошивки на приборе.
Монитор вызывается из главного меню Commander «View -> Activity Window» или нажатием комбинации «Cntl + A».
Изменим в Commander режим на Wave (область Program Mode).
На 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 означает пришедшие с прибора данные. Неважно, что с прибора приходят две строки текста, они склеиваются и рассматриваются как одна строка.
Если отбросить лишнюю информацию, то на E-stim была отправлена команда:
M5
Получена была строка:
754:0:0:100:100:5:L:0:2.105
Обмен с E-stim очень простой. Отправляется команда длиной от 1-го до 3-х символов, приходит строка состояния в одном и том же формате; позиции состояния прибора разделены двоеточием.
Стоит поиграться с элементами управления в программе Commander, и посмотреть на обмен в окне Монитора.
Монитор в Commander позволяет только наблюдать за обменом, но не посылать самостоятельно текстовые команды на E-stim.
Возможность посылать свои команды дает программа SerialTest. Утилита специально выпущена производителем E-stim для изучения протокола обмена. Скачать SerialTest можно тут.
Закройте Commander и запустите SerialTest. Выберите порт и нажмите на Connect.
Отправив команду 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, важно ещё знать три вещи:
- E-stim 2B поддерживает работу только на скорости 9600 бит/c (9600 8N1), именно на этой скорости и надо делать коннект.
- Команда, отправляемая на E-stim, обязательно должна завершаться символом CR — перевод каретки. Код символа ASCII – 13.
- Ответ строкой состояния от E-stim всегда завершается символом LF — перевод строки. Код символа ASCII – 10.
Утилита SerialTest автоматически добавляет к каждой отправленной команде символ перевод каретки CR. Заметить, что строка от E-stim завершается символом перевода строки, можно в окне Монитора программы Commander: 754:0:0:100:100:5:L:0:2.105x10
На этом закончу. Полученных сведений уже достаточно для собственной разработки. Очень жду ваших комментариев…