2017-09-26 13 views
0

Linux에서 BlueZ 4.101을 사용하는 맞춤 GATT 서버를 플러그인으로 사용하고 있습니다. 지금 사용자 지정 스캔 응답 광고 데이터를 설정하려고합니다. iOS에서 LightBlue를 사용하여 GATT 서버 및 광고 매개 변수를 디버깅합니다. 다음 코드를 시도했지만 LightBlue는 광고 효과 및 장치 이름을 볼 수 있지만 스캔 응답 데이터는 볼 수 없습니다. BlueZ에서 사용자 지정 스캔 응답 데이터를 어떻게 설정합니까? 감사.Linux BlueZ 맞춤 제조 스캔 응답 데이터

# BLE Name 
echo "<GATT SERVER> Setting BLE Advertising Name..." 
btmgmt -i $BLUETOOTH_DEVICE name "My-Test-Device" 

echo "<GATT SERVER> Starting BLE Advertising..." 
hciconfig $BLUETOOTH_DEVICE leadv 

# Adv Packet 
echo "<GATT SERVER> Setting BLE Advertising Packets..." 
hcitool -i hci0 cmd 0x08 0x0008 15 02 01 06 11 06 fa d8 43 31 14 09 0c ba e1 14 82 25 11 48 96 16 
#        | | | | | | ----------------------------------------------- 
#        | | | | | |  | 
#        | | | | | |  +---- device state service UUID        
#        | | | | | | 
#        | | | | | +- Incomplete List of 128-bit Service Class UUIDs       
#        | | | | | 
#        | | | | +- Num bytes in -----------------------------------+ 
#        | | | | 
#        | | | +- LE General Discoverable Mode, BR/EDR      
#        | | | 
#        | | +- Flags AD type 
#        | | 
#        | +nBytes+     
#        | 
#        +- Num bytes in -----------------------------------------------+ 

# Scan Response 
echo "<GATT SERVER> Setting BLE Scan Response..." 
hcitool -i hci0 cmd 0x08 0x0009 02 01 06 1A FF 02 5E 03 02 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
+0

스캔 데이터에 무엇을 포함 하시겠습니까? 귀하의 현재 스캔 응답 데이터가 제게 의미가 없습니다. – Emil

+0

스캔 응답 인터페이스를 디자인 할 수있는 몇 가지 맞춤 바이트가 있습니다. 내부 BRE112 Bluegiga Dongle을 내부 스택과 함께 사용하면 문제가 있습니다. LightBlue는 Advertising Data 및 Scan Response 사용자 정의 데이터 (해당 동글에는 내부 스택이 있으므로)와 명령을보고 있지만 동일한 스캔 응답을 시도 할 때 위 그림과 같이 BlueZ의 데이터, LightBlue는 아무 것도 볼 수 없음 – PhilBot

+0

스캔 응답 데이터를 설정하는 예가 있습니까? 감사. – PhilBot

답변

0

검색 응답을 설정하라는 명령은 이해가되지 않습니다. 다음은 예입니다.

hcitool -i hci0 cmd 0x08 0x0009 14 13 09 74 68 65 20 70 69 

    hcitool -i hci0 cmd 0x08 0x0009 : set discovery response 
    14 : total payload length 
    13 : info payload length 
    09 : info type == name 
    74 68 65 20 70 69 : info payload => the name in ascii. here "the pi" 

기기를 연결하지 않으면 작동하지 않습니다.