Common
common packages for kyubic
 
Loading...
Searching...
No Matches
pd0_types.hpp
Go to the documentation of this file.
1
10#ifndef _PD0_TYPES_HPP
11#define _PD0_TYPES_HPP
12
13#include <cstdint>
14#include <vector>
15
17{
18
19// Header ID
20const uint16_t DATA_ID = 0x7F7F;
21
23{
24 uint8_t cpu_fw_ver;
25 uint8_t cpu_fw_rev;
26 uint16_t system_config;
27 uint8_t sim_flag;
28 uint8_t lag_length;
29 uint8_t num_beams;
30 uint8_t num_cells; // Number of Depth Cells
32 uint16_t depth_cell_length; // cm
33 uint16_t blank_after_transmit; // cm
36 uint8_t no_code_rep;
38 uint16_t error_vel_max; // mm/s
39 uint8_t tpp_minutes;
40 uint8_t tpp_seconds;
43 uint16_t heading_alignment; // 0.01 deg
44 uint16_t heading_bias; // 0.01 deg
47 uint16_t bin1_distance; // cm
48 uint16_t xmit_pulse_length; // cm
53 uint32_t serial_number;
54};
55
57{
59 uint8_t rtc_year;
60 uint8_t rtc_month;
61 uint8_t rtc_day;
62 uint8_t rtc_hour;
63 uint8_t rtc_minute;
64 uint8_t rtc_second;
67 uint16_t bit_result;
68 uint16_t speed_of_sound; // m/s
69 uint16_t transducer_depth; // dm
70 uint16_t heading; // 0.01 deg
71 int16_t pitch; // 0.01 deg
72 int16_t roll; // 0.01 deg
73 uint16_t salinity; // ppt
74 int16_t temperature; // 0.01 deg C
75 uint8_t mpt_minutes;
76 uint8_t mpt_seconds;
79 uint16_t pitch_std_dev;
80 uint16_t roll_std_dev;
81 uint16_t adc_channels[8]; // Converted to meaningful uint16 where applicable
82 uint32_t pressure; // daPa
83 uint32_t pressure_variance; // daPa
84 uint8_t leak_status;
85 uint16_t leak_a_count;
86 uint16_t leak_b_count;
87 uint16_t tx_voltage; // 0.001 V
88 uint16_t tx_current; // 0.001 A
89 uint16_t transducer_impedance; // 0.001 Ohm
90};
91
93{
95 uint8_t corr_mag_min;
96 uint8_t eval_amp_min;
97 uint8_t mode;
98 uint16_t error_vel_max;
99 uint32_t range[4]; // cm (Combined LSB/MSB)
100 int16_t velocity[4]; // mm/s
101 uint8_t correlation[4];
102 uint8_t eval_amp[4];
103 uint8_t percent_good[4];
107 int16_t ref_velocity[4];
108 uint8_t ref_correlation[4];
111 uint16_t max_depth; // dm
112 uint8_t rssi_amp[4];
113 uint8_t gain;
114};
115
117{
118 bool is_valid = false;
122
123 // Arrays for per-cell data. Size will be num_cells.
124 // Inner vector/array size is 4 (beams).
125 bool has_velocity = false;
126 std::vector<std::vector<int16_t>> velocity; // mm/s [cell][beam]
127
128 bool has_correlation = false;
129 std::vector<std::vector<uint8_t>> correlation; // [cell][beam] (0-255)
130
131 bool has_echo_intensity = false;
132 std::vector<std::vector<uint8_t>> echo_intensity; // [cell][beam] (approx 0.45 dB/count)
133
134 bool has_percent_good = false;
135 std::vector<std::vector<uint8_t>> percent_good; // [cell][beam] (0-100)
136
137 bool has_status = false;
138 std::vector<std::vector<uint8_t>> status; // [cell][beam] (0=Bad, 1=Good?)
139};
140
141} // namespace driver::dvl_driver::path_finder::pd0
142#endif
Definition: pd0_parser.hpp:18
const uint16_t DATA_ID
Definition: pd0_types.hpp:20
uint8_t percent_good[4]
Definition: pd0_types.hpp:103
uint16_t ref_layer_far
Definition: pd0_types.hpp:106
uint16_t ref_layer_min
Definition: pd0_types.hpp:104
uint8_t eval_amp[4]
Definition: pd0_types.hpp:102
uint32_t range[4]
Definition: pd0_types.hpp:99
uint8_t ref_percent_good[4]
Definition: pd0_types.hpp:110
uint8_t rssi_amp[4]
Definition: pd0_types.hpp:112
int16_t velocity[4]
Definition: pd0_types.hpp:100
uint8_t mode
Definition: pd0_types.hpp:97
uint8_t ref_correlation[4]
Definition: pd0_types.hpp:108
int16_t ref_velocity[4]
Definition: pd0_types.hpp:107
uint16_t error_vel_max
Definition: pd0_types.hpp:98
uint8_t corr_mag_min
Definition: pd0_types.hpp:95
uint8_t ref_echo_intensity[4]
Definition: pd0_types.hpp:109
uint8_t eval_amp_min
Definition: pd0_types.hpp:96
uint8_t correlation[4]
Definition: pd0_types.hpp:101
uint8_t gain
Definition: pd0_types.hpp:113
uint16_t ref_layer_near
Definition: pd0_types.hpp:105
uint16_t max_depth
Definition: pd0_types.hpp:111
uint16_t pings_per_ensemble
Definition: pd0_types.hpp:94
uint8_t num_beams
Definition: pd0_types.hpp:29
uint8_t tpp_seconds
Definition: pd0_types.hpp:40
uint8_t profiling_mode
Definition: pd0_types.hpp:34
uint16_t system_bandwidth
Definition: pd0_types.hpp:52
uint16_t heading_bias
Definition: pd0_types.hpp:44
uint8_t false_target_thresh
Definition: pd0_types.hpp:50
uint16_t blank_after_transmit
Definition: pd0_types.hpp:33
uint8_t num_cells
Definition: pd0_types.hpp:30
uint8_t lag_length
Definition: pd0_types.hpp:28
uint8_t coord_transform
Definition: pd0_types.hpp:42
uint16_t pings_per_ensemble
Definition: pd0_types.hpp:31
uint16_t transmit_lag_distance
Definition: pd0_types.hpp:51
uint8_t sensors_available
Definition: pd0_types.hpp:46
uint16_t xmit_pulse_length
Definition: pd0_types.hpp:48
uint16_t heading_alignment
Definition: pd0_types.hpp:43
uint8_t sensor_source
Definition: pd0_types.hpp:45
uint8_t low_corr_thresh
Definition: pd0_types.hpp:35
uint16_t depth_cell_length
Definition: pd0_types.hpp:32
uint8_t tpp_hundredths
Definition: pd0_types.hpp:41
uint16_t system_config
Definition: pd0_types.hpp:26
uint8_t tpp_minutes
Definition: pd0_types.hpp:39
uint8_t percent_good_min
Definition: pd0_types.hpp:37
uint8_t cpu_fw_ver
Definition: pd0_types.hpp:24
uint8_t no_code_rep
Definition: pd0_types.hpp:36
uint16_t bin1_distance
Definition: pd0_types.hpp:47
uint16_t error_vel_max
Definition: pd0_types.hpp:38
uint32_t serial_number
Definition: pd0_types.hpp:53
uint8_t cpu_fw_rev
Definition: pd0_types.hpp:25
uint16_t wp_ref_layer_avg
Definition: pd0_types.hpp:49
uint8_t sim_flag
Definition: pd0_types.hpp:27
std::vector< std::vector< uint8_t > > status
Definition: pd0_types.hpp:138
VariableLeader variable_leader
Definition: pd0_types.hpp:120
bool has_velocity
Definition: pd0_types.hpp:125
BottomTrack bottom_track
Definition: pd0_types.hpp:121
bool has_echo_intensity
Definition: pd0_types.hpp:131
FixedLeader fixed_leader
Definition: pd0_types.hpp:119
bool has_percent_good
Definition: pd0_types.hpp:134
std::vector< std::vector< int16_t > > velocity
Definition: pd0_types.hpp:126
std::vector< std::vector< uint8_t > > percent_good
Definition: pd0_types.hpp:135
bool has_status
Definition: pd0_types.hpp:137
bool has_correlation
Definition: pd0_types.hpp:128
bool is_valid
Definition: pd0_types.hpp:118
std::vector< std::vector< uint8_t > > echo_intensity
Definition: pd0_types.hpp:132
std::vector< std::vector< uint8_t > > correlation
Definition: pd0_types.hpp:129
uint8_t mpt_seconds
Definition: pd0_types.hpp:76
uint16_t transducer_depth
Definition: pd0_types.hpp:69
uint8_t mpt_hundredths
Definition: pd0_types.hpp:77
uint8_t rtc_minute
Definition: pd0_types.hpp:63
uint32_t pressure_variance
Definition: pd0_types.hpp:83
uint16_t ensemble_number
Definition: pd0_types.hpp:58
uint16_t speed_of_sound
Definition: pd0_types.hpp:68
uint16_t tx_voltage
Definition: pd0_types.hpp:87
uint8_t rtc_day
Definition: pd0_types.hpp:61
uint16_t tx_current
Definition: pd0_types.hpp:88
int16_t temperature
Definition: pd0_types.hpp:74
uint16_t heading_std_dev
Definition: pd0_types.hpp:78
uint16_t salinity
Definition: pd0_types.hpp:73
uint8_t rtc_month
Definition: pd0_types.hpp:60
uint8_t rtc_second
Definition: pd0_types.hpp:64
int16_t roll
Definition: pd0_types.hpp:72
uint16_t heading
Definition: pd0_types.hpp:70
uint16_t transducer_impedance
Definition: pd0_types.hpp:89
uint16_t pitch_std_dev
Definition: pd0_types.hpp:79
uint8_t rtc_hundredths
Definition: pd0_types.hpp:65
uint8_t leak_status
Definition: pd0_types.hpp:84
uint32_t pressure
Definition: pd0_types.hpp:82
uint8_t mpt_minutes
Definition: pd0_types.hpp:75
uint16_t adc_channels[8]
Definition: pd0_types.hpp:81
uint16_t leak_a_count
Definition: pd0_types.hpp:85
uint16_t ensemble_rollovers
Definition: pd0_types.hpp:66
uint8_t rtc_year
Definition: pd0_types.hpp:59
int16_t pitch
Definition: pd0_types.hpp:71
uint16_t roll_std_dev
Definition: pd0_types.hpp:80
uint16_t leak_b_count
Definition: pd0_types.hpp:86
uint16_t bit_result
Definition: pd0_types.hpp:67
uint8_t rtc_hour
Definition: pd0_types.hpp:62