Skip to content

Add Omniscan3D support and fix message definition lookup#172

Open
steve-at-oblique wants to merge 1 commit into
bluerobotics:masterfrom
steve-at-oblique:add_omniscan3d_fix_definitions
Open

Add Omniscan3D support and fix message definition lookup#172
steve-at-oblique wants to merge 1 commit into
bluerobotics:masterfrom
steve-at-oblique:add_omniscan3d_fix_definitions

Conversation

@steve-at-oblique

Copy link
Copy Markdown

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.

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.

1 participant