32#ifndef ETSI_ITS_MSGS_UTILS_IMPL_CAM_CAM_GETTERS_COMMON_H
33#define ETSI_ITS_MSGS_UTILS_IMPL_CAM_CAM_GETTERS_COMMON_H
65inline uint8_t
getStationType(
const CAM& cam) {
return cam.cam.cam_parameters.basic_container.station_type.value; }
74 return getLatitude(cam.cam.cam_parameters.basic_container.reference_position.latitude);
84 return getLongitude(cam.cam.cam_parameters.basic_container.reference_position.longitude);
94 return getAltitude(cam.cam.cam_parameters.basic_container.reference_position.altitude);
105inline double getHeading(
const Heading& heading) {
return ((
double)heading.heading_value.value) * 1e-1; }
116 return getHeading(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading);
126 return ((
double)vehicle_length.vehicle_length_value.value) * 1e-1;
137 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length);
146inline double getVehicleWidth(
const VehicleWidth& vehicle_width) {
return ((
double)vehicle_width.value) * 1e-1; }
156 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width);
166 return getSpeed(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed);
177 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration);
187 if (cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency
188 .lateral_acceleration_is_present) {
190 cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration);
192 throw std::invalid_argument(
"LateralAcceleration is not present!");
208 return getUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, zone, northp);
223 return getUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, zone, northp);
233 return getBitString(exterior_lights.value, exterior_lights.bits_unused);
243 if (cam.cam.cam_parameters.low_frequency_container_is_present) {
244 if (cam.cam.cam_parameters.low_frequency_container.choice ==
245 LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY) {
247 cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights);
249 throw std::invalid_argument(
"LowFrequencyContainer is not BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY!");
252 throw std::invalid_argument(
"LowFrequencyContainer is not present!");
263 return getBitString(acceleration_control.value, acceleration_control.bits_unused);
273 return getBitString(driving_lane_status.value, driving_lane_status.bits_unused);
283 return getBitString(special_transport_type.value, special_transport_type.bits_unused);
293 return getBitString(light_bar_siren_in_use.value, light_bar_siren_in_use.bits_unused);
303 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.
std::vector< bool > getBitString(const std::vector< uint8_t > &buffer, const int bits_unused)
Get a Bit String in form of bool vector.