15#ifndef CARMA_COOPERATIVE_PERCEPTION__J2735_TYPES_HPP_
16#define CARMA_COOPERATIVE_PERCEPTION__J2735_TYPES_HPP_
20#include <carma_v2x_msgs/msg/acceleration_set4_way.hpp>
21#include <carma_v2x_msgs/msg/heading.hpp>
22#include <carma_v2x_msgs/msg/position3_d.hpp>
23#include <carma_v2x_msgs/msg/speed.hpp>
24#include <j2735_v2x_msgs/msg/acceleration_set4_way.hpp>
25#include <j2735_v2x_msgs/msg/d_date_time.hpp>
26#include <j2735_v2x_msgs/msg/heading.hpp>
27#include <j2735_v2x_msgs/msg/position3_d.hpp>
28#include <j2735_v2x_msgs/msg/speed.hpp>
38 std::optional<units::time::year_t>
year{std::nullopt};
39 std::optional<Month>
month{std::nullopt};
40 std::optional<units::time::day_t>
day{std::nullopt};
41 std::optional<units::time::hour_t>
hour{std::nullopt};
42 std::optional<units::time::minute_t>
minute{std::nullopt};
43 std::optional<units::time::second_t>
second{std::nullopt};
46 [[nodiscard]]
static auto from_msg(
const j2735_v2x_msgs::msg::DDateTime & msg) ->
DDateTime;
51 units::acceleration::centi_meters_per_second_squared_t
longitudinal;
52 units::acceleration::centi_meters_per_second_squared_t
lateral;
53 units::acceleration::two_centi_standard_gravities_t
vert;
54 units::angular_velocity::centi_degrees_per_second_t
yaw_rate;
56 [[nodiscard]]
static auto from_msg(
const j2735_v2x_msgs::msg::AccelerationSet4Way & msg)
59 [[nodiscard]]
static auto from_msg(
const carma_v2x_msgs::msg::AccelerationSet4Way & msg)
65 units::angle::deci_micro_degrees_t
latitude{0.0};
67 std::optional<units::length::deca_centimeters_t>
elevation;
69 [[nodiscard]]
static auto from_msg(
const j2735_v2x_msgs::msg::Position3D & msg) ->
Position3D;
71 [[nodiscard]]
static auto from_msg(
const carma_v2x_msgs::msg::Position3D & msg) ->
Position3D;
76 units::angle::eighth_deci_degrees_t
heading;
85 units::velocity::two_centi_meters_per_second_t
speed;
static auto from_msg(const j2735_v2x_msgs::msg::AccelerationSet4Way &msg) -> AccelerationSet4Way
units::acceleration::centi_meters_per_second_squared_t lateral
units::acceleration::centi_meters_per_second_squared_t longitudinal
units::angular_velocity::centi_degrees_per_second_t yaw_rate
units::acceleration::two_centi_standard_gravities_t vert
std::optional< units::time::hour_t > hour
std::optional< units::time::day_t > day
std::optional< units::time::minute_t > minute
std::optional< Month > month
static auto from_msg(const j2735_v2x_msgs::msg::DDateTime &msg) -> DDateTime
std::optional< units::time::year_t > year
std::optional< units::time::second_t > second
std::optional< units::time::minute_t > time_zone_offset
static auto from_msg(const j2735_v2x_msgs::msg::Heading &heading) -> Heading
units::angle::eighth_deci_degrees_t heading
units::angle::deci_micro_degrees_t latitude
static auto from_msg(const j2735_v2x_msgs::msg::Position3D &msg) -> Position3D
units::angle::deci_micro_degrees_t longitude
std::optional< units::length::deca_centimeters_t > elevation
units::velocity::two_centi_meters_per_second_t speed
static auto from_msg(const j2735_v2x_msgs::msg::Speed &speed) -> Speed