1#ifndef CAM_FUNCTIONS_HPP_PUFKBEM8
2#define CAM_FUNCTIONS_HPP_PUFKBEM8
4#include <vanetza/asn1/its/AltitudeConfidence.h>
5#include <vanetza/asn1/its/AltitudeValue.h>
6#include <vanetza/asn1/its/Heading.h>
7#include <vanetza/asn1/its/ReferencePosition.h>
8#include <vanetza/common/position_fix.hpp>
9#include <vanetza/security/cam_ssp.hpp>
10#include <vanetza/units/angle.hpp>
11#include <vanetza/units/length.hpp>
14struct BasicVehicleContainerLowFrequency;
20namespace asn1 {
class Cam; }
32void copy(
const PathHistory&, BasicVehicleContainerLowFrequency&);
41bool similar_heading(
const Heading& a,
const Heading& b, units::Angle limit);
42bool similar_heading(
const Heading& a, units::Angle b, units::Angle limit);
43bool similar_heading(units::Angle a, units::Angle b, units::Angle limit);
51units::Length distance(
const ReferencePosition_t& a,
const ReferencePosition_t& b);
52units::Length distance(
const ReferencePosition_t& a, units::GeoAngle lat, units::GeoAngle lon);
58bool is_available(
const Heading&);
59bool is_available(
const ReferencePosition_t&);
64void copy(
const PositionFix&, ReferencePosition&);
69AltitudeValue_t to_altitude_value(units::Length);
74AltitudeConfidence_t to_altitude_confidence(units::Length);
82bool check_service_specific_permissions(
const asn1::Cam& cam, security::CamPermissions ssp);
94void print_indented(std::ostream& os,
const asn1::Cam& cam,
const std::string& indent =
"\t",
unsigned start = 0);