Техническая поддержка: URBANNOVA@YANDEX.RU
Внимание с 1-го февраля 2023 стоимость обслуживания будет 180 рублей в месяц за устройство
GalileoSky и работы с блютуз
Работа c Bluetooth
BTInit – инициализация bluetooth
Функция предназначена для инициализации bluetooth
BTInit()
BTReceive – принять bluetooth-сообщение
Функция предназначена для принятия bluetooth-сообщений.
new btMessage[BTMSG]
BTReceive(const btMessage[], const timeout)
- btMessage – получаемое сообщение
- timeout – время ожидания получения данных
main()
{
const timeout = 2000
const LEN_MAC = 6
new message[BTMSG] // объявление структуры сообщения
BTInit() // инициализация BLUETOOTH
while(1)
{
if ( BTReceive(message, timeout) )
{
Diagnostics("\nMAC: %X:%X:%X:%X:%X:%X", message.mac{0}, message.mac{1}, message.mac{2}, message.mac{3}, message.mac{4}, message.mac{5})
Diagnostics( "RSSI: %d", (message.rssi | 0xFFFFFF00) )
Diagnostics( "Data: size %d", message.dataSize )
DiagnosticsHex( message.data, message.dataSize )
}
Delay(1000)
}
}
В Конфигураторе 5.2.02 при использовании прошивки 45 добавлены функции работы по Bluetooth
Добавлена новая структура:
BTPARAMS{
mac; // массив 6 байт - должен содержать мак адрес устройства, к которому направлена команда
uuid16; // тип адреса uuid false - 2 байтовый, true - 16 байтовый, должен содержать тип uuid
uuid; // массив 16 байт - должен содержать uuid характеристики с которой совершается операция
}
- BTInit(const amountDev, const devMacs[]{6}) - инициализация для работы с BT
- Параметры: (оба параметра можно опустить, тогда принимать пакеты будет от всех устройств)
- const amountDev - количество устройств, от которых хотим получать рекламные пакеты
- const devMacs[]{6} - массив с mac адресами устройств, от которых хотим получать рекламные пакеты
- BTReceive(BTMSG, timeout) - принять рекламное сообщение
- BTMSG - ссылка на структуру, для полученного сообщения
- const timeout - максимальное время ожидания получения рекламного сообщения
- BTConnectTo(const addr{6}, [const timeout]) - подключиться к устройству bluetooth
- Параметры:
- const addr{6} - массив с mac адресом устройства
- const timeout - [параметр не обязательный] - Общее время на подключение, по умолчанию это 2 минуты
- BTDisconnectFrom(const addr{6}) - отключится от устройства
- Параметры:
- const addr{6} - массив с mac адресом устройства
- BTReadChar(BTParam, dataPrtToRead[],const dataMaxSize) - чтение характеристики подключенного устройства в буфер
- Параметры:
- BTParam - структура с заполненными параметрами, мак, uuid
- dataPrtToRead[] - ссылка на массив куда будут записаны прочитанные данные
- const dataMaxSize - размер переданного под запись данных буфера
- BTWriteChar(BTParam, dataPrtToWrite[], const dataLen , [const withResponse]) - запись буфера в характеристику подключенного устройства
- Параметры:
- BTParam - структура с заполненными параметрами, мак, uuid
- const dataPrtToWrite[] - массив данных для записи в характеристику
- const dataLen - количество байт для записи
- const withResponse - [параметр не обязательный] - Тип запроса на запись, false - запись без подтверждения, true - запись с подтверждением
- BTNotifySize(BTParam, const timeout) - ожидание и получение размера следующей нотификации
- BTParam - структура с заполненными параметрами, мак, uuidconst timeout - максимальное время ожидания получения уведомления
- BTNotifyRetrieve(BTParam, pData[], const dataMaxSize, const timeout) - получение уведомлений от подключенного устройства
- Для каждой пары устройство(mac) - характеристика(uuid), своя отдельная очередь.
- Параметры:
- BTParam - структура с заполненными параметрами, мак, uuid
- pData[] - массив для полученных данных в уведомлении
- const dataMaxSize - размер переданного под запись данных буфера
- const timeout - максимальное время ожидания получения уведомления
- BTSubscribe(BTParam) - подписка на уведомление от характеристики
- Параметры:
- BTParam - структура с заполненными параметрами, мак, uuid
- BTUnsubscribe(BTParam) - отмена подписки уведомлении от характеристики
- Параметры:
- BTParam - структура с заполненными параметрами, мак, uuid
- BTGetCharsAmount(const addr{6}, &amount) - получение количества характеристик в подключенном устройстве
- Параметры:
- const addr{6} - массив с mac адресом устройства
- amount - ссылка на переменную куда будет записано количество характеристик
- BTGetChar(BTParam, const num) - получение uuid характеристики
- Параметры:
- BTParam - структура с заполненными параметрами, мак адрес подключенного устройства. Ответ будет также записан в эту структуру (в поля uuid, uuid16)
- num - номер характеристики для получения
- Cканирование работает автоматически - без необходимости его включать и выключать.
Коды ответа для всех функций
1 - успех, в функциях получения данных 1...x - количество принятых байт
0 - время выполнения команды превышено, таймаут
-1 - неверное кол-во или неправильные аргументы
-2 - состояние устройства к которому обращена команда не позволяет ее выполнить (отключено, не подписано, уже подключено)
-3 - общая ошибка, необходима диагностика
-4 - получен отказ от внешнего устройства
Команды из Конфигуратора
Все параметры команд передаются в шестнадцатеричном формате без "0х"
- BTCONNECT XXXXXXXXXXXX - подключение к устройству с MAC адресом XXXXXXXXXXXX
- BTDISCONNECT XXXXXXXXXXXX - отключение от устройства с MAC адресом XXXXXXXXXXXX
- BTREADCHAR XXXXXXXXXXXX, YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY - чтение характеристики с UUID YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY (может так же быть формата YYYY) в устройстве с MAC адресом XXXXXXXXXXXX
- BTWRITECHAR XXXXXXXXXXXX, YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY, DD..DD - запись данных (DD .. DD ) в характеристику с UUID YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY (может так же быть формата YYYY) в устройстве с MAC адресом
- BTSUBSCRIBE XXXXXXXXXXXX, YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY - подписка на уведомления от характеристики с UUID YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY (может так же быть формата YYYY) в устройстве с MAC адресом XXXXXXXXXXXX
- BTUNSUBSCRIBE XXXXXXXXXXXX, YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY - отмена подписки уведомлений от характеристики с UUID YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY (может так же быть формата YYYY) в устройстве с MAC адресом XXXXXXXXXXXX
Уведомления пока приходят в "Диагностику" в формате - > Char update. Mac:XXXXXXXXXXXX Uuid: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY Data: DD..DD
Примеры:
BTCONNECT 7a01b72e4f3e
BTDISCONNECT 7a01b72e4f3e
BTSUBSCRIBE 7a01b72e4f3e,0100010200001000800009805f9b34fb
BTUNSUBSCRIBE 7a01b72e4f3e,0100010200001000800009805f9b34fb
BTWRITECHAR 7a01b72e4f3e,0100010200001000800009805f9b34fb,091213
BTREADCHAR 7a01b72e4f3e,0000010200001000800009805f9b34fb
Поиск информации по сайту мониторинга транспорта TREKBERRY
© TREKBERRY 2017-2023, Дмитрий В.М. Все права защищены.
Копирование материала без ссылки на источник запрещено. Информация размещенная на сайте не является публичной офертой.
Часть текстов написано нейросетью ChatGPT может содержать не точности.