You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 19, 2024. It is now read-only.
When calling BLEAdapter.read_req() with any UUID I always get a NordicSemiException("Characteristic value handler not found") because get_char_value_handle() returns None.
The relevant code in get_char_value_handle() looks like this:
for c in s.chars:
if (c.uuid.value == uuid.value) and (
c.uuid.base.type == uuid.base.type
):
for d in c.descs:
if d.uuid.value == uuid.value:
return d.handle
return None
I don't think the characteristic value attribute is actually returned by ble_gattc_desc_disc in service_discovery(). I figure someone would have noticed this before though? Should it not simply return c.value_handle (which is populated by ble_gattc_char_disc) instead of iterating through the descriptors?
I can work around this by looking up the handle first with get_char_handle() (which does work) and providing attr_handle=h+1 to read_req(), but I doubt that's the intended use for that parameter.
Version: 0.15.0 (pip)
When calling
BLEAdapter.read_req()with any UUID I always get aNordicSemiException("Characteristic value handler not found")because get_char_value_handle() returns None.The relevant code in
get_char_value_handle()looks like this:I don't think the characteristic value attribute is actually returned by
ble_gattc_desc_discinservice_discovery(). I figure someone would have noticed this before though? Should it not simply returnc.value_handle(which is populated byble_gattc_char_disc) instead of iterating through the descriptors?I can work around this by looking up the handle first with
get_char_handle()(which does work) and providingattr_handle=h+1toread_req(), but I doubt that's the intended use for that parameter.