bluerobotics / bluerobotics/ping-firmware
Support device ID filtering
- Dominant language
- No language data
- Stars
- 7
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
The [message format](https://docs.bluerobotics.com/ping-protocol/#message-format) includes fields for receiver and sender IDs, but using them is [documented as "not currently implemented"](https://docs.bluerobotics.com/ping-protocol/#negotiation-example), and they just get hardcoded to 0.
This is a valuable feature for people wanting to communicate with multiple devices on the same bus, as [raised in this forum thread](https://discuss.bluerobotics.com/t/parallel-uart-connection-for-2-ping2-sonars/17228).
This seems conceptually straightforward to implement, with a `msg.dst_device_id in (0, 255, self.device_id)` check in the receiving code, and including the sender ID if there is one set, although full support would require also updating Ping Viewer and the various ping libraries to make use of the feature.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in the receiving code and inspect how message receiver and sender IDs are represented, using the linked message format and negotiation example as context. Verify the proposed destination-ID filtering and sender-ID handling against the firmware behavior; done means devices can communicate selectively on a shared bus, with the broader Ping Viewer and library updates identified as follow-up work.
Written by the indexing model from the issue text.
Assessment
- Domain
- embedded-iot, networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100