Да, это возможно.Как вы, возможно, уже знаете, в Bluetooth Low Energy (BLE) есть четыре роли: -
- Broadcaster - устройство, которое просто объявляет данные.
- Peripheral - устройство, которое объявляет данныено могут быть подключены и к удаленным устройствам.
- Observer - устройство, которое просто сканирует данные.
- Central - устройство, которое может сканировать данные и подключаться к ним.
Когда впервые появилась BLE, маяки / датчики (например, частота сердечных сокращений, термометр) занимали первые две категории, а телефоны / компьютеры занимали две другие.Однако с тех пор BLE развился, и многие устройства теперь поддерживают все четыре роли, и устройство может работать в одной или нескольких ролях одновременно.
Относительно вашего вопроса, как отметил Ли Дэниел Крокер, данные - это данныеи то, что вы помещаете в рекламу, будет просто байтами, которые должен понять другой конец.Вы можете поместить только 31 байт данных в отчет об объявлении *, поэтому передача данных с установлением соединения более эффективна.
Что касается возможности программирования, я бы рекомендовал начинать с команд BlueZ на обоих устройствах, которые будутреклама и устройство, которое будет читать данные.Вы можете сделать это с помощью команды Bluetoothctl следующим образом: -
На вещательном / периферийном устройстве
#bluetoothctl
[bluetooth]menu advertise
[bluetooth]advertise data 00 00 00 00
[bluetooth]back
[bluetooth]advertise on
На наблюдательном / центральном
#bluetoothctl
[bluetooth]scan on
Я использую BlueZ версии 5.50 , и я рекомендую вам сделать то же самое.
Как только вы сможете рекламировать данные и правильно читать их с другого конца, вы можете просмотреть исходный код и посмотреть, что вы можетерычаг для вашего приложения C.Для функций bluetoothctl вы хотите начать со следующих двух файлов: -
- bluez-5.50 / client / main.c
- bluez-5.50 / client / advertising.c
Надеюсь, это поможет.
(*) Начиная с Bluetooth 5, вы можете добавлять гораздо больше данных в рекламные отчеты, однако это очень недавняя функция, и на момент написания этой статьи поддерживается очень мало стеков.это.