Команды в этом разделе позволяют организовать прозрачный обмен с Bluetooth датчиками через устройство.
Схема обмена будет выглядеть следующим образом:
sequenceDiagram
Клиент->>Устройство: *!BLE CNCT,11:22:33:44:55:66
Note right of Клиент: Команда подключения к датчику
Устройство->>Клиент: *@BLE CNCT,OK
Note right of Клиент: Устройсвто приняло команду к исполнению
Устройство-->>BLE датчик: Подключение к датчику 11:22:33:44:55:66
Устройство->>Клиент: *&BLE CNCT,11:22:33:44:55:66
Note right of Клиент: Связь с датчиком установлена можно начинать обмен данными
Клиент->>+Устройство: *!BLE DATA,STR,"GL,LL:1:720,PP,PW:1:1111"0D
Note right of Клиент: Отправка текстовых данных с HEX байтом 0x0D в конце посылки
Устройство->>+BLE датчик: "GL,LL:1:720,PP,PW:1:1111"0D
Устройство->>Клиент: *@BLE DATA,OK
Note right of Клиент: Подтверждение отправки от устройства к датчику
BLE датчик->>-Устройство: "TR:1:720,SR:1:720"
Устройство->>-Клиент: *&BLE DATA,STR,TR:1:720,SR:1:720
Note right of Клиент: Получение данных от датчика
Клиент->>Устройство: *!BLE CNCT,0
Note right of Клиент: Команда отключения от датчика
Устройство--xBLE датчик: Отключение от датчика
Устройство->>Клиент: *@BLE CNCT,OK
Note right of Клиент: Подтверждение отключения
Подключение или отключение от датчика
| Структура |
*!BLE CNCT,<mac> |
| Обозначение |
Описание |
Формат |
*!BLE |
Константа - 0x2A 0x21 0x42 0x4C 0x45 |
char[5] |
|
<mac>
|
xx:xx:xx:xx:xx:xx - адрес датчика, к которому нужно подключиться
0 - Для отключения нужно передать в этом параметре значение
|
char[]
|
Отправляется устройством сразу для подтверждения команды
| Структура |
*@BLE CNCT,<ans> |
| Обозначение |
Описание |
Формат |
*@BLE |
Константа - 0x2A 0x40 0x42 0x4C 0x45 |
char[5] |
|
<ans>
|
Результат выполнения команды:
OK – команда принята
ALREADY – уже существует подключение
BUSY – Bluetooth занят
FAIL – ошибка в формате <mac>
|
char[]
|
Отправляется устройством асинхронно когда наступило некоторое событие
| Структура |
*&BLE CNCT,<ans> |
| Обозначение |
Описание |
Формат |
*&BLE |
Константа - 0x2A 0x26 0x42 0x4C 0x45 |
char[5] |
|
<ans>
|
Результат выполнения команды:
xx:xx:xx:xx:xx:xx - адрес датчика, к которому выполнено успешное подключение
0 - успешное отключение от датчика или подключение не удалось
|
|
Передача данных между датчиком и устройством
| Структура |
*!BLE DATA,<fmt>,<msg> |
| Обозначение |
Описание |
Формат |
*!BLE |
Константа - 0x2A 0x21 0x42 0x4C 0x45 |
char[5] |
|
<fmt>
|
Формат данных для получения ответа в асинхронном сообщении:
HEX - Байты в шестнадцатеричном виде
STR - Строка символов
|
char[3]
|
|
<msg>
|
Сообщение для передачи датчику. Данные отправляются в смешанном формате:
"12345" - Просто текст
3132333435 - Байты в HEX
"123"3435 - Текст с добавлением байтов в HEX
|
char[]
|
Отправляется устройством сразу для подтверждения команды
| Структура |
*@BLE DATA,<ans> |
| Обозначение |
Описание |
Формат |
*@BLE |
Константа - 0x2A 0x40 0x42 0x4C 0x45 |
char[5] |
|
<ans>
|
Результат выполнения команды:
OK – команда принята
NOT READY – подключение не установлено
|
char[]
|
Отправляется устройством асинхронно когда наступило некоторое событие
| Структура |
*&BLE DATA,<fmt>,<msg> |
| Обозначение |
Описание |
Формат |
*&BLE |
Константа - 0x2A 0x26 0x42 0x4C 0x45 |
char[5] |
|
<fmt>
|
Формат данных в ответе:
HEX - Байты в шестнадцатеричном виде
STR - Строка символов
|
char[3]
|
|
<msg>
|
Ответ от датчика. Данные отправляются только в одном из форматов:
"12345" - Просто текст
3132333435 - Байты в HEX
|
char[]
|