Sub getDescriptors(ServiceId As String, CharacteristicsID As String)
Dim jo As JavaObject = Ble
Dim ser As JavaObject = jo.RunMethod("getService", Array(ServiceId))
Dim cLst As List = ser.RunMethod("getCharacteristics",Null)
For Each sJo As JavaObject In cLst
Log($"svc_drager::bleManager_DataAvailable::NEW BLE - ${sJo.RunMethodJO("getUuid",Null).RunMethod("toString",Null)}"$)
Next
Dim chrc As JavaObject = jo.RunMethod("getChar", Array(ser, CharacteristicsID))
If chrc = Null Then
Log("Err Find : " & CharacteristicsID)
Return
End If
Dim descriptors As List = chrc.RunMethod("getDescriptors", Null)
Log("descriptors.size = " & descriptors.Size)
For Each desc As JavaObject In descriptors
Dim gatt As JavaObject = Ble
gatt = gatt.GetField("gatt")
gatt.RunMethod("readDescriptor", Array(desc))
Sleep(2000) 'play here
Dim uuid As Object = desc.RunMethod("getUuid", Null) '
Dim uuidStr As String = uuid.As(JavaObject).RunMethod("toString", Null) '
Log("svc_drager::bleManager_DataAvailable: UUID = " & uuidStr)
Next
End Sub
Private Sub Ble_DescriptorRead (Success As Boolean, Descriptor As Object)
Dim bc As ByteConverter
If Success Then
Dim des As JavaObject = Descriptor
Log("UUID: " & des.RunMethod("getUuid", Null))
Dim value() As Byte = des.RunMethod("getValue", Null)
'use bc.HexFromBytes to log it
Log("value " & bc.HexFromBytes(value))
End If
End Sub