Если плата Daisy отсутствует, подтверждение не отправляется, потому что плата уже находится в 8-канальном режиме. Если команда послана от WiFi Shield, то возвращается сообщение: “No daisy to remove”.
Если плата Daisy присутствует, то возвращается сообщение “daisy removed$$$”.
Для того чтобы включить 16-канальную систему, используется команда
“С”.
При выполнении данной команды возвращается сообщение:
Если плата Daisy уже прикреплена, то возвращается сообщение “16$$$”.
Если плата Daisy в настоящее время не присоединена и не может быть присоединена, то возвращается сообщение “no daisy to attach!8$$$”.
Если плата Daisy в настоящее время не присоединена, но может быть присоединена, выдается сообщение “daisy attached16$$$”.
При сбросе плата Cyton будет искать плату Daisy, и если она
присутствует, то по умолчанию будет использоваться 16 каналов.
2.9.11. Новые команды прошивки v2.0.0
Прошивка v2.0.0 была первой переработкой от “Push The World”, которая стабилизировала код ядра и добавила несколько ключевых новых функций для улучшения взаимодействия с пользователем. Начиная с версии встроенного программного обеспечения v2.0.0, был реализован набор команд для изменения системы радиосвязи и улучшения программирования через радиоэфир основной платы Cyton. Чтобы использовать команды, необходимо придерживаться формы “ключ-код-(полезная нагрузка)”, где “ключ” имеет формат “0xF0”, “код” определен ниже, а “полезная нагрузка” является необязательной и зависит от “кода”. Например, чтобы получить статус системы, необходимо отправить “0xF0”, а затем отправить “0x07”.
Если микросхемы RFDuino не могут общаться друг с другом, то будет выдано сообщение “Failure: Communications timeout - Device failed to poll host”,
это означает, что Устройство RFDuino (на плате Cyton) прекратило опрос хоста
RFDuino на плате Dongle.
2.9.12. Команды отсчета времени
Команда “<” позволяет начать отметку времени и выполнить повторную синхронизацию. Когда передающий радиомодуль посылает “<”, принимающая радиостанция ответит “,”. Поскольку хост не может отправлять пакеты на устройство “ad hoc”, может быть полезно узнать, когда хост действительно смог отправить команду. Если плата не транслирует, то необходимо ожидать ответа “Time stamp ON$$$”. Если плата находится в потоковом режиме, то ответ будет в потоке данных. Ответ будет получен, когда драйвер получит пакет данных с другим стоп-байтом. Если плата находится в режиме потоковой
50
передачи, то возвращаемого сообщения нет. Если плата находится не в режиме потоковой передачи, то будет возвращено сообщение “Time stamp ON$$$”.
Команда “>” прекращает отсчет времени. Если плата не транслирует, то надо ожидать ответа “Time stamp OFF$$$”. Если плата находится в режиме потоковой передачи, то ответ может быть получен в другом стоп-байте. Если плата не транслирует, то необходимо ожидать ответа “Time stamp OFF$$$”. Если плата находится в потоковом режиме, то ответ будет в потоке данных и отдельного подтверждения не будет.
2.9.13. Получение номера радиоканала
После выполнения команды “0x00” возвращается либо успех, либо неудача. Если случится неудача, то плата выдает номер канала, хоста и сообщение об ошибке. В случае успеха будут сообщены номера каналов, хоста, устройства и сообщение об успешном завершении. Номера каналов могут быть только 1-25. Байт перед “EOT” ($$$) будет содержать значение номера канала в “HEX” шестнадцатеричном формате.
Если будет отправлено 0xF00x00, то в ответ будет сообщение о системе и номере канала.
2.9.14. Установка номера канала радиосистемы
Команда “0x01” используется для установки номера канала. Если радиосистема работает после запроса “0xF007” и получен ответ об успешном завершении, это означает, что устройство и хост имеют один и тот же номер канала.
Команда возвращает либо успех, либо неудачу. В случае неудачи будет выведено сообщение об ошибке и просьба проверить номер канала. В случае успеха будут выведены номера каналов как хоста, так и устройства, а также сообщение об успехе. Номера каналов могут быть размером только 1-25 байт (в шестнадцатеричном виде) перед символами EOT ($$$). Например, чтобы настроить систему на канал 7, пользователь должен отправить: 0xF00x010x07.
2.9.15. Повторное определение радиоканала хоста
Команда “0x02” используется для запроса повторного определения радиоканала хоста. Радиосистема не работает в том случае, если был отправлен запрос "0xF007” и получен ответ «Сбой», означающий, что устройство и хост не находятся на одном и том же номере канала. Это может происходить, например, если к плате “Cyton” не подключено питание. Если плата Cyton включена, то необходимо циклически перебирать хост через все возможные 25 каналов, пытаясь перенастроить хост и устройство по одному и тому же радиоканалу.
51
Данная команда возвращает либо успех, либо неудачу. В случае неудачи будет выведено сообщение об ошибке и просьба проверить номер канала. В случае успеха будет выведено «Host Override», а затем номер канала. Номера каналов могут быть размером только 1-25байт (в шестнадцатеричном виде) перед символами EOT ($$$).
Например, чтобы настроить хост на канал 1, пользователь должен отправить: 0xF00x020x01.
2.9.16. Определение времени опроса радиомодуля
Команда “0x03“ служит для определения времени опроса радиомодуля. Время опроса является критическим фактором для загрузки программного обеспечения по радиоканалу. Существует прямая зависимость между временем опроса, производительностью процессора и успешной загрузкой программного обеспечения контроллером Pic32 по беспроводной сети. Если постоянно происходят сбои, надо проверить время опроса и при необходимости увеличить его. Если используется высокопроизводительный компьютер, то можно попробовать уменьшить время опроса, чтобы ускорить загрузку по беспроводной сети. Команда возвращает успех, за которым следует значение времени опроса в шестнадцатеричном виде (HEX).
Например, чтобы запросить значение времени опроса пользователь должен отправить: 0xF0 0x03.
2.9.17. Установка времени опроса радиомодуля
Команда “0x04“ служит для установки времени опроса радиомодуля. Время опроса является критическим фактором для загрузки программы по радиоканалу. Существует прямая зависимость между временем опроса, производительностью процессора и успешной загрузкой программного обеспечения микроконтроллера Pic32 по беспроводной сети. Если постоянно происходят сбои подключения, то следует проверить время опроса и при необходимости увеличить его. Если компьютер имеет высокую производительность, то можно попробовать уменьшить время опроса, чтобы ускорить загрузку по беспроводной сети.
Команда возвращает либо успех, либо неудачу. В случае неудачи будет отправлено сообщение «Communications Timeout». В случае успеха будет отправлено сообщение об этом, за которым следует время опроса в формате HEX (шестнадцатеричный формат). Все отправляемые значения должны быть в диапазоне от 0 до 255 в формате HEX (шестнадцатеричный формат). По умолчанию время опроса равно 80 мс.
Например, если отправить 0xF00x040x40, то это сообщение установит время опроса величиной 64 мс.
52
2.9.18. Установка значения скорости передачи по умолчанию для радиомодуля хоста
Команда “0x05” сообщает хосту RFDuino о том, что надо отправлять последовательные данные по протоколу UART со скоростью 115200 на виртуальный последовательный порт FTDI. При успешном выполнении в формате ASCII команда устанавливает скорость передачи 115200 бод.
Например, если отправить команду 0xF0 0x05, то будет установлена скорость передачи 115200 бод.
2.9.19. Установка высокой скорости передачи для радиомодуля хоста
Команда “0x06” сообщает хосту RFDuino о том, что надо отправить последовательные данные по протоколу UART со скоростью 230400 бод. При успешном выполнении в формате ASCII команда устанавливает скорость передачи 230400 бод.
Например, если отправить команду 0xF00x06, то будет установлена скорость передачи 230400 бод.
2.9.20. Установка гиперскорости передачи для радиомодуля хоста
Команда “0x0A” сообщает хосту RFDuino о том, что надо отправить последовательные данные по протоколу UART на виртуальный последовательный порт FTDI со скоростью 921600. Но следует обратить внимание, что это не помогает увеличить частоту дискретизации системы, но помогает предотвратить потерю пакетов, позволяя компьютеру быстрее извлекать данные из последовательного порта, поскольку данные поступают намного быстрее в виртуальный последовательный порт FTDI. При успешном выполнении в формате ASCII команда устанавливает скорость передачи 921600 бод.
Например, если отправить команду 0xF00x0A,то будет установлена скорость передачи 921600 бод.
2.9.21. Состояние радиосистемы
Команда “0x07” позволяет проверить состояние соединения RFDuino на плате с RFDuino, подключенного к компьютеру. Команда возвращает сообщения об успехе или неудаче. В случае сбоя будет отправлено сообщение «Failure: System is down$$$». В случае успеха будет отправлено сообщение «Success: System is $$$». Т.е. для того чтобы получить статус, необходимо отправить команду 0xF00x07.
53
2.9.22. Прошивка v3.0.0, новые команды
Прошивка v3.0.0 поддерживает все версии v1.0.0 и v2.0.0 и сделана для расширения системы OpenBCI для обеспечения переменной частоты дискретизации.
Для установки частоты дискретизации используется команда “~”. Она работает аналогично командам настройки канала, однако после нее заключительного символа нет. Выключение питания платы OpenBCI приведет к тому, что частота дискретизации вернется к значению по умолчанию 250 Гц. Плата Cyton с USB-ключом не может и не будет передавать данные со скоростью более 250 пакетов в секунду. Для увеличения скорости необходимо подключить плату WiFi Shield, и тогда можно будет получить скорость более 250 пакетов в секунду. В данной версии прошивки все еще можно записывать данные на SD-карту, однако микропрограмма больше не будет отправлять данные ЭЭГ по радиомодулям Bluetooth.
Следующие команды служат для установки частоты дискретизации:
0 = 16000 Гц;
1 = 8000 Гц;
2 = 4000 Гц;
3 = 2000 Гц;
4 = 1000 Гц;
5 = 500 Гц;
6 = 250 Гц.
Для того чтобы узнать, какая установлена частота дискретизации, служит команда “~ =” Например, сначала пользователь отправляет команду “~~” и плата возвращает ответ “Sample rate is 250Hz$$$”. Далее пользователь отправляет “~ 5” и плата возвратит следующий ответ “Sample rate set to 500Hz$$$”. Если в течение 1 секунды получены не все команды, то будет ответ “Timeout processing multi byte message - please send all commands at once as of v2$$$”.
2.9.23. Режимы платы
Команда “/” используется для переключения режимов платы. Эта команда работает аналогично частоте дискретизации. Выключение питания платы OpenBCI приведет к тому, что режим платы вернется в режим по умолчанию с включенным акселерометром и с выдачей байтов с акселерометра на выход.
Для переключения режимов работы платы используются следующие команды:
0 = режим по умолчанию - отправляет данные акселерометра в байтах на выход;
54