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::millisecond_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::millisecond_t > second
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::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