Main driver node for Tritech Gemini 1200ikd multibeam sonar.
More...
#include <gemini_sonar_node.hpp>
|
| void | handleStartSonar (const std::shared_ptr< gemini_sonar_driver_interfaces::srv::StartSonar::Request > request, std::shared_ptr< gemini_sonar_driver_interfaces::srv::StartSonar::Response > response) |
| | Service callback to start the sonar.
|
| |
| void | handleStopSonar (const std::shared_ptr< gemini_sonar_driver_interfaces::srv::StopSonar::Request > request, std::shared_ptr< gemini_sonar_driver_interfaces::srv::StopSonar::Response > response) |
| | Service callback to stop the sonar.
|
| |
| void | handleSvs5Message (unsigned int messageType, unsigned int size, const char *const value) |
| | Instance method to handle Svs5 messages.
|
| |
| void | processGeminiStatus (const GLF::GeminiStatusRecord *pStatus) |
| | Process GLF status messages.
|
| |
| void | processGLFImage (const GLF::GLogTargetImage &image) |
| | Process GLF sonar image data.
|
| |
| void | processLoggerRecUpdate (const GLF::SOutputFileInfo *loggerInfo) |
| | Process logger recording update messages.
|
| |
| bool | initializeGeminiSDK () |
| | Initialize the Gemini SDK and configure sonar.
|
| |
| bool | configureSonar () |
| | Configure sonar parameters via SDK.
|
| |
| bool | startPinging () |
| | Start the sonar pinging.
|
| |
| bool | stopPinging () |
| | Stop the sonar pinging.
|
| |
| void | startLogging (std::string log_directory) |
| | Start Gemini data logging (Native GLF format)
|
| |
| void | stopLogging () |
| | Stop Gemini data logging (Native GLF format)
|
| |
| void | shutdownGeminiSDK () |
| | Shutdown the Gemini SDK.
|
| |
| bool | waitForSonarDetection (int timeout_seconds) |
| | Wait for sonar to be detected on network.
|
| |
| void | setSdkParameter (SequencerApi::ESvs5ConfigType config_type, size_t size, const void *data, const std::string ¶m_name) |
| | Helper to set SDK configuration with error logging.
|
| |
|
| static void | svs5DataCallback (unsigned int messageType, unsigned int size, const char *const value) |
| | Static callback function for Svs5Sequencer API This is called by the SDK when data is received.
|
| |
Main driver node for Tritech Gemini 1200ikd multibeam sonar.
This node interfaces with the Gemini SDK to:
- Configure sonar parameters via ROS2 parameters
- Start/stop sonar operation via ROS2 services
- Publish multibeam data using marine_acoustic_msgs (RawSonarImage, ProjectedSonarImage)
- Log data in native Gemini format alongside ROS2 bags
◆ GeminiSonarNode()
| GeminiSonarNode::GeminiSonarNode |
( |
| ) |
|
◆ ~GeminiSonarNode()
| GeminiSonarNode::~GeminiSonarNode |
( |
| ) |
|
◆ configureSonar()
| bool GeminiSonarNode::configureSonar |
( |
| ) |
|
|
protected |
Configure sonar parameters via SDK.
◆ handleStartSonar()
| void GeminiSonarNode::handleStartSonar |
( |
const std::shared_ptr< gemini_sonar_driver_interfaces::srv::StartSonar::Request > | request, |
|
|
std::shared_ptr< gemini_sonar_driver_interfaces::srv::StartSonar::Response > | response ) |
|
protected |
Service callback to start the sonar.
◆ handleStopSonar()
| void GeminiSonarNode::handleStopSonar |
( |
const std::shared_ptr< gemini_sonar_driver_interfaces::srv::StopSonar::Request > | request, |
|
|
std::shared_ptr< gemini_sonar_driver_interfaces::srv::StopSonar::Response > | response ) |
|
protected |
Service callback to stop the sonar.
◆ handleSvs5Message()
| void GeminiSonarNode::handleSvs5Message |
( |
unsigned int | messageType, |
|
|
unsigned int | size, |
|
|
const char *const | value ) |
|
protected |
Instance method to handle Svs5 messages.
◆ initializeGeminiSDK()
| bool GeminiSonarNode::initializeGeminiSDK |
( |
| ) |
|
|
protected |
Initialize the Gemini SDK and configure sonar.
◆ processGeminiStatus()
| void GeminiSonarNode::processGeminiStatus |
( |
const GLF::GeminiStatusRecord * | pStatus | ) |
|
|
protected |
Process GLF status messages.
◆ processGLFImage()
| void GeminiSonarNode::processGLFImage |
( |
const GLF::GLogTargetImage & | image | ) |
|
|
protected |
Process GLF sonar image data.
◆ processLoggerRecUpdate()
| void GeminiSonarNode::processLoggerRecUpdate |
( |
const GLF::SOutputFileInfo * | loggerInfo | ) |
|
|
protected |
Process logger recording update messages.
◆ setSdkParameter()
| void GeminiSonarNode::setSdkParameter |
( |
SequencerApi::ESvs5ConfigType | config_type, |
|
|
size_t | size, |
|
|
const void * | data, |
|
|
const std::string & | param_name ) |
|
protected |
Helper to set SDK configuration with error logging.
- Parameters
-
| config_type | The configuration type to set |
| size | Size of the configuration data |
| data | Pointer to configuration data |
| param_name | Human-readable parameter name for logging |
◆ shutdownGeminiSDK()
| void GeminiSonarNode::shutdownGeminiSDK |
( |
| ) |
|
|
protected |
◆ startLogging()
| void GeminiSonarNode::startLogging |
( |
std::string | log_directory | ) |
|
|
protected |
Start Gemini data logging (Native GLF format)
◆ startPinging()
| bool GeminiSonarNode::startPinging |
( |
| ) |
|
|
protected |
◆ stopLogging()
| void GeminiSonarNode::stopLogging |
( |
| ) |
|
|
protected |
Stop Gemini data logging (Native GLF format)
◆ stopPinging()
| bool GeminiSonarNode::stopPinging |
( |
| ) |
|
|
protected |
◆ svs5DataCallback()
| static void gemini_sonar_driver::GeminiSonarNode::svs5DataCallback |
( |
unsigned int | messageType, |
|
|
unsigned int | size, |
|
|
const char *const | value ) |
|
staticprotected |
Static callback function for Svs5Sequencer API This is called by the SDK when data is received.
◆ waitForSonarDetection()
| bool GeminiSonarNode::waitForSonarDetection |
( |
int | timeout_seconds | ) |
|
|
protected |
Wait for sonar to be detected on network.
- Parameters
-
| timeout_seconds | Maximum time to wait in seconds |
- Returns
- true if sonar detected, false if timeout
◆ current_ping_beams_
| std::vector<std::vector<uint8_t> > gemini_sonar_driver::GeminiSonarNode::current_ping_beams_ |
|
protected |
◆ data_mutex_
| std::mutex gemini_sonar_driver::GeminiSonarNode::data_mutex_ |
|
protected |
◆ instance_
◆ last_message_time_
| std::atomic<uint64_t> gemini_sonar_driver::GeminiSonarNode::last_message_time_ {0} |
|
protected |
Timestamp of last received message.
◆ parameters_
| Parameters gemini_sonar_driver::GeminiSonarNode::parameters_ |
|
protected |
◆ ping_complete_
| bool gemini_sonar_driver::GeminiSonarNode::ping_complete_ {false} |
|
protected |
◆ ping_number_
| uint32_t gemini_sonar_driver::GeminiSonarNode::ping_number_ {0} |
|
protected |
◆ ping_time_
| double gemini_sonar_driver::GeminiSonarNode::ping_time_ {0.0} |
|
protected |
◆ publishers_
| Publishers gemini_sonar_driver::GeminiSonarNode::publishers_ |
|
protected |
◆ range_m_
| double gemini_sonar_driver::GeminiSonarNode::range_m_ {0.0} |
|
protected |
◆ sdk_initialized_
| std::atomic<bool> gemini_sonar_driver::GeminiSonarNode::sdk_initialized_ {false} |
|
protected |
◆ services_
| Services gemini_sonar_driver::GeminiSonarNode::services_ |
|
protected |
◆ sonar_detected_
| std::atomic<bool> gemini_sonar_driver::GeminiSonarNode::sonar_detected_ {false} |
|
protected |
True if we've received any messages from sonar.
◆ sonar_streaming_
| std::atomic<bool> gemini_sonar_driver::GeminiSonarNode::sonar_streaming_ {false} |
|
protected |
The documentation for this class was generated from the following files: