garmin gfdi v2 wire format - #52
Conversation
…otobuf pure-dart bytes only, no ble. covers close_all/register_ml handshake, cobs reassembly, the gfdi frame + crc, the device-information push, current-time answer, status ack, and a minimal protobuf reader/writer for one battery round trip. everything else in the smart container stays untouched.
Reviewer's GuideIntroduces an experimental, BLE-independent Garmin GFDI v2 byte protocol stack: MLR session multiplexing, COBS transport framing, CRC-validated GFDI messages, selected device/session responses, and a minimal battery-status protobuf round trip, with comprehensive unit tests while leaving unrelated protobuf and streaming services untouched. Sequence diagram for Garmin GFDI battery-status round tripsequenceDiagram
participant Host
participant Watch
Host->>Watch: garminCloseAllRequest()
Watch-->>Host: GarminCloseAllAck
Host->>Watch: garminRegisterMlRequest(kGarminServiceGfdi)
Watch-->>Host: GarminRegisterMlResponse
Watch-->>Host: GarminGfdiFrame DEVICE_INFORMATION
Host->>Watch: garminBuildStatusAck(kGarminMsgDeviceInformation)
Watch->>Host: garminBuildProtobufRequest()
Host-->>Watch: garminBuildStatusAck(kGarminMsgProtobufRequest)
Watch-->>Host: GarminGfdiFrame PROTOBUF_RESPONSE
Host->>Host: garminParseBatteryResponseProto()
Host->>Watch: garminBuildStatusAck(kGarminMsgProtobufResponse)
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Warning Review limit reachedNext included review available in 18 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
Rate Limit Exceeded
|
|
@coderabbitai review |
Rate Limit Exceeded
|
|
@coderabbitai review |
|
…ssing it's a handle
cobs + mlr multiplexing + gfdi frame/crc for garmin watches. covers the
close_all/register_ml handshake, the device-information push, current-time
answer, status ack, and a minimal protobuf reader/writer for one battery
round trip (Smart.device_status_service.remote_device_battery_status_*).
no ble here, bytes only. everything else in the protobuf container and the
numbered real-time streaming services are untouched.
Summary by Sourcery
Add experimental byte-level Garmin GFDI v2 protocol support for session setup, device identification, time synchronization, acknowledgements, and battery status exchange.
New Features:
Enhancements:
Tests: