Все команды отправляются от клиента к хабу. Каждая команда получает асинхронный ответ со значимым кодом. Когда это возможно, ошибки отправляются со строковыми сообщениями об ошибках.
Далее рассмотрим команды для управления акселерометром (тип: accelerometer). Для того чтобы остановить или запустить акселерометр, надо выполнить команды: action – start или action - stop. Запуск акселерометра актуален только для плат Ganglion и в версии программного обеспечения v1.0.0.
Например, посылается команда {"type":"accelerometer", "action": "start"}.
Вслучае успешного выполнения приходит ответ: {"type":"accelerometer", "action": "start", "code": 200}. В случае неудачи приходит ответ следующего содержания: {"type":"accelerometer", "action": "start", "code": 416, "message": "string error message"}.
Остановка акселерометра тоже полезна только для плат Ganglion.
Например, отправляется команда вида {"type":"accelerometer", "action": "stop"}.
Вслучае успешного выполнения будет получен ответ: {"type":"accelerometer", "action": "stop", "code": 200}. В случае невыполнения команды будет получен следующий ответ: {"type":"accelerometer", "action": "stop", "code": 417, "message": "string error message"}.
Далее рассмотрим команды установки типа платы (тип boardType). Команда устанавливает тип платы принудительно в соответствии с запрошенным пользователем типом платы, например, когда пользователь запрашивает использование платы Cyton в 16-канальном исполнении. Эта команда полезна только для плат Cyton из-за использования вместе с ними и плат Daisy .
Команда “boardType – cyton” служит для установки 8-канальной платы Cyton с версией прошивки v2.0.0. Команда при выполнении запроса выглядит следующим образом: {"type":"boardType", "boardType": "cyton"}. В случае успешного выполнения команды будет получен следующий ответ: {"type":"boardType", "boardType": "cyton", "code": 200}. В случае неудачи будет получен ответ: {"type":"boardType", "boardType": "cyton", "code": 421, "message": "string error message"}.
Команда “boardType – daisy” применяется для установки конфигурации 16-канальной платы Cyton с версией прошивки v2.0.0. Пример отправляемой команды следующий: {"type":"boardType", "boardType": "daisy"}. В случае успешного выполнения будет ответ: {"type":"boardType", "boardType": "daisy", "code": 200}. При неудаче будет следующий ответ: {"type":"boardType", "boardType": "daisy", "code": 421, "message": "string error message"}.
Далее рассмотрим команды настройки канала (тип channelSettings). Команды используются для настройки параметров канала на плате Cyton (с версией прошивки v2.0.0) с установленными протоколами WiFi или Serial.
Команда “action – start” используется для запуска синхронизации настроек канала. Её выполнение приводит к успешной настройке канала.
205
Пример отправляемой команды следующий: {"type":"channelSettings", "action": "start"}. В случае успеха выполнения команды выводится сообщение
{"type":"channelSettings", "action": "start", "code": 200}. При ошибке выполнения,
в случае, когда синхронизация установки канала уже выполняется, будет выведено сообщение {"type":"channelSettings", "action": "start", "code": 422, "message": "Sync in progress"}.
Команда “action – set” используется для установки канала для плат Cyton
или Ganglion через Wi-Fi канал.
Параметр “channelNumber” (номер_канала) нумеруется начиная с нуля, т.е. 0-7 или 0-15 для плат Cyton и Cyton + Daisy соответственно.
Параметр “powerDown” (выключить) имеет значение либо “true”, если канал выключен, либо “false”, если канал включен, как положено.
Параметр “gain” (коэффициент усиления) это целочисленное значение усиления: 1, 2, 4, 6, 8, 12, 24.
Параметр “inputType” (тип ввода) служит для выбора канала АЦП. Данный параметр это строка, которая должна быть одной из следующих: «normal», «shorted», «biasMethod», «mvdd», «temp», «testsig», «biasDrp», «biasDrn».
Параметр “bias” (смещение) устанавливает для входа конкретного канала некое смещение. Это число, на которое происходит смещение всех данных в канале при установленном значении “true”. При значении “false” данные с канала принимаются без смещения.
Параметр “srb2”, если выставлен как “true”, служит для установки соединения входа “P” соответствующего канала с выводом SRB2. Фактически происходит замыкание входа P и вывода SRB2 для данного канала, это позволяет входу P также оставаться подключенным к АЦП. Данный параметр это целое число, где значение “true” означает, что вход будет соединен с выводом SRB2 (по умолчанию). Значение “false” означает, что вход будет отключен от вывода SRB2.
Параметр “srb1” служит для подключения N входов всех каналов к выводу SRB1, если установлен в значение “true”. Параметр влияет на все N входы одновременно, подключая или отключая их одновременно от АЦП. Параметр это целое число, где значение “true” означает соединение всех N входов с выводом SRB1 и значение “false” означает отсоединение всех N входов от вывода SRB1 (значение “false” используется по умолчанию).
Ниже приведен пример использования параметров:
{
"action": "set",
"type": "channelSettings", "channelNumber": 3, "powerDown": false, "gain": 24,
"inputType": "normal", "bias": true,
206
"srb2": true, "srb1": false
}
После выполнения вышеприведенных команд будет получен следующий ответ в случае успеха: {"type":"channelSettings", "action": "set", "code": 200}. При невозможности выполнить команду будет дан ответ: {"type":"channelSettings", "action": "set", "code": 424, "message": "verbose error message here"} Ответ при неудачном разборе входных команд будет выглядеть следующим образом: {"type":"channelSettings", "action": "set", "code": 425, "message": "more verbose error message"}. Это означает, что ввод строки через запятую не содержал правильных позиций, и следует проверить синтаксис.
Команда “command” передает один символ или строку на подключенное устройство (с прошивкой версии v2.0.0). Синтатксис данной команды следующий: “command - *”. Команда использует для передачи через модуль на подключенную плату один или несколько символов. Режим мультипередачи ограничен 30-ю символами по WiFi и 19-ю по BLE.
Пример использования данной команды: {"type":"command", "command": "1"}. В случае успеха будет получен следующий ответ: {"type":"command", "command": "start", "code": 200}. При ошибке и невозможности записать команду на подключенное устройство будет выдано сообщение
{"type":"command", "command": "start", "code": 406, "message": "verbose error message"}. При сбое, когда протокол текущего устройства не выбран, будет сообщение {"type":"command", "command": "start", "code": 420, "message": "verbose error message"}.
Команда “Connect” (тип connect) осуществляет подключение к любому устройству с известным локальным именем или IP-адресом.
Параметр “name” (имя) это имя уникального локального USB-ключа для платы Cyton, периферийного устройства Ganglion или подключенного WiFi Shield.
Не обязательная команда “burst” применяется для использования пакетного режима. Она имеет значение либо “true”, либо “false”. Команда используется в том случае, если применяется протокол UDP.
Необязательная команда “sampleRate” представляет собой число, устанавливающее частоту запрошенной выборки, для подключенной платы Ganglion или Cyton. У платы Ganglion при этом должна быть прошивка не ниже версии v2.0.0, а у платы Cyton должна быть прошивка не ниже версии v3.0.0. Значение указывается в Гц и должно быть допустимой частотой дискретизации для выбранной платы.
Необязательная команда “latency” (задержка) это число, которое является задержкой для межпакетной отправки на плату WiFi Shield. Время задается в микросекундах.
Необязательная команда “protocol” (протокол) определяет тип используемого интернет-протокола: «udp» или «tcp».
207
Необязательная команда “ipAdderss” устанавливает IP-адрес устройства. Пример сформированной команды для плат Ganglion или Cyton выглядит следующим образом: {"type": "connect", "name": "Ganglion-XXXX"}. Пример
команды для передачи по WiFi через протокол “tcp” с установкой имени:
{
"type": "connect",
"name": "OpenBCI-XXXX", "latency": 1000, "sampleRate": 500, "protocol": "tcp"
}
Пример команды для передачи по WiFi через протокол “UDP” с пакетным режимом и IP-адресом:
{
"type": "connect", "ipAddress": "192.168.4.1", "latency": 1000, "sampleRate": 500, "protocol": "udp", "burst": true
}
В случае успеха выполнения команды будет получен следующий ответ: {"type":"connect", "firmware": "v2.0.0", "code": 200}. При невозможности подключения будет дан ответ вида {"type":"connect", "code": 402, "message": "verbose error message"}. Если происходит сбой из-за уже установленного соединения, то ответ будет следующий: {"type":"connect", "code": 408}.
Команда “Отключить” (тип disconnect) предназначена для отключения от подключенного устройства (начиная с версии программы v1.0.0).
Пример данной команды следующий: {"type":"disconnect"}. В случае успеха выполнения команды будет ответ: {"type":"disconnect", "code": 200}. В случае сбоя и невозможности отключиться от подключенного устройства будет следующий ответ: {"type":"disconnect", "code": 401, "message": "verbose error message"}.
Команда “Examine” служит для проверки-тестирования платы WiFi.
Пример команды с именем платы WiFi: {"type":"examine", "shieldName": "OpenBCI-XXXX"}. Пример команды с именем с IP-адресом {"type":"examine", "ipAddress": "192.168.4.1"}.
Если плата WiFi Shield обнаружена до посылки команды, то ответ будет следующего вида: {"type":"scan", "action": "stop", "code": 200}. В случае успеха будет следующий ответ: {"type":"examine", "code": 200}. Ответ при невозможности подключения к устройству будет такой: {"type":"examine", "code": 402, "message": "verbose error message"}. Если устройство уже подключено, то при ошибке ответ будет следующий: {"type":"examine", "code":
208
408, "message": "verbose error message"}. Ответ при невозможности остановить сканирование будет такой:{"type":"examine", "code": 411, "message": "could not stop error"}.
Команда impedance (полное сопротивление) останавливает или начинает тестирование импеданса для платы Ganglion или отправляет параметры настройки импеданса для платы Cyton.
Параметр “action – set” используется для установки регистров импеданса для платы Cyton (с прошивкой версии v2.0.0 и выше).
Параметр “channelNumber” (номер канала) начинает нумерацию значений с нуля, т.е. 0-7 для плат Cyton или 0-15 для плат Cyton совместно с Daisy.
Параметр “pInputApplied” используется в том случае, если сигнал импеданса направляется на вход P при выполнении параметра
“channelNumber”.
Параметр “nInputApplied” используется в том случае, если сигнал импеданса направляется на вход N при выполнении параметра
“channelNumber”.
Пример команды:
{
"action": "set", "type": "impedance", "channelNumber": 3, "pInputApplied": false, "nInputApplied": true
}
В случае успеха выполнения данной команды будет следующий ответ: {"type":"impedance", "action": "set", "code": 200}. При невозможности определить сопротивление будет выведено сообщение {"type":"impedance", "action": "set", "code": 424, "message": "verbose error message here"}. Ответ при неудачном выполнении входных команд будет следующий: {"type":"impedance", "action": "set", "code": 431, "message": "more verbose error message"}.
Параметр “action – start” используется для запуска тестирования импеданса на плате Ganglion (с версией программы v1.0.0).
Пример выполнения команды: {"type":"impedance", "action": "start"}.
В случае успеха выполнения команды будет следующий ответ: {"type":"impedance", "action": "start", "code": 200}. При невозможности запуска команды будет выдано сообщение {"type":"impedance", "action": "start", "code": 414, "message": "Error message"}.
Параметр “action – stop” используется для остановки тестирования импеданса на плате Ganglion (с версией прошивки v1.0.0).
Пример выполнения команды: {"type":"impedance", "action": "stop"}. В случае успеха будет ответ: {"type":"impedance", "action": "stop", "code": 200}.
209