Skip to content

Add Omniscan3D support and fix message definition lookup#172

Merged
patrickelectric merged 2 commits into
bluerobotics:masterfrom
steve-at-oblique:add_omniscan3d_fix_definitions
Jun 30, 2026
Merged

Add Omniscan3D support and fix message definition lookup#172
patrickelectric merged 2 commits into
bluerobotics:masterfrom
steve-at-oblique:add_omniscan3d_fix_definitions

Conversation

@steve-at-oblique

Copy link
Copy Markdown
Contributor

This PR adds support for the OmniScan3D device to the ping-python library, including a generated device class and example application.

While integrating the new device, I discovered that the library assumes message IDs are globally unique by using a single payload_dict_all lookup table. OmniScan3D and Surveyor240 both define ATTITUDE_REPORT (message ID 504), but with different payload layouts, causing packets to be decoded incorrectly.

To address this, PingMessage, PingParser, and PingDevice were updated to support device-specific message definition dictionaries while preserving the existing payload_dict_all behavior for backward compatibility. This allows device families with overlapping message IDs to coexist correctly without affecting existing applications.

The implementation has been tested against both Surveyor240 and OmniScan3D hardware. The example applications communicate correctly with the devices, and generated log files can be successfully opened and replayed in SonarView.

@patrickelectric

Copy link
Copy Markdown
Member

@steve-at-oblique I'm failing to build your branch locally here, I also added a CI test validation to check for PR as well in the repository. If you can, please check if your branch is working and rebase over master for the CI to check if it's generating the files correctly.

@steve-at-oblique

Copy link
Copy Markdown
Contributor Author

I updated the submodule which was out of date.

@patrickelectric patrickelectric merged commit 29f52ac into bluerobotics:master Jun 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants