20#include "glog/logging.h"
27namespace racobit_radar {
36 int id = target_id(bytes, length);
37 for (
int i = 0; i < racobit_radar->contiobs_size(); ++i) {
39 auto racobit_obs = racobit_radar->mutable_contiobs(i);
40 racobit_obs->set_longitude_dist_rms(
41 LINEAR_RMS[longitude_dist_rms(bytes, length)]);
42 racobit_obs->set_lateral_dist_rms(
44 racobit_obs->set_longitude_vel_rms(
46 racobit_obs->set_lateral_vel_rms(
48 racobit_obs->set_probexist(
PROBOFEXIST[pdh0(bytes, length)]);
49 switch (invalid_state(bytes, length)) {
60 switch (ambig_state(bytes, length)) {
72int ClusterQualityInfo702::target_id(
const std::uint8_t* bytes,
73 int32_t length)
const {
75 int32_t x = t0.get_byte(0, 8);
81int ClusterQualityInfo702::longitude_dist_rms(
const std::uint8_t* bytes,
82 int32_t length)
const {
84 int32_t x = t0.get_byte(3, 5);
90int ClusterQualityInfo702::lateral_dist_rms(
const std::uint8_t* bytes,
91 int32_t length)
const {
93 int32_t x = t0.get_byte(0, 3);
96 int32_t t = t1.get_byte(6, 2);
105int ClusterQualityInfo702::longitude_vel_rms(
const std::uint8_t* bytes,
106 int32_t length)
const {
108 int32_t x = t0.get_byte(1, 5);
114int ClusterQualityInfo702::pdh0(
const std::uint8_t* bytes,
115 int32_t length)
const {
117 int32_t x = t0.get_byte(0, 3);
123int ClusterQualityInfo702::ambig_state(
const std::uint8_t* bytes,
124 int32_t length)
const {
126 int32_t x = t0.get_byte(0, 3);
132int ClusterQualityInfo702::invalid_state(
const std::uint8_t* bytes,
133 int32_t length)
const {
135 int32_t x = t0.get_byte(3, 5);
141int ClusterQualityInfo702::lateral_vel_rms(
const std::uint8_t* bytes,
142 int32_t length)
const {
144 int32_t x = t0.get_byte(0, 1);
147 int32_t t = t1.get_byte(4, 4);
The class of one byte, which is 8 bits.
void Parse(const std::uint8_t *bytes, int32_t length, RacobitRadar *racobit_radar) const override
const double LINEAR_RMS[32]
const double PROBOFEXIST[8]
optional int32 obstacle_id
repeated RacobitRadarObs contiobs