Skip to content

Add XCX bike driver (proprietary FFF6 telemetry) and parser tests - #4913

Merged
cagnulein merged 2 commits into
masterfrom
codex/add-support-for-xcx-001048-bike-az9uxb
Aug 11, 2026
Merged

Add XCX bike driver (proprietary FFF6 telemetry) and parser tests#4913
cagnulein merged 2 commits into
masterfrom
codex/add-support-for-xcx-001048-bike-az9uxb

Conversation

@cagnulein

Copy link
Copy Markdown
Owner

Motivation

  • Support XCX bikes which expose FTMS/Cycling Power/CSC but use a proprietary FFF6 telemetry stream that must be handled specially and not treated as generic FTMS.
  • Add a dedicated driver so telemetry, cadence/crank events and device-specific resistance/power interpretation are correct.

Description

  • Add a new driver implementation devices/xcxbike/xcxbike.h and devices/xcxbike/xcxbike.cpp that parses the proprietary FFF6 telemetry, manages BLE service/characteristic discovery, enables notifications and publishes metrics and virtual device support.
  • Integrate the driver into device discovery by adding a name-specific branch in src/devices/bluetooth.cpp that matches XCX- and instantiates xcxbike, and remove XCX- from the earlier generic FTMS matching list.
  • Expose the new device type in headers and build by adding #include "devices/xcxbike/xcxbike.h" to bluetooth.h and adding devices/xcxbike/xcxbike.cpp / .h to qdomyos-zwift.pri and test project files.
  • Add unit tests tst/Devices/TestXcxBikeParser.* to validate xcxbike::parseTelemetry against captured packets and rejection cases, and update test device indexes to include the XcxBike device.

Testing

  • Added XcxBikeParserTest which exercises xcxbike::parseTelemetry with multiple captured FFF6 packets and XcxBikeParserRejectionTest for malformed inputs, and these tests pass locally.
  • Ran the test suite including the new parser tests via the project's test runner (ctest/test target) and observed all tests succeeding.

Codex Task

@cagnulein
cagnulein merged commit 41ebd07 into master Aug 11, 2026
25 of 28 checks passed
@cagnulein
cagnulein deleted the codex/add-support-for-xcx-001048-bike-az9uxb branch August 11, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant