Voyant API 0.2.1
Loading...
Searching...
No Matches
voyant_point_data_wrapper.hpp
Go to the documentation of this file.
1// Copyright (c) 2024-2025 Voyant Photonics, Inc.
2// All rights reserved.
3
4#pragma once
5#include "../capnp_wrapper.h"
6#include "point.capnp.h"
7#include <capnp/message.h>
8#include <capnp/serialize.h>
9
16class PointDataWrapper : public CapnpWrapper<PointData>
17{
18private:
19 int32_t timestamp_nanosecs_ = 0;
20 uint32_t point_index_ = 0;
21 float x_ = 0.0f;
22 float y_ = 0.0f;
23 float z_ = 0.0f;
24 float radial_vel_ = 0.0f;
25 float snr_linear_ = 0.0f;
27 float noise_mean_estimate_ = 0.0f;
28 float min_ramp_snr_ = 0.0f;
29 DropReason drop_reason_ = DropReason::UNKNOWN;
30
31public:
36
41 void fromProto(PointData::Reader reader) override;
42
47 void toProto(PointData::Builder &builder) const override;
48
53 void debugString(std::ostream &os) const override;
54
55 // Getters and setters
60 int32_t timestamp_nanosecs() const { return timestamp_nanosecs_; }
61
66 void set_timestamp_nanosecs(int32_t value) { timestamp_nanosecs_ = value; }
67
72 uint32_t point_index() const { return point_index_; }
73
78 void set_point_index(uint32_t value) { point_index_ = value; }
79
84 float x() const { return x_; }
85
90 void set_x(float value) { x_ = value; }
91
96 float y() const { return y_; }
97
102 void set_y(float value) { y_ = value; }
103
108 float z() const { return z_; }
109
114 void set_z(float value) { z_ = value; }
115
120 float radial_vel() const { return radial_vel_; }
121
126 void set_radial_vel(float value) { radial_vel_ = value; }
127
136 float snr_linear() const { return snr_linear_; }
137
142 void set_snr_linear(float value) { snr_linear_ = value; }
143
152
158
168
173 void set_noise_mean_estimate(float value) { noise_mean_estimate_ = value; }
174
182 float min_ramp_snr() const { return min_ramp_snr_; }
183
188 void set_min_ramp_snr(float value) { min_ramp_snr_ = value; }
189
201
206 void set_drop_reason(DropReason value) { drop_reason_ = value; }
207
212 bool is_valid() const { return drop_reason_ == DropReason::SUCCESS; }
213
219 void set_point_index_components(uint16_t azimuth, uint16_t elevation);
220
225 uint16_t azimuth_index() const;
226
231 uint16_t elevation_index() const;
232
237 float range() const;
238};
Base template class for Cap'n Proto wrappers.
Definition capnp_wrapper.h:23
Wrapper for PointData messages.
Definition voyant_point_data_wrapper.hpp:17
float snr_linear() const
Get signal-to-noise ratio (linear, electrical power)
Definition voyant_point_data_wrapper.hpp:136
void set_noise_mean_estimate(float value)
Set noise mean estimate.
Definition voyant_point_data_wrapper.hpp:173
void set_y(float value)
Set Y position.
Definition voyant_point_data_wrapper.hpp:102
int32_t timestamp_nanosecs() const
Get timestamp in nanoseconds since frame start.
Definition voyant_point_data_wrapper.hpp:60
void set_radial_vel(float value)
Set radial velocity.
Definition voyant_point_data_wrapper.hpp:126
float radial_vel_
Radial velocity in m/s (Doppler measurement)
Definition voyant_point_data_wrapper.hpp:24
float x_
X position in meters (Cartesian coordinate)
Definition voyant_point_data_wrapper.hpp:21
void set_snr_linear(float value)
Set signal-to-noise ratio.
Definition voyant_point_data_wrapper.hpp:142
void set_min_ramp_snr(float value)
Set minimum ramp SNR.
Definition voyant_point_data_wrapper.hpp:188
float x() const
Get X position in meters.
Definition voyant_point_data_wrapper.hpp:84
float calibrated_reflectance() const
Get calibrated reflectance.
Definition voyant_point_data_wrapper.hpp:151
uint16_t azimuth_index() const
Extract azimuth index from point_index.
~PointDataWrapper() override
Destructor.
void set_drop_reason(DropReason value)
Set point drop reason.
Definition voyant_point_data_wrapper.hpp:206
void fromProto(PointData::Reader reader) override
Update wrapper fields from a Cap'n Proto reader.
void set_timestamp_nanosecs(int32_t value)
Set timestamp in nanoseconds.
Definition voyant_point_data_wrapper.hpp:66
float range() const
Calculate the range (Euclidean distance from origin) of the point.
void set_point_index_components(uint16_t azimuth, uint16_t elevation)
Encode azimuth and elevation into the point_index field.
void set_z(float value)
Set Z position.
Definition voyant_point_data_wrapper.hpp:114
float y_
Y position in meters (Cartesian coordinate)
Definition voyant_point_data_wrapper.hpp:22
float z() const
Get Z position in meters.
Definition voyant_point_data_wrapper.hpp:108
void set_x(float value)
Set X position.
Definition voyant_point_data_wrapper.hpp:90
float min_ramp_snr() const
Get minimum ramp SNR.
Definition voyant_point_data_wrapper.hpp:182
uint32_t point_index_
Point index within frame (encoded azimuth/elevation)
Definition voyant_point_data_wrapper.hpp:20
float z_
Z position in meters (Cartesian coordinate)
Definition voyant_point_data_wrapper.hpp:23
uint16_t elevation_index() const
Extract elevation index from point_index.
int32_t timestamp_nanosecs_
Timestamp in nanoseconds since frame start.
Definition voyant_point_data_wrapper.hpp:19
float radial_vel() const
Get radial velocity in m/s.
Definition voyant_point_data_wrapper.hpp:120
void toProto(PointData::Builder &builder) const override
Write wrapper fields to a Cap'n Proto builder.
void set_point_index(uint32_t value)
Set point index.
Definition voyant_point_data_wrapper.hpp:78
void debugString(std::ostream &os) const override
Generate a debug string representation.
void set_calibrated_reflectance(float value)
Set calibrated reflectance.
Definition voyant_point_data_wrapper.hpp:157
float min_ramp_snr_
Minimum ramp SNR (internal test use)
Definition voyant_point_data_wrapper.hpp:28
float y() const
Get Y position in meters.
Definition voyant_point_data_wrapper.hpp:96
float noise_mean_estimate() const
Get estimated mean noise level about the peaks.
Definition voyant_point_data_wrapper.hpp:167
float calibrated_reflectance_
Calibrated reflectance (not implemented)
Definition voyant_point_data_wrapper.hpp:26
DropReason drop_reason_
Point validity status (see drop_reason())
Definition voyant_point_data_wrapper.hpp:29
DropReason drop_reason() const
Get point drop reason.
Definition voyant_point_data_wrapper.hpp:200
uint32_t point_index() const
Get point index within frame.
Definition voyant_point_data_wrapper.hpp:72
bool is_valid() const
Check if point is valid based on drop reason.
Definition voyant_point_data_wrapper.hpp:212
float snr_linear_
Signal-to-Noise Ratio (electrical power, see snr_linear())
Definition voyant_point_data_wrapper.hpp:25
float noise_mean_estimate_
Noise floor estimate for SNR calculation.
Definition voyant_point_data_wrapper.hpp:27
Definition point.capnp.h:123
Definition point.capnp.h:72
DropReason_d8797e665e96107b
Definition point.capnp.h:22