При невозможности остановки будет следующий ответ: {"type":"impedance", "action": "stop", "code": 415, "message": "Error message"}.
Команда “protocol” должна быть запущена до начала каждой сессии. Эта команда представляет собой число, означающее начало сеанса. В настоящее время поддерживаются протоколы “ble”, “bled112”, “serial” и “wifi” (версия программы v2.0.0).
Параметр “action – start” запускает протокол. Необходимо остановить все остальные протоколы перед запуском нового (версия программы v2.0.0).
Наличие: по состоянию на v2.0.0.
Параметр “protocol” в настоящее время поддерживает протоколы “ble”, “bled112”, “serial” и “wifi”. Плата Ganglion использует только “ble” и “bled112”
на сегодняшний день. После выполнения команды с данным параметром будет предпринята попытка запустить драйверы Bluetooth с низким энергопотреблением. При использовании CSR Dongle в Windows очень важно использовать инструмент Zadig.
Пример запуска протокола “ble” или “bled112” для платы Ganglion: {"type":"protocol", "action": "start", "protocol": "ble"}. В случае успеха запуска для платы Ganglion: {"type":"protocol", "action": "start", "protocol": "ble", "code": 200}. При невозможности запуска драйвера для платы Ganglion будет ответ: {"type":"impedance", "action": "start", "code": 419, "message": "failed to start driver"}.
Инструмент Zadig не обязательно использовать для ключа BLED112.
Пример установки протокола “serial” для платы Cyton: {"type":"protocol", "action": "start", "protocol": "serial"}. В случае успеха выполнения команды: {"type":"protocol", "action": "start", "protocol": "serial", "code": 200}. Пример установки протокола wifi для платы Cyton: {"type":"protocol", "action": "start", "protocol": "wifi"}. Ответ в случае успеха установки протокола “wifi” для платы
Cyton: {"type":"protocol", "action": "start", "protocol": "wifi", "code": 200}.
Параметр “action – status” можно выполнить после проверки, запущен ли в настоящее время протокол и установлен ли он как текущий протокол (для версии программного обеспечения v1.0.0). Пример установки протокола “ble”
или “bled112”: {"type":"protocol", "action": "status", "protocol": "ble"}. В случае успеха успешного запуска и работы протокола на плате Ganglion будет следующий ответ: {"type":"protocol", "action": "status", "code": 200}. Ответ о том,
что протокол остановлен, будет следующий: {"type":"protocol", "action": "status", "code": 501}. Пример установки протоколов serial или wifi: {"type":"protocol", "action": "status"}. Ответ по запущенному протоколу: {"type":"protocol", "action": "status", "code": 304}. Ответ по остановленному протоколу: {"type":"protocol", "action": "status", "code": 305}.
Параметр “action – stop” выполняется после проверки, запущен ли протокол и установлен ли он как текущий протокол. Пример установки протоколов ble, bled112, serial и wifi: {"type":"protocol", "action": "stop",
210
"protocol": "ble"}. Ответ после остановки для протоколов ble, bled112, serial и wifi: {"type":"protocol", "action": "stop", "protocol": "ble", "code": 200}
Команда “scan” предназначена для сканирования устройства на наличие протокола, установленного ранее. При обнаружении протоколов команда отправляет их локальные имена запрашивающему клиенту.
Параметр “action – start” запускает сканирование. Необходимо остановить уже начатое сканирование, если оно выполняется. Пример выполнения команды: {"type":"scan", "action": "start"}. Ответ в случае успеха: {"type":"scan", "action": "start", "code": 200}. Ответ при невозможности начать сканирование: {"type":"scan", "action": "start", "code": 412, "message": "Error message"}. Ответ при невозможности остановить сканирование в процессе его исполнения: {"type":"scan", "action": "start", "code": 411, "message": "Error message"}.
Параметр “action – status” проверяет, выполняется ли сканирование.
Пример выполнения команды: {"type":"scan", "action": "status"}. Ответ о том,
что в настоящее время проводится сканирование на наличие протоколов “ble” и “bled112” для платы Ganglion: {"type":"scan", "action": "status", "code": 302}.
Ответ о том, что сканирование не выполняется для платы Ganglion по протоколу bled112: {"type":"scan", "action": "status", "code": 303}. Ответ о том, что выполняется сканирование для платы Wi-Fi Shild: {"type":"scan", "action": "status", "code": 304}. Ответ о том, что сканирование для платы Wi-Fi Shild не выполняется: {"type":"scan", "action": "status", "code": 305}.
Параметр “action – stop” останавливает сканирование в процессе. Пример использования команды: {"type":"scan", "action": "stop"}. Ответ в случае успеха: {"type":"scan", "action": "stop", "code": 200}. Ответ при ошибке, если сканирование не выполняется и останавливать нечего: {"type":"scan", "action": "stop", "code": 410, "message": "Error message"}. Ответ при ошибке, если не удается остановить сканирование: {"type":"scan", "action": "stop", "code": 411, "message": "Error message"}.
Команда “SD Card” работает только на платах Cyton. Таким образом, команду можно использовать только для протоколов “wifi” и “serial” (версия программы v1.0.0).
Параметр “action – start” осуществляет запуск и запись на SD-карту с помощью удобночитаемой команды. В настоящее время поддерживаются только протоколы serial и wifi.
Команда открывает новый файл для записи на SD-карте со следующей установленной продолжительностью:
14sec (14 секунд);
5min (5 минут);
15min (15 минут);
30min (30 минут);
1hour (1 час);
2hour (2 часа);
4hour (4 часа);
211
12hour (12 часов);
24hour (24 часа).
Пример выполнения команды: {"type":"sd", "action": "start", "command": "5min"}. Ответ в случае успеха выполнения команды: {"type":"sd", "action": "start", "code": 200}. Ответ при сбое (например, отсутствие SD-карты и т.д.)
будет следующий: {"type":"scan", "action": "start", "code": 499, "message": "Error message"}.
Параметр “action – stop” останавливает запись на SD-карту. Пример выполнения команды: {"type":"sd", "action": "stop"}. Ответ в случае успеха будет таким: {"type":"sd", "action": "stop", "code": 200}. Ответ при неудаче будет таким: {"type":"scan", "action": "stop", "code": 499, "message": "Error message"}.
Команда “status” предназначена для определения текущего статуса Хаба (Hub). Если сервер TCO в концентраторе работает, то это всегда будет соответствовать действительности. Пример выполнения команды: {"type":"status"}. Ответ в случае успеха: {"type":"status", "code": 200}.
Команда “Wi-Fi” используется для получения информации о подключенной плате WiFi Shield.
Параметр “action – eraseCredentials” стирает учетные данные на плате WiFi Shield. К плате WiFi Shield не должно быть прикрепленной платы регистрации ЭЭГ. Для того чтобы подключиться к WiFi Shield без плат Ganglion или Cyton, необходимо использовать команду “Examine”. Процесс займет около 6 секунд. WiFi Shield снова станет точкой доступа (программное обеспечение версии v2.0.0).
Пример выполнения команды: {"type":"wifi", "action": "eraseCredentials"}.
Ответ после выполнения команды в случае успеха: {"type":"wifi", "action": "eraseCredentials", "code": 200, "command": eraseCredentials, "message": "Rebooting wifi shield in 5 seconds"}. Ответ при неудаче, потому что не подключена плата Wi-Fi: {"type":"wifi", "code": 426}. Если при выполнении команды удаления учетных данных произошел сбой, то ответ будет следующий: {"type":"wifi", "code": 428, "command": eraseCredentials, "message": "Error message"}.
Параметр “action – getFirmwareVersion” необходим для получения версии прошивки подключенной платы WiFi Shield. Пример выполнения команды: {"type":"wifi", "action": "getFirmwareVersion"}. Ответ в случае успеха выполнения команды: {"type":"wifi", "command": "getFirmwareVersion", "code": 200, "message": "v3.1.1"}. Ответ при неудаче выполнения команды, в случае,
если не подключена плата Wi-Fi Shield: {"type":"wifi", "code": 426}.
Параметр “action – getIpAddress” служит для получения IP-адреса подключенной платы WiFi Shield.
Пример выполнения команды: {"type":"wifi", "action": "getFirmwareVersion"}. Ответ в случае успеха выполнения команды: {"type":"wifi", "command": "getFirmwareVersion", "code": 200, "message":
212
"192.168.4.1"}. Ответ при неудаче выполнения команды, в случае, если не подключена плата Wi-Fi Shield: {"type":"wifi", "code": 426}.
Параметр “action – getMacAddress” служит для получения MAC-адреса подключенной платы WiFi Shield.
Пример выполнения команды: {"type":"wifi", "action": "getMacAddress"}.
Ответ в случае успеха выполнения команды: {"type":"wifi", "action": "getMacAddress", "code": 200, "message": "AA:12:AB:23:11:CD"}. Ответ при неудаче выполнения команды, в случае, если не подключена плата Wi-Fi Shield: {"type":"wifi", "code": 426}
Параметр “action – getTypeOfAttachedBoard” возвращает тип подключенной платы регистрации ЭЭГ к плате Wi-Fi Shield (в том случае, если к Wi-Fi Shield подключены платы регистрации ЭЭГ). Возможные варианты ответа: none, cyton, daisy или ganglion.
Пример выполнения команды: {"type":"wifi", "action": "getTypeOfAttachedBoard"}. Ответ в случае успеха выполнения команды: {"type":"wifi", "command": "getTypeOfAttachedBoard", "code": 200, "message": "cyton"}. Ответ при неудаче выполнения команды, в случае, если не подключена плата Wi-Fi Shield: {"type":"wifi", "code": 426}
Далее рассмотрим набор ответов от работающего “Хаба” (концентратора). Как только клиент установил подключение к концентратору для запроса информации, сообщения с “Хаба” будут асинхронно отправляться клиенту.
Команда “accelerometer” представляет данные акселерометра от платы
Ganglion (версия программы v1.0.0).
Параметр “accelDataCounts” возвращает массив целых чисел с тремя индексами: [AXIS_X, AXIS_Y, AXIS_Z], где AXIS_X ось X (целые необработанные числа); AXIS_Y ось Y (целые необработанные числа); AXIS_Z ось Z (целые необработанные числа).
Пример выполнения команды: {"type": "accelerometer", "code": 202, "accelDataCounts": [50, 0, 30]}.
Команда “channelSettings” используется для установки регистров для каналов платы Cyton.
Параметр “channelNumber” начинает индексацию с нуля, т.е. 0-7 для платы Cyton или 0-15 для платы Cyton + Daisy.
Параметр “powerDown” будет иметь значение “true”, если канал выключен, или значение “false”, если канал включен.
Параметр “gain” (усиление) имеет целочисленные значения усиления, т.е. 1, 2, 4, 6, 8, 12, 24.
Параметр “inputType” служит для выбора источника входного сигнала для канала АЦП. Это строка, которая должна иметь одно из следующих значений: «normal», «shorted», «biasMethod», «mvdd», «temp», «testsig», «biasDrp», «biasDrn».
213
Параметр “bias” (смещение) определяет, должна ли быть включена генерация смещения для входа конкретного канала. Это число, которое имеет значение “true”, если канал имеет смещение (по умолчанию), или значение “false”, если канал не имеет смещения.
Параметр “srb2” имеет значение “ true”, если необходимо подключить вход P конкретного канала к выводу SRB2. При выполнении данной команды происходит замыкание переключателя между входом P (любого канала) и выводом SRB2. Это позволяет входу P также оставаться подключенным к АЦП. Параметр имеет целочисленное значение, при котором значение “true” означает, что вход соединяется с выводом SRB2 (по умолчанию), а значение “false” означает, что вход будет отключен от вывода SRB2.
Параметр “srb1” используется для подключения входов N всех каналов к выводу SRB1. Выполнение этого параметра влияет на все контакты N одновременно и отключает все входы N от АЦП. Параметр имеет целочисленное значение, имеющее значение ”true” для соединения всех входов N с выводом SRB1 и значение “false” для отключения всех входов N от вывода SRB1 (используется по умолчанию).
Пример выполнения команды:
{
"code": 207
"type": "channelSettings", "channelNumber": 3, "powerDown": false, "gain": 24,
"inputType": "normal", "bias": true,
"srb2": true, "srb1": false
}
Команда “Impedance” (полное сопротивление) возвращает данные об импедансе каждого канала на плате Ganglion.
Параметр “channel” служит для установки номера канала. Параметр начинает индексацию с нуля и имеет значения 1,2,3,4 для обычных каналов или значение 0 для опорного канала.
Параметр “value” (значение) позволяет запросить значение импеданса в омах для каждого канала.
Пример выполнения команды:
{
"code": 203
"type": "impedance", "channel": 3, "value": 300
}
214