The previous "bulk" query (CenturionFeatureSet.GetFeatureId with
start_index, per-batch response) was limited by the 64-byte Centurion
frame size to ~13 features per response, and the device apparently
does not fragment MessageEvent responses — so start_index=14 returned
empty and we missed the remaining features.
Evidence: wired G522 exposes 30 features directly but wireless via
bridge only ever reports 13. Same sub-device, different access path,
same underlying feature set.
Switch to per-index queries matching how _discover_dongle_features
already works on the parent:
1. CenturionFeatureSet.GetCount (func 0) -> total feature count
2. CenturionFeatureSet.GetFeatureId (func 1) per index -> one feature
per response
Slower (N round-trips instead of 1) but handles any feature count
without fragmentation. Expected to reveal RGB, advanced EQ, sidetone,
etc. on the wireless G522.
Updated test fixture with per-index response format.
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| base.py | ||
| base_usb.py | ||
| centurion.py | ||
| centurion_constants.py | ||
| common.py | ||
| descriptors.py | ||
| desktop_notifications.py | ||
| device.py | ||
| diversion.py | ||
| exceptions.py | ||
| hidpp10.py | ||
| hidpp10_constants.py | ||
| hidpp20.py | ||
| hidpp20_constants.py | ||
| i18n.py | ||
| listener.py | ||
| notifications.py | ||
| onboard_eq.py | ||
| receiver.py | ||
| settings.py | ||
| settings_new.py | ||
| settings_templates.py | ||
| settings_validator.py | ||
| special_keys.py | ||