Я пытаюсь создать периферийное устройство raspberry bluetooth, я использую Raspbian и Bluez v 5.11, я много пытался заставить его работать, но я не могу найти способ решить проблему, я использую USB-ключ Bluetooth Inatek BTA-CSR4B5, если я сделаю это:
hciconfig
у меня есть:
hci0: Type: BR/EDR Bus: USB
BD Address: 00:1A:7D:DA:71:13 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING
RX bytes:5050 acl:79 sco:0 events:493 errors:0
TX bytes:8994 acl:78 sco:0 commands:395 errors:0
поэтому кажется, что устройство работает отлично, если я попытаюсь сделать его iBeacon, например, выполнив этот скрипт:
ibeacon.conf:
export BLUETOOTH_DEVICE=hci0
export UUID="e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0"
export MAJOR="00 16"
export MINOR="00 08"
export POWER="c5"
ibeacon_start
#!/bin/sh
. ./ibeacon.conf
echo "Launching virtual iBeacon..."
sudo hciconfig $BLUETOOTH_DEVICE up
sudo hciconfig $BLUETOOTH_DEVICE noleadv
sudo hciconfig $BLUETOOTH_DEVICE leadv 0
sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 $UUID $MAJOR $MINOR $POWER 00
echo "Complete"
оно работает.
Но я хочу сделать периферийное устройство bluetooth, и для этого я использую эту библиотеку:
https://github.com/sandeepmistry/bleno
когда я запускаю тестовый код в проекте bleno, я могу найти службу, но когда я пытаюсь подключиться к периферийному устройству с помощью устройства iOS, я получаю соединение с тайм-аутом.
Я провел много тестов и нашел половинное решение проблемы, если я запускаю службу с помощью bleno, а служба включена, в другом терминале я делаю это:
sudo hciconfig hci0 up
sudo hciconfig hci0 noleadv
sudo hciconfig hci0 leadv 0
и когда я пытаюсь подключиться к периферийному устройству, работает, затем, когда я отключаюсь от периферийного устройства и пытаюсь подключить его снова, он больше не работает, и, чтобы снова заработать, мне нужно сделать это снова:
sudo hciconfig hci0 up
sudo hciconfig hci0 noleadv
sudo hciconfig hci0 leadv 0
Итак, мой вопрос, как я могу решить свою проблему? так что избегайте каждый раз выполнять указанную выше команду и создавайте периферийное устройство bluetooth, которое всегда принимает соединение?