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);
107inline double getHeading(
const Heading& heading) {
return ((
double)heading.heading_value.value) * 1e-1; }
118 return getHeading(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading);
128 return ((
double)vehicle_length.vehicle_length_value.value) * 1e-1;
139 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length);
148inline double getVehicleWidth(
const VehicleWidth& vehicle_width) {
return ((
double)vehicle_width.value) * 1e-1; }
158 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width);
168 return getSpeed(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed);
179 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration);
189 if (cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency
190 .lateral_acceleration_is_present) {
192 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration);
194 throw std::invalid_argument(
"LateralAcceleration is not present!");
210 return getUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, zone, northp);
225 return getUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, zone, northp);
235 return getBitString(exterior_lights.value, exterior_lights.bits_unused);
245 if (cam.cam.cam_parameters.low_frequency_container_is_present) {
246 if (cam.cam.cam_parameters.low_frequency_container.choice ==
247 LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY) {
249 cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights);
251 throw std::invalid_argument(
"LowFrequencyContainer is not BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY!");
254 throw std::invalid_argument(
"LowFrequencyContainer is not present!");
265 return getBitString(acceleration_control.value, acceleration_control.bits_unused);
275 return getBitString(driving_lane_status.value, driving_lane_status.bits_unused);
285 return getBitString(special_transport_type.value, special_transport_type.bits_unused);
295 return getBitString(light_bar_siren_in_use.value, light_bar_siren_in_use.bits_unused);
305 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.
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 getHeading(const Heading &heading)
Get the Heading value.
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 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.
std::vector< bool > getDrivingLaneStatus(const DrivingLaneStatus &driving_lane_status)
Get the Driving Lane Status in form of bool vector.
double getVehicleLength(const VehicleLength &vehicle_length)
Get the Vehicle Length.
GenerationDeltaTime getGenerationDeltaTime(const CAM &cam)
Get the GenerationDeltaTime.