2016-12-15 14 views
0

BLE의 경우 BLUEZ5 스택을 내 라즈베리 파이 3 장치에 사용합니다. gatt 서버를 실행하는 데 example-gatt-server.py를 (클라이언트 측) 내 모바일에서 특성 값을 쓸 때 내 장치 (콜백)에서 수신 한 값이 "dbus.Array ([dbus.Byte (1)]와 같은 바이트 배열 형식입니다.), 서명 = dbus.Signature ('y')) " 바이트 배열을 반환하는 dbus bluez API에서 유용한 정보를 추출하는 방법

바이트를 반환하는 dbus bluez api에서 유용한 정보를 어떻게 추출 할 수 있습니까? 배열

예를 들어 다음 링크를 사용합니다 .-gatt-server.py https://github.com/RadiusNetworks/bluez/blob/master/test/example-gatt-server

+0

서버의 hcidump 도구를 사용하여 확인할 수 있습니다. –

+0

그래, 당신 말이 맞아 고 "hcidump"의 사용에 관한 제안을 주셔서 감사하지만 내 코드에서 가치를 캡처 하고이 코드를 통해 그것을 인쇄해야합니다 왜 내가 그것을 필요로하는 이유는 무엇입니까 – lucifer

답변

1

다음 파이썬 코드는 매개 변수를 인쇄하는 콜백 함수입니다. 필자의 경우 배열의 각 바이트는 ASCII 문자를 나타냅니다).

def notification_callback(*args, **kwargs): 
    """ 
     Function that will receive DBus notifications signals (properties_changed signals) 
     when the temperature is updated 
    """ 
    #Get the byte array 
    byte_array = args[1]['Value'] 

    #Convert the byte array into a string 
    received_value = ''.join(chr(byte) for byte in byte_array) 
    print ("Received value " + received_value) 
+0

무엇이 반대, 즉 어떻게 문자열을 변환하는 '읽기'또는 '알림'특성을 넣기위한 dbus 호환 바이트 배열? 나는 'xyz'.encode()를하고 있지만 블루투스는 "src/gatt-database.c : property_changed_cb()"잘못된 "Value"속성이 " – pstanton