Gemini Sonar Driver  1.0.0
A ROS2 Package for the Tritech Gemini 1200ikd sonar
Loading...
Searching...
No Matches
glf_processor.hpp File Reference
#include "package_defs.hpp"
#include <rclcpp/logging.hpp>
#include <std_msgs/msg/header.hpp>
#include <geometry_msgs/msg/vector3.hpp>
#include <marine_acoustic_msgs/msg/raw_sonar_image.hpp>
#include <marine_acoustic_msgs/msg/projected_sonar_image.hpp>
#include "types.h"
#include "GenesisSerializer/GlfLoggerGeminiStructure.h"
#include <vector>
#include <cstdint>
Include dependency graph for glf_processor.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  gemini_sonar_driver::glf_processor::PingMetadata
 Processed ping metadata extracted from GLF::GMainImage. More...
 
struct  gemini_sonar_driver::glf_processor::BeamData
 Processed beam data ready for ROS message conversion. More...
 

Namespaces

namespace  gemini_sonar_driver
 
namespace  gemini_sonar_driver::glf_processor
 GLF (Gemini Log Format) data processing utilities.
 
namespace  gemini_sonar_driver::glf_processor::PingFlags
 Ping flags bit definitions.
 
namespace  gemini_sonar_driver::glf_processor::FrequencyResolution1200ikd
 Frequency resolution constants in meters.
 

Enumerations

enum class  gemini_sonar_driver::glf_processor::FrequencyMode : uint8_t { gemini_sonar_driver::glf_processor::LOW_FREQUENCY = 0 , gemini_sonar_driver::glf_processor::HIGH_FREQUENCY = 1 }
 Ping frequency modes. More...
 
enum class  gemini_sonar_driver::glf_processor::SoSMode : uint8_t { gemini_sonar_driver::glf_processor::SONAR_SENSOR = 0 , gemini_sonar_driver::glf_processor::MANUAL = 1 }
 Speed of sound source modes. More...
 

Functions

PingMetadata gemini_sonar_driver::glf_processor::extractPingMetadata (const GLF::GMainImage &mainImage, uint32_t ping_number)
 Extract ping metadata from GLF::GMainImage.
 
BeamData gemini_sonar_driver::glf_processor::extractBeamData (const GLF::GMainImage &mainImage, const PingMetadata &metadata)
 Extract beam intensity data from GLF::GMainImage.
 
bool gemini_sonar_driver::glf_processor::isCompressed (const GLF::GMainImage &mainImage)
 Check if data is compressed and needs decompression.
 
bool gemini_sonar_driver::glf_processor::decompress (GLF::GMainImage &mainImage)
 Decompress GLF image data if needed.
 
marine_acoustic_msgs::msg::PingInfo gemini_sonar_driver::glf_processor::createPingInfo (const PingMetadata &metadata)
 Create PingInfo message from conversion parameters.
 
marine_acoustic_msgs::msg::SonarImageData gemini_sonar_driver::glf_processor::createSonarImageData (const BeamData &beam_data, const PingMetadata &metadata, uint8_t dtype)
 Create SonarImageData message from beam data (OPTIMIZED)
 
marine_acoustic_msgs::msg::RawSonarImage gemini_sonar_driver::glf_processor::createRawSonarImage (const GLF::GMainImage &mainImage, const PingMetadata &metadata, const BeamData &beam_data, const std::string &frame_id)
 Create marine_acoustic_msgs/RawSonarImage from parsed GLF data.
 
marine_acoustic_msgs::msg::ProjectedSonarImage gemini_sonar_driver::glf_processor::createProjectedSonarImage (const GLF::GMainImage &mainImage, const PingMetadata &metadata, const BeamData &beam_data, const std::string &frame_id)
 Create marine_acoustic_msgs/ProjectedSonarImage (spatial domain)
 

Variables

constexpr uint16_t gemini_sonar_driver::glf_processor::PingFlags::FREQUENCY_MASK = 0x0100
 Bit 8: Frequency mode (1=High/1200kHz, 0=Low/720kHz)
 
constexpr uint16_t gemini_sonar_driver::glf_processor::PingFlags::SOS_MODE_MASK = 0x8000
 Bit 15: Speed of sound mode.
 
constexpr double gemini_sonar_driver::glf_processor::FrequencyResolution1200ikd::RES_720KHZ = 0.0040
 720kHz frequency resolution (4.0mm)
 
constexpr double gemini_sonar_driver::glf_processor::FrequencyResolution1200ikd::RES_1200KHZ = 0.0024
 1200kHz frequency resolution (2.4mm)