dvl_teledyne
PD0Raw.hpp
Go to the documentation of this file.
1 #ifndef DVL_TELEDYNE_PD0RAW_HPP
2 #define DVL_TELEDYNE_PD0RAW_HPP
3 
4 #include <stdint.h>
5 #include <boost/static_assert.hpp>
6 #include <vector>
7 
8 namespace dvl_teledyne
9 {
10  namespace raw
11  {
12  struct Header
13  {
14  enum MSG_ID { ID = 0x7f, DATA_SOURCE_ID = 0x7f };
15  uint8_t id;
16  uint8_t data_source_id;
17  uint16_t size;
18  uint8_t spare;
19  uint8_t msg_count;
20  uint16_t offsets[0];
21  } __attribute__((packed));
22 
27  {
33 
37  };
38 
41  {
49  };
50 
51  struct FixedLeader
52  {
53  enum MSG_ID { ID = 0x0000 };
54  uint16_t id;
55  uint8_t fw_version;
56  uint8_t fw_revision;
58  uint8_t simulated_data;
59  uint8_t lag_duration;
60  uint8_t beam_count;
61  uint8_t cell_count;
63  uint16_t cell_length;
65  uint8_t profiling_mode;
74  uint16_t yaw_alignment;
75  uint16_t yaw_bias;
76  uint8_t used_sensors;
81  uint8_t water_layer_end;
85  uint64_t cpu_board_serno;
87  uint8_t spare0;
89  uint8_t spare1[5];
90  } __attribute__((packed));
91  BOOST_STATIC_ASSERT(sizeof(FixedLeader) == 59);
92 
95  {
96  PD0_STATUS_BUS_ERROR = 0x00000001,
99  PD0_STATUS_ZERO_DIVIDE = 0x00000008,
105  PD0_STATUS_PINGING = 0x00000100,
114  PD0_STATUS_POWER_FAIL = 0x08000000,
119  } __attribute__((packed));
121  struct VariableLeader
122  {
123  enum MSG_ID { ID = 0x0080 };
124  uint16_t id;
125  uint16_t seq_low;
126  uint8_t rtc_year;
127  uint8_t rtc_month;
128  uint8_t rtc_day;
129  uint8_t rtc_hour;
130  uint8_t rtc_min;
131  uint8_t rtc_sec;
132  uint8_t rtc_hundredth;
133  uint8_t seq_high;
134 
136  uint16_t speed_of_sound;
138  uint16_t yaw;
139  uint16_t pitch;
140  uint16_t roll;
146  uint8_t stddev_yaw;
147  uint8_t stddev_pitch;
148  uint8_t stddev_roll;
149  uint8_t adc_channels[8];
150  uint32_t status_word;
151  uint16_t reserved;
154  uint8_t spare;
156  uint8_t y2k_rtc_year;
157  uint8_t y2k_rtc_month;
158  uint8_t y2k_rtc_day;
159  uint8_t y2k_rtc_hour;
160  uint8_t y2k_rtc_min;
161  uint8_t y2k_rtc_sec;
163  } __attribute__((packed));
164  BOOST_STATIC_ASSERT(sizeof(VariableLeader) == 65);
166 
169  struct CellVelocity
170  {
171  uint16_t velocity[4];
172  };
176  struct VelocityMessage
177  {
178  enum MSG_ID { ID = 0x0100 };
179  int16_t id;
180  CellVelocity velocities[0];
181  } __attribute__((packed));
182 
183  struct CellCorrelation
184  {
185  uint8_t correlation[4];
186  };
188  struct CorrelationMessage
189  {
190  enum MSG_ID { ID = 0x0200 };
191  uint16_t id;
192  CellCorrelation correlations[0];
193  } __attribute__((packed));
196  {
197  uint8_t intensity[4];
198  };
199 
201  {
202  enum MSG_ID { ID = 0x0300 };
203  uint16_t id;
205  } __attribute__((packed));
206 
207  struct CellQuality
208  {
209  uint8_t quality[4];
210  };
211 
213  {
214  enum MSG_ID { ID = 0x0400 };
215  uint16_t id;
217  } __attribute__((packed));
218 
220  {
221  enum MSG_ID { ID = 0x0600 };
222  uint16_t id;
223 
229  uint8_t bottom_mode;
231  uint32_t reserved;
232  uint16_t bottom_range_low[4];
233 
234  uint16_t bottom_velocity[4];
235  uint8_t bottom_correlation[4];
236  uint8_t bottom_evaluation[4];
238 
242  uint16_t water_layer_velocity[4];
246 
248  uint8_t rssi[4];
249  uint8_t gain;
250  uint8_t bottom_range_high[4];
251  // the Explorer DVL does not have these 4 Navigator-specific bytes: uint8_t reserved1[4];
252  } __attribute__((packed));
254  };
255 }
256 
257 #endif
Definition: PD0Raw.hpp:46
uint32_t status_word
Definition: PD0Raw.hpp:150
uint8_t bottom_mode
Definition: PD0Raw.hpp:229
uint8_t beam_count
Definition: PD0Raw.hpp:60
uint8_t adc_channels[8]
Definition: PD0Raw.hpp:149
Definition: PD0Raw.hpp:123
uint16_t water_layer_min_size
Definition: PD0Raw.hpp:239
Definition: PD0Raw.hpp:51
uint32_t pressure_variance_at_transducer
Definition: PD0Raw.hpp:153
Definition: PD0Raw.hpp:34
uint8_t water_layer_start
Definition: PD0Raw.hpp:80
Definition: PD0Raw.hpp:12
uint8_t bottom_evaluation[4]
Definition: PD0Raw.hpp:236
uint8_t bottom_evaluation_threshold
Definition: PD0Raw.hpp:227
uint8_t water_layer_quality[4]
Definition: PD0Raw.hpp:245
enum dvl_teledyne::raw::PD0_COORDINATE_TRANSFORMATION_MODES __attribute__
uint8_t spare
Definition: PD0Raw.hpp:154
uint8_t rtc_month
Definition: PD0Raw.hpp:127
MSG_ID
Definition: PD0Raw.hpp:14
uint32_t pressure_at_transducer
Definition: PD0Raw.hpp:152
uint16_t water_layer_near_boundary
Definition: PD0Raw.hpp:240
uint8_t y2k_rtc_year
Definition: PD0Raw.hpp:156
uint16_t yaw
Definition: PD0Raw.hpp:138
uint16_t id
Definition: PD0Raw.hpp:191
uint8_t lag_duration
Definition: PD0Raw.hpp:59
MSG_ID
Definition: PD0Raw.hpp:202
uint8_t fw_revision
Definition: PD0Raw.hpp:56
uint8_t water_layer_correlation_magnitude[4]
Definition: PD0Raw.hpp:243
uint8_t cell_count
Definition: PD0Raw.hpp:61
uint16_t yaw_alignment
Definition: PD0Raw.hpp:74
MSG_ID
Definition: PD0Raw.hpp:39
Definition: PD0Raw.hpp:195
Definition: PD0Raw.hpp:200
uint8_t bottom_correlation_threshold
Definition: PD0Raw.hpp:226
uint16_t id
Definition: PD0Raw.hpp:203
uint16_t transmit_lag_distance
Definition: PD0Raw.hpp:84
uint8_t time_between_ping_groups_min
Definition: PD0Raw.hpp:70
uint8_t fw_version
Definition: PD0Raw.hpp:55
uint8_t min_preping_wait_duration_hundredth
Definition: PD0Raw.hpp:145
uint16_t bottom_delay_before_reacquiring
Definition: PD0Raw.hpp:225
uint16_t depth_of_transducer
Definition: PD0Raw.hpp:137
uint8_t spare0
Definition: PD0Raw.hpp:87
uint16_t cell_length
Definition: PD0Raw.hpp:63
uint64_t cpu_board_serno
Definition: PD0Raw.hpp:85
PD0_SENSORS
Definition: PD0Raw.hpp:40
MSG_ID
Definition: PD0Raw.hpp:221
uint8_t data_source_id
Definition: PD0Raw.hpp:16
uint16_t narrow_bandwidth_mode
Definition: PD0Raw.hpp:86
uint8_t bottom_range_high[4]
Definition: PD0Raw.hpp:250
Definition: PD0Raw.hpp:212
uint16_t id
Definition: PD0Raw.hpp:124
uint8_t rssi[4]
Definition: PD0Raw.hpp:248
uint8_t false_target_threshold
Definition: PD0Raw.hpp:82
uint8_t bottom_good_ping_threshold
Definition: PD0Raw.hpp:228
uint8_t time_between_ping_groups_hundredth
Definition: PD0Raw.hpp:72
uint16_t blank_after_transmit_distance
Definition: PD0Raw.hpp:64
uint16_t offsets[0]
Definition: PD0Raw.hpp:20
uint8_t seq_high
Definition: PD0Raw.hpp:133
uint8_t water_layer_min_ping_threshold
Definition: PD0Raw.hpp:68
uint16_t water_layer_far_boundary
Definition: PD0Raw.hpp:241
Definition: PD0Raw.hpp:43
uint16_t pings_per_ensemble
Definition: PD0Raw.hpp:62
uint16_t bottom_range_low[4]
Definition: PD0Raw.hpp:232
uint16_t water_layer_velocity[4]
Definition: PD0Raw.hpp:242
uint8_t y2k_rtc_hundredth
Definition: PD0Raw.hpp:162
uint8_t correlation[4]
Definition: PD0Raw.hpp:185
uint8_t rtc_day
Definition: PD0Raw.hpp:128
MSG_ID
Definition: PD0Raw.hpp:214
uint8_t profiling_mode
Definition: PD0Raw.hpp:65
uint16_t speed_of_sound
Definition: PD0Raw.hpp:136
uint8_t stddev_yaw
Definition: PD0Raw.hpp:146
CellQuality quality[0]
Definition: PD0Raw.hpp:216
uint8_t y2k_rtc_sec
Definition: PD0Raw.hpp:161
uint8_t rtc_year
Definition: PD0Raw.hpp:126
uint8_t water_layer_intensity[4]
Definition: PD0Raw.hpp:244
MSG_ID
Definition: PD0Raw.hpp:123
Definition: PD0Raw.hpp:121
Definition: PD0Raw.hpp:53
uint8_t rtc_min
Definition: PD0Raw.hpp:130
BOOST_STATIC_ASSERT(sizeof(FixedLeader)==59)
uint16_t yaw_bias
Definition: PD0Raw.hpp:75
Definition: PD0Raw.hpp:105
uint16_t max_tracking_depth
Definition: PD0Raw.hpp:247
uint8_t code_repetition_count
Definition: PD0Raw.hpp:67
Definition: PD0Raw.hpp:29
uint16_t velocity[4]
Definition: PD0Raw.hpp:171
uint16_t reserved
Definition: PD0Raw.hpp:151
int16_t id
Definition: PD0Raw.hpp:179
Definition: PD0Raw.hpp:32
uint16_t first_cell_distance
Definition: PD0Raw.hpp:78
uint8_t stddev_pitch
Definition: PD0Raw.hpp:147
Definition: PD0Raw.hpp:45
PD0_COORDINATE_TRANSFORMATION_MODES
Definition: PD0Raw.hpp:26
uint8_t available_sensors
Definition: PD0Raw.hpp:77
uint16_t roll
Definition: PD0Raw.hpp:140
uint8_t simulated_data
Definition: PD0Raw.hpp:58
uint32_t reserved
Definition: PD0Raw.hpp:231
uint16_t system_configuration
Definition: PD0Raw.hpp:57
uint16_t transmit_pulse_length
Definition: PD0Raw.hpp:79
uint8_t base_frequency_index
Definition: PD0Raw.hpp:88
Definition: PD0Raw.hpp:178
PD0_STATUS_FLAGS
Definition: PD0Raw.hpp:94
uint8_t msg_count
Definition: PD0Raw.hpp:19
uint8_t coordinate_transformation_mode
Definition: PD0Raw.hpp:73
uint8_t intensity[4]
Definition: PD0Raw.hpp:197
uint8_t rtc_hour
Definition: PD0Raw.hpp:129
uint16_t id
Definition: PD0Raw.hpp:222
uint8_t stddev_roll
Definition: PD0Raw.hpp:148
uint8_t low_correlation_threshold
Definition: PD0Raw.hpp:66
uint8_t time_between_ping_groups_sec
Definition: PD0Raw.hpp:71
Definition: PD0Raw.hpp:207
uint8_t rtc_hundredth
Definition: PD0Raw.hpp:132
CellVelocity velocities[0]
Definition: PD0Raw.hpp:180
uint8_t water_layer_end
Definition: PD0Raw.hpp:81
uint8_t gain
Definition: PD0Raw.hpp:249
uint8_t y2k_rtc_month
Definition: PD0Raw.hpp:157
Definition: PD0Raw.hpp:44
uint8_t y2k_rtc_min
Definition: PD0Raw.hpp:160
uint8_t min_preping_wait_duration_min
Definition: PD0Raw.hpp:143
uint8_t bottom_good_ping_ratio[4]
Definition: PD0Raw.hpp:237
uint8_t quality[4]
Definition: PD0Raw.hpp:209
uint16_t bottom_velocity[4]
Definition: PD0Raw.hpp:234
Definition: PD0Raw.hpp:202
uint16_t bottom_ping_per_ensemble
Definition: PD0Raw.hpp:224
uint8_t min_preping_wait_duration_sec
Definition: PD0Raw.hpp:144
uint8_t y2k_rtc_day
Definition: PD0Raw.hpp:158
MSG_ID
Definition: PD0Raw.hpp:190
uint16_t pitch
Definition: PD0Raw.hpp:139
uint16_t seq_low
Definition: PD0Raw.hpp:125
Definition: PD0Raw.hpp:31
uint16_t bottom_max_velocity_error
Definition: PD0Raw.hpp:230
uint16_t id
Definition: PD0Raw.hpp:215
uint16_t id
Definition: PD0Raw.hpp:54
uint16_t temperature_at_transducer
Definition: PD0Raw.hpp:142
uint8_t id
Definition: PD0Raw.hpp:15
uint8_t spare
Definition: PD0Raw.hpp:18
Definition: PD0Raw.hpp:214
uint16_t size
Definition: PD0Raw.hpp:17
CellIntensity intensities[0]
Definition: PD0Raw.hpp:204
uint8_t y2k_rtc_century
Definition: PD0Raw.hpp:155
Definition: PD0Raw.hpp:14
uint16_t salinity_at_transducer
Definition: PD0Raw.hpp:141
uint8_t rtc_sec
Definition: PD0Raw.hpp:131
uint8_t used_sensors
Definition: PD0Raw.hpp:76
CellCorrelation correlations[0]
Definition: PD0Raw.hpp:192
uint16_t water_layer_velocity_threshold
Definition: PD0Raw.hpp:69
uint8_t y2k_rtc_hour
Definition: PD0Raw.hpp:159
uint8_t bottom_correlation[4]
Definition: PD0Raw.hpp:235
uint8_t spare1[5]
Definition: PD0Raw.hpp:89
uint16_t self_test_result
Definition: PD0Raw.hpp:135
uint8_t low_latency_trigger
Definition: PD0Raw.hpp:83