32#ifndef ETSI_ITS_MSGS_UTILS_IMPL_CAM_CAM_GETTERS_COMMON_H
33#define ETSI_ITS_MSGS_UTILS_IMPL_CAM_CAM_GETTERS_COMMON_H
35#include <etsi_its_msgs_utils/impl/asn1_primitives/asn1_primitives_getters.h>
67inline uint8_t
getStationType(
const CAM& cam) {
return cam.cam.cam_parameters.basic_container.station_type.value; }
76 return getLatitude(cam.cam.cam_parameters.basic_container.reference_position.latitude);
86 return getLongitude(cam.cam.cam_parameters.basic_container.reference_position.longitude);
96 return getAltitude(cam.cam.cam_parameters.basic_container.reference_position.altitude);
108 return getHeadingCDD(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading);
119 return getHeadingConfidenceCDD(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading);
129 return ((
double)vehicle_length.vehicle_length_value.value) * 1e-1;
140 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length);
149inline double getVehicleWidth(
const VehicleWidth& vehicle_width) {
return ((
double)vehicle_width.value) * 1e-1; }
159 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width);
169 return getSpeed(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed);
180 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed);
191 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration);
202 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration);
212 if (cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency
213 .lateral_acceleration_is_present) {
215 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration);
217 throw std::invalid_argument(
"LateralAcceleration is not present!");
228 if (cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency
229 .lateral_acceleration_is_present) {
231 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration);
233 throw std::invalid_argument(
"LateralAccelerationConfidence is not present!");
249 return getUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, zone, northp);
264 return getUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, zone, northp);
274 return getBitString(exterior_lights.value, exterior_lights.bits_unused);
284 if (cam.cam.cam_parameters.low_frequency_container_is_present) {
285 if (cam.cam.cam_parameters.low_frequency_container.choice ==
286 LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY) {
288 cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights);
290 throw std::invalid_argument(
"LowFrequencyContainer is not BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY!");
293 throw std::invalid_argument(
"LowFrequencyContainer is not present!");
304 return getBitString(acceleration_control.value, acceleration_control.bits_unused);
314 return getBitString(driving_lane_status.value, driving_lane_status.bits_unused);
324 return getBitString(special_transport_type.value, special_transport_type.bits_unused);
334 return getBitString(light_bar_siren_in_use.value, light_bar_siren_in_use.bits_unused);
344 return getBitString(emergency_priority.value, emergency_priority.bits_unused);
double getLongitude(const CAM &cam)
Get the Longitude value of CAM.
std::vector< bool > getAccelerationControl(const AccelerationControl &acceleration_control)
Get Acceleration Control in form of bool vector.
std::vector< bool > getSpecialTransportType(const SpecialTransportType &special_transport_type)
Get the Special Transport Type in form of bool vector.
double getVehicleWidth(const VehicleWidth &vehicle_width)
Get the Vehicle Width.
double getHeadingConfidence(const CAM &cam)
Get the Heading confidence of CAM.
std::vector< bool > getLightBarSirenInUse(const LightBarSirenInUse &light_bar_siren_in_use)
Get the Lightbar Siren In Use in form of bool vector.
gm::PointStamped getUTMPosition(const CAM &cam, int &zone, bool &northp)
Get the UTM Position defined within the BasicContainer of the CAM.
uint8_t getStationType(const CAM &cam)
Get the stationType object.
double getLateralAccelerationConfidence(const CAM &cam)
Get the Lateral Acceleration Confidence.
double getLongitudinalAcceleration(const CAM &cam)
Get the longitudinal acceleration.
uint32_t getStationID(const CAM &cam)
Get the Station ID object.
std::vector< bool > getEmergencyPriority(const EmergencyPriority &emergency_priority)
Get the Vehicle Role in form of bool vector.
double getLongitudinalAccelerationConfidence(const CAM &cam)
Get the Longitudinal Acceleration Confidence.
double getLateralAcceleration(const CAM &cam)
Get the lateral acceleration.
double getLatitude(const CAM &cam)
Get the Latitude value of CAM.
uint16_t getGenerationDeltaTimeValue(const CAM &cam)
Get the GenerationDeltaTime-Value.
double getSpeed(const CAM &cam)
Get the vehicle speed.
double getAltitude(const CAM &cam)
Get the Altitude value of CAM.
std::vector< bool > getExteriorLights(const ExteriorLights &exterior_lights)
Get the Exterior Lights in form of bool vector.
double getHeading(const CAM &cam)
Get the Heading value of CAM.
std::vector< bool > getDrivingLaneStatus(const DrivingLaneStatus &driving_lane_status)
Get the Driving Lane Status in form of bool vector.
double getSpeedConfidence(const CAM &cam)
Get the Speed Confidence.
double getVehicleLength(const VehicleLength &vehicle_length)
Get the Vehicle Length.
GenerationDeltaTime getGenerationDeltaTime(const CAM &cam)
Get the GenerationDeltaTime.
double getHeadingCDD(const Heading &heading)
Get the Heading value.
double getHeadingConfidenceCDD(const Heading &heading)
Get the Heading value.