Solaar/tests/logitech_receiver
Ken Sanislo cfc69431d1 Use per-index queries for Centurion sub-device feature enumeration
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.
2026-05-10 15:39:17 -07:00
..
__init__.py
fake_hidpp.py
test_base.py Tighten Centurion probe and silence FeaturesArray query spam 2026-05-10 15:39:17 -07:00
test_base_usb.py
test_common.py
test_desktop_notifications.py
test_device.py Fix G522 0x50 Centurion init failure and protocol version crash 2026-05-10 15:39:17 -07:00
test_diversion.py
test_hidpp10.py device: Handle composite IntFlag.name on Python < 3.11 (#3187) 2026-04-16 11:38:25 -04:00
test_hidpp20_complex.py Use per-index queries for Centurion sub-device feature enumeration 2026-05-10 15:39:17 -07:00
test_hidpp20_simple.py
test_notifications.py
test_receiver.py device: Support per-slot unpair on Lightspeed receivers (CLI + GUI) (#3183) 2026-04-17 09:34:58 -04:00
test_setting_templates.py Add per-key RGB color painter and replace MAP_CHOICE color validator 2026-05-10 17:52:55 -04:00
test_settings_validator.py