Keep the colleague's microbu-esp32c5 tree in this repository

obu-firmware builds against vanetza-idf from microbu-esp32c5/external, but
that tree was gitignored, so a clone of this repository could not build the
firmware it ships. It is now committed here as ordinary files in its own
folder, microbu-esp32c5/: the colleague's commit cf4b99f plus the V2X2MAP
bridge's signature verification (--trust) used on the bench. Nothing is
fetched from or pushed to the colleague's repository; this repository and
its remotes carry everything. The folder's own .gitignore keeps build output,
downloaded components and private key material out, as it did there; the
committed file set is identical to that repository's tracked files.

The ESP32-C5 is still flashed from obu-firmware/, which only takes
vanetza-idf from microbu-esp32c5/, so the two stay separate folders.
FLASHING.md says how to take a newer version of the colleague's tree (copy
it over the folder, rebuild, test, commit).
This commit is contained in:
Ashin Walpola
2026-09-23 17:46:40 +02:00
parent 2f60623e18
commit 0e9525162d
9881 changed files with 1582523 additions and 17 deletions
@@ -0,0 +1,10 @@
set(CXX_SOURCES
access_category.cpp
data_rates.cpp
g5_link_layer.cpp
)
add_vanetza_component(access ${CXX_SOURCES})
target_link_libraries(access PUBLIC net)
add_test_subdirectory(tests)
@@ -0,0 +1,33 @@
#include <vanetza/access/access_category.hpp>
#include <iostream>
namespace vanetza
{
namespace access
{
std::ostream& operator<<(std::ostream& os, AccessCategory ac)
{
switch (ac) {
case AccessCategory::BK:
os << "AC_BK";
break;
case AccessCategory::BE:
os << "AC_BE";
break;
case AccessCategory::VI:
os << "AC_VI";
break;
case AccessCategory::VO:
os << "AC_VO";
break;
default:
os << "<unknown AC>";
break;
};
return os;
}
} // namespace access
} // namespace vanetza
@@ -0,0 +1,38 @@
#ifndef ACCESS_CATEGORY_HPP_QAWSOPED
#define ACCESS_CATEGORY_HPP_QAWSOPED
#include <cstdint>
#include <iosfwd>
namespace vanetza
{
namespace access
{
/**
* \enum AccessCategory
* \brief AccessCategory represents packet priority at link layer
*
* Each enumerator's value matches the user priority UP (802.1D)
* of the respective access category AC (802.11).
*
* See ETSI EN 302 663 V1.2.1 (2013-07), Table B.3
*/
enum class AccessCategory {
BK = 1, //!< Background (lowest priority)
BE = 3, //!< Best effort
VI = 5, //!< Video
VO = 7 //!< Voice (highest priority)
}; /**< \enum */
std::ostream& operator<<(std::ostream&, AccessCategory);
constexpr std::uint8_t user_priority(AccessCategory ac)
{
return static_cast<std::uint8_t>(ac) & 0x7;
}
} // namespace access
} // namespace vanetza
#endif /* ACCESS_CATEGORY_HPP_QAWSOPED */
@@ -0,0 +1,25 @@
#include "data_rates.hpp"
#include <cassert>
namespace vanetza
{
namespace access
{
std::size_t DataRateG5::data_length(std::size_t psdu) const
{
static const unsigned service_bits = 16;
static const unsigned tail_bits = 6;
const unsigned body = service_bits + tail_bits + psdu * 8;
unsigned padding = body % m_coded_bits_per_symbol;
if (padding > 0) {
padding = m_coded_bits_per_symbol - padding;
}
assert((body + padding) % 8 == 0);
return (body + padding) / 8;
}
} // namespace access
} // namespace vanetza
@@ -0,0 +1,54 @@
#ifndef DATA_RATES_802DOT11P_HPP_SL3RZPZO
#define DATA_RATES_802DOT11P_HPP_SL3RZPZO
#include <cstddef>
namespace vanetza
{
namespace access
{
class DataRateG5
{
public:
/**
* Create data rate for ITS-G5 band
* \param kbps kilo-bits per second transfer rate
* \param cbits number of coded bits per symbol
*/
constexpr DataRateG5(unsigned kbps, unsigned cbits) :
m_bytes_per_second(kbps * 1000 / 8),
m_coded_bits_per_symbol(cbits) {}
/**
* Get tranfer rate as number of bytes per second
* \return transfer rate
*/
unsigned bytes_per_second() const { return m_bytes_per_second; }
/**
* Calculate length of PHY data length
* \param psdu size of PSDU, i.e. MPDU (MAC header + payload)
* \return length in bytes
*/
std::size_t data_length(std::size_t psdu) const;
private:
unsigned m_bytes_per_second;
unsigned m_coded_bits_per_symbol;
};
static const DataRateG5 G5_3Mbps { 3000, 48 };
static const DataRateG5 G5_4dot5Mbps { 4500, 48 };
static const DataRateG5 G5_6Mbps { 6000, 96 };
static const DataRateG5 G5_9Mbps { 9000, 96 };
static const DataRateG5 G5_12Mbps { 12000, 192 };
static const DataRateG5 G5_18bps { 18000, 192 };
static const DataRateG5 G5_24Mbps { 24000, 288 };
static const DataRateG5 G5_27Mbps { 27000, 288 };
} // namespace access
} // namespace vanetza
#endif /* DATA_RATES_802DOT11P_HPP_SL3RZPZO */
@@ -0,0 +1,27 @@
#ifndef DATA_REQUEST_HPP_3OGGPFWF
#define DATA_REQUEST_HPP_3OGGPFWF
#include <vanetza/access/access_category.hpp>
#include <vanetza/common/byte_order.hpp>
#include <vanetza/net/mac_address.hpp>
namespace vanetza
{
namespace access
{
struct DataRequest
{
DataRequest() : access_category(AccessCategory::BK) {}
uint16be_t ether_type;
MacAddress source_addr;
MacAddress destination_addr;
AccessCategory access_category;
};
} // namespace access
} // namespace vanetza
#endif /* DATA_REQUEST_HPP_3OGGPFWF */
@@ -0,0 +1,25 @@
#ifndef ETHERTYPE_HPP_ED3SIJFX
#define ETHERTYPE_HPP_ED3SIJFX
#include <vanetza/common/byte_order.hpp>
namespace vanetza
{
namespace access
{
using EtherType = uint16be_t;
namespace ethertype
{
static const EtherType GeoNetworking = host_cast<uint16_t>(0x8947);
static const EtherType WSMP = host_cast<uint16_t>(0x88DC);
} // namespace ethertype
} // namespace access
} // namespace vanetza
#endif /* ETHERTYPE_HPP_ED3SIJFX */
@@ -0,0 +1,134 @@
#include <vanetza/access/g5_link_layer.hpp>
#include <vanetza/access/ethertype.hpp>
#include <cstring>
namespace vanetza
{
namespace access
{
static const ieee802::LlcSnapHeader default_llc_header { ethertype::GeoNetworking };
G5LinkLayer::G5LinkLayer() :
llc_snap_header(default_llc_header)
{
}
void serialize(OutputArchive& ar, const G5LinkLayer& g5)
{
serialize(ar, g5.mac_header);
serialize(ar, g5.llc_snap_header);
}
void deserialize(InputArchive& ar, G5LinkLayer& g5)
{
deserialize(ar, g5.mac_header);
deserialize(ar, g5.llc_snap_header);
}
bool check_fixed_fields(const G5LinkLayer& link_layer)
{
static const auto default_frame_control = ieee802::dot11::FrameControl::qos_data_frame();
static const ieee802::dot11::QosControl default_qos_control;
// all frame control flags are fixed for now
static const std::uint16_t frame_control_fixed = 0xFFFF;
// EOSP + A-MSDU + TXOP limit fixed, TID (LSB part = UP) and Ack policy are variable
static const std::uint16_t qos_control_fixed = 0xFF98;
const ieee802::dot11::QosDataHeader& mac = link_layer.mac_header;
const bool frame_control_ok =
(mac.frame_control.raw.get() & frame_control_fixed) == (default_frame_control.raw.get() & frame_control_fixed);
const bool qos_control_ok =
(mac.qos_control.raw.get() & qos_control_fixed) == (default_qos_control.raw.get() & qos_control_fixed);
return frame_control_ok && qos_control_ok &&
mac.sequence_control.fragment_number() == 0 &&
mac.bssid == ieee802::dot11::bssid_wildcard &&
link_layer.llc_snap_header == default_llc_header;
}
namespace ieee802
{
namespace dot11
{
// Operation outside of a BSS, must be set to wildcard (all bits 1)
const MacAddress bssid_wildcard = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
void QosControl::user_priority(AccessCategory access_category)
{
std::uint16_t tmp = raw.get();
tmp &= ~0x000F; // clear all TID bits
tmp |= static_cast<std::uint16_t>(access_category) & 0x07;
raw = static_cast<uint16be_t>(tmp);
}
FrameControl FrameControl::qos_data_frame()
{
FrameControl frame_control;
frame_control.raw = host_cast<std::uint16_t>(0x8800);
return frame_control;
}
void serialize(OutputArchive& ar, const QosDataHeader& mac)
{
serialize(ar, mac.frame_control.raw);
serialize(ar, mac.duration_or_id);
serialize(ar, mac.destination);
serialize(ar, mac.source);
serialize(ar, mac.bssid);
serialize(ar, mac.sequence_control.raw);
serialize(ar, mac.qos_control.raw);
}
void deserialize(InputArchive& ar, QosDataHeader& mac)
{
deserialize(ar, mac.frame_control.raw);
deserialize(ar, mac.duration_or_id);
deserialize(ar, mac.destination);
deserialize(ar, mac.source);
deserialize(ar, mac.bssid);
deserialize(ar, mac.sequence_control.raw);
deserialize(ar, mac.qos_control.raw);
}
} // namespace dot11
void serialize(OutputArchive& ar, const LlcSnapHeader& snap)
{
serialize(ar, snap.dsap);
serialize(ar, snap.ssap);
serialize(ar, snap.control);
for (std::uint8_t byte : snap.oui) {
ar << byte;
}
serialize(ar, snap.protocol_id);
}
void deserialize(InputArchive& ar, LlcSnapHeader& snap)
{
deserialize(ar, snap.dsap);
deserialize(ar, snap.ssap);
deserialize(ar, snap.control);
for (std::uint8_t& byte : snap.oui) {
ar >> byte;
}
deserialize(ar, snap.protocol_id);
}
bool operator==(const LlcSnapHeader& a, const LlcSnapHeader& b)
{
return a.dsap == b.dsap && a.ssap == b.ssap && a.control == b.control &&
a.oui == b.oui && a.protocol_id == b.protocol_id;
}
bool operator!=(const LlcSnapHeader& a, const LlcSnapHeader& b)
{
return !(a == b);
}
} // namespace ieee802
} // namespace access
} // namespace vanetza
@@ -0,0 +1,164 @@
#ifndef G5_LINK_LAYER_HPP_CESAPUOW
#define G5_LINK_LAYER_HPP_CESAPUOW
#include <array>
#include <cstdint>
#include <vanetza/access/access_category.hpp>
#include <vanetza/common/bit_number.hpp>
#include <vanetza/common/byte_order.hpp>
#include <vanetza/common/serialization.hpp>
#include <vanetza/net/mac_address.hpp>
namespace vanetza
{
namespace access
{
namespace ieee802
{
namespace dot11
{
/**
* \brief QoS Control field in IEEE 802.11 MAC header.
*/
struct QosControl
{
vanetza::uint16be_t raw { 0 };
/**
* Set user priority by access category
* \param ac map this AccessCategory to user priority
*/
void user_priority(AccessCategory ac);
};
/**
* \brief Frame Control field in IEEE 802.11 MAC header
*/
struct FrameControl
{
vanetza::uint16be_t raw { 0 };
using Protocol = BitNumber<std::uint16_t, 2>; /**< represents protocol version */
using Type = BitNumber<std::uint16_t, 2>;
using SubType = BitNumber<std::uint16_t, 4>;
Protocol protocol() const { return Protocol(raw.get()); }
Type type() const { return Type(raw.get() >> 2); }
SubType sub_type() const { return SubType(raw.get() >> 4); }
bool to_ds() const { return raw.get() & 0x0100; }
bool from_ds() const { return raw.get() & 0x0200; }
bool more_fragments() const { return raw.get() & 0x0400; }
bool retry() const { return raw.get() & 0x0800; }
/**
* Create frame control for QoS data frame without any flags
* \return FrameControl field for QoS data frame
**/
static FrameControl qos_data_frame();
};
/**
* \brief Sequence Control field in IEEE 802.11 MAC header
*/
struct SequenceControl
{
vanetza::uint16be_t raw { 0 };
using SequenceNumber = BitNumber<std::uint16_t, 12>;
using FragmentNumber = BitNumber<std::uint16_t, 4>;
SequenceNumber sequence_number() const
{
return SequenceNumber(raw.get() >> 4);
}
FragmentNumber fragment_number() const
{
return FragmentNumber(raw.get());
}
};
/** MAC address representing the BSSID wildcard (all bits set) */
extern const MacAddress bssid_wildcard;
/**
* \brief MAC header of QoS data frames
*/
struct QosDataHeader
{
FrameControl frame_control = FrameControl::qos_data_frame();
uint16be_t duration_or_id;
MacAddress destination;
MacAddress source;
MacAddress bssid = bssid_wildcard;
SequenceControl sequence_control;
QosControl qos_control;
/** length of serialized QoSDataHeader in bytes */
static constexpr std::size_t length_bytes = 26;
};
/** length of frame check sequence in bytes */
static constexpr std::size_t fcs_length_bytes = 4;
void serialize(OutputArchive&, const QosDataHeader&);
void deserialize(InputArchive&, QosDataHeader&);
} // namespace dot11
/**
* \brief Logical Link Control header with SNAP extension
*/
struct LlcSnapHeader
{
std::uint8_t dsap = 0xAA;
std::uint8_t ssap = 0xAA;
std::uint8_t control = 0x03;
std::array<std::uint8_t, 3> oui = {{ 0x00, 0x00, 0x00 }};
uint16be_t protocol_id;
LlcSnapHeader(uint16be_t protocol_id) : protocol_id(protocol_id) {}
static constexpr std::size_t length_bytes = 8;
};
bool operator==(const LlcSnapHeader&, const LlcSnapHeader&);
bool operator!=(const LlcSnapHeader&, const LlcSnapHeader&);
void serialize(OutputArchive&, const LlcSnapHeader&);
void deserialize(InputArchive&, LlcSnapHeader&);
} // namespace ieee802
/**
* \brief Link layer header used by ITS-G5 stations
*/
struct G5LinkLayer
{
ieee802::dot11::QosDataHeader mac_header;
ieee802::LlcSnapHeader llc_snap_header;
G5LinkLayer();
static constexpr std::size_t length_bytes =
ieee802::dot11::QosDataHeader::length_bytes +
ieee802::LlcSnapHeader::length_bytes;
};
void serialize(OutputArchive&, const G5LinkLayer&);
void deserialize(InputArchive&, G5LinkLayer&);
/**
* \brief Check whether some link layer header fields contain their expected values.
* For most explicitly initialized link layer header fields, their (default) value is expected in received frames.
*
* \param link_layer G5LinkLayer to check
* \return whether all fields are set as expected
*/
bool check_fixed_fields(const G5LinkLayer& link_layer);
} // namespace access
} // namespace vanetza
#endif /* G5_LINK_LAYER_HPP_CESAPUOW */
@@ -0,0 +1,25 @@
#ifndef INTERFACE_HPP_EUPJ90MD
#define INTERFACE_HPP_EUPJ90MD
#include <vanetza/net/chunk_packet.hpp>
#include <memory>
namespace vanetza
{
namespace access
{
struct DataRequest;
class Interface
{
public:
virtual void request(const DataRequest&, std::unique_ptr<ChunkPacket>) = 0;
virtual ~Interface() {}
};
} // namespace access
} // namespace vanetza
#endif /* INTERFACE_HPP_EUPJ90MD */
@@ -0,0 +1,35 @@
#pragma once
#include <vanetza/access/access_category.hpp>
#include <cstdint>
namespace vanetza
{
namespace access
{
/**
* \brief map access category to PPPP for C-V2X
*
* Mapping is according to EN 303 613 V1.1.1 Table B.7
*
* \param ac access category from 802.11
* \return matching PPPP value
*/
constexpr std::uint8_t pppp_from_ac(AccessCategory ac)
{
switch (ac) {
case AccessCategory::VO:
return 2;
case AccessCategory::VI:
return 4;
case AccessCategory::BE:
return 5;
case AccessCategory::BK:
default:
return 7;
}
}
} // namespace access
} // namespace vanetza
@@ -0,0 +1,5 @@
include(UseGTest)
configure_gtest_directory(LINK_LIBRARIES access)
add_gtest(DataRates data_rates.cpp)
@@ -0,0 +1,19 @@
#include <gtest/gtest.h>
#include <vanetza/access/data_rates.hpp>
using namespace vanetza::access;
TEST(DataRates, bytes_per_second)
{
EXPECT_EQ(G5_3Mbps.bytes_per_second(), 3 * 1000 * 1000 / 8);
EXPECT_EQ(G5_6Mbps.bytes_per_second(), 6 * 1000 * 1000 / 8);
EXPECT_EQ(G5_12Mbps.bytes_per_second(), 12 * 1000 * 1000 / 8);
}
TEST(DataRates, data_length)
{
const std::size_t psdu_bytes = 385;
const std::size_t data_bytes = G5_6Mbps.data_length(psdu_bytes);
EXPECT_GE(data_bytes, psdu_bytes);
EXPECT_LT(data_bytes, psdu_bytes + 12);
}
@@ -0,0 +1,44 @@
#ifndef COHDA_HPP_CCA3HKJO
#define COHDA_HPP_CCA3HKJO
#include <vanetza/asio/linklayer_endpoint.hpp>
#include <boost/asio/basic_raw_socket.hpp>
#include <linux/if_ether.h>
#include <net/if.h>
namespace vanetza
{
namespace asio
{
class cohda
{
public:
typedef linklayer_endpoint<cohda> endpoint;
typedef boost::asio::basic_raw_socket<cohda> socket;
static cohda wave_raw()
{
return cohda("wave-raw", ETH_P_ALL);
}
explicit cohda() : m_protocol(ETH_P_ALL), m_ifidx(0) {}
int type() const { return SOCK_RAW; }
int family() const { return PF_PACKET; }
int protocol() const { return m_protocol; }
int interface_index() const { return m_ifidx; }
private:
explicit cohda(const char* if_name, int proto) :
m_protocol(proto), m_ifidx(if_nametoindex(if_name)) {}
int m_protocol; /*< ethernet protocol number */
int m_ifidx; /*< network interface card number */
};
} // namespace asio
} // namespace vanetza
#endif /* COHDA_HPP_CCA3HKJO */
@@ -0,0 +1,56 @@
#ifndef LINKLAYER_ENDPOINT_HPP_DMNJI8U6
#define LINKLAYER_ENDPOINT_HPP_DMNJI8U6
#include <boost/asio/detail/socket_ops.hpp>
#include <boost/asio/detail/socket_types.hpp>
#include <netpacket/packet.h>
namespace vanetza
{
namespace asio
{
template<typename Protocol>
class linklayer_endpoint
{
public:
typedef boost::asio::detail::socket_addr_type sockaddr_type;
typedef sockaddr_ll sockaddr_ll_type;
linklayer_endpoint() : m_data() {
Protocol protocol;
m_data.link.sll_family = protocol.family();
m_data.link.sll_protocol = boost::asio::detail::socket_ops::host_to_network_short(protocol.protocol());
m_data.link.sll_ifindex = protocol.interface_index();
}
linklayer_endpoint(const Protocol& protocol) : m_data() {
m_data.link.sll_family = protocol.family();
m_data.link.sll_protocol = boost::asio::detail::socket_ops::host_to_network_short(protocol.protocol());
m_data.link.sll_ifindex = protocol.interface_index();
}
const sockaddr_type* data() const
{
return &m_data.base;
}
std::size_t size() const
{
return sizeof(sockaddr_ll_type);
}
Protocol protocol() const { return Protocol(); }
private:
union data_union {
sockaddr_type base;
sockaddr_ll_type link;
} m_data;
};
} // namespace asio
} // namespace vanetza
#endif /* LINKLAYER_ENDPOINT_HPP_DMNJI8U6 */
@@ -0,0 +1,2 @@
ITS_ASN1.r*.tar.gz
ITS_ASN1-releases.r*.tar.gz
@@ -0,0 +1,435 @@
set(_its_asn1_source_file "asn1c_its_sources.txt")
set(_its_r2_asn1_source_file "asn1c_its_r2_sources.txt")
set(_sec_asn1_source_file "asn1c_security_sources.txt")
set(_sec_r2_asn1_source_file "asn1c_security_r2_sources.txt")
set(_systemx_pqc_asn1_source_file "asn1c_systemx_pqc_sources.txt")
set(_support_asn1_source_file "asn1c_support_sources.txt")
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
${_its_asn1_source_file}
${_its_r2_asn1_source_file}
${_sec_asn1_source_file}
${_sec_r2_asn1_source_file}
${_systemx_pqc_asn1_source_file}
${_support_asn1_source_file})
set(_its_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/its")
set(_its_r2_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/its/r2")
set(_sec_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/security")
set(_sec_r2_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/security/r2")
set(_systemx_pqc_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/systemx-pqc")
set(_support_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/support")
option(VANETZA_ASN1_WITH_ASN1C "Enable asn1c targets" OFF)
if(VANETZA_ASN1_WITH_ASN1C)
set(_its_asn1_files
${PROJECT_SOURCE_DIR}/asn1/TS102894-2v131-CDD.asn
${PROJECT_SOURCE_DIR}/asn1/EN302637-2v141-CAM.asn
${PROJECT_SOURCE_DIR}/asn1/EN302637-3v131-DENM.asn
)
set(_its_asn1_files_depending_on_iso
${PROJECT_SOURCE_DIR}/asn1/TR103562v211-CPM.asn
${PROJECT_SOURCE_DIR}/asn1/TS103301v211-MAPEM.asn
${PROJECT_SOURCE_DIR}/asn1/TS103301v211-RTCMEM.asn
${PROJECT_SOURCE_DIR}/asn1/TS103301v211-SPATEM.asn
${PROJECT_SOURCE_DIR}/asn1/TS103301v211-SREM.asn
${PROJECT_SOURCE_DIR}/asn1/TS103301v211-SSEM.asn
${PROJECT_SOURCE_DIR}/asn1/TS103301v211-IVIM.asn
)
set(_its_r2_asn1_files
${PROJECT_SOURCE_DIR}/asn1/release2/TS102894-2v241-CDD.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103831v231-DENM.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103900v231-CAM.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103300-3v231/VAM-PDU-Descriptions.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103300-3v231/motorcyclist-special-container.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103916v211/POIM-PDU-Description.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103916v211/POIM-ParkingAvailability.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103916v211/POIM-CommonContainers.asn
)
option(VANETZA_ASN1_WITH_ISO "Fetch ISO ASN.1 files for a more complete ITS message set" OFF)
if(VANETZA_ASN1_WITH_ISO)
set(_iso_asn1_files
ISO14816.asn ISO19091.asn ISO24534-3.asn ISO19321.asn
ISO14906-0-6.asn ISO14906-1-7.asn ISO17419.asn ISO14823.asn)
list(TRANSFORM _iso_asn1_files PREPEND ${CMAKE_CURRENT_BINARY_DIR}/iso/)
add_custom_command(OUTPUT ${_iso_asn1_files}
COMMAND ${CMAKE_COMMAND} -DDIRECTORY=${CMAKE_CURRENT_BINARY_DIR}/iso -P fetch_iso_asn1_files.cmake
COMMENT "Fetch and patch ISO ASN.1 files"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
VERBATIM)
list(APPEND _its_asn1_files ${_its_asn1_files_depending_on_iso} ${_iso_asn1_files})
endif()
set(_ieee_1609dot2_asn1_files
Ieee1609Dot2.asn Ieee1609Dot2BaseTypes.asn Ieee1609Dot2Crl.asn Ieee1609Dot2CrlBaseTypes.asn)
set(_ieee_1609dot2dot1_asn1_files
Ieee1609Dot2Dot1AcaEeInterface.asn Ieee1609Dot2Dot1AcaLaInterface.asn Ieee1609Dot2Dot1AcaMaInterface.asn
Ieee1609Dot2Dot1AcaRaInterface.asn Ieee1609Dot2Dot1Acpc.asn Ieee1609Dot2Dot1CamRaInterface.asn
Ieee1609Dot2Dot1CertManagement.asn Ieee1609Dot2Dot1EcaEeInterface.asn Ieee1609Dot2Dot1EeMaInterface.asn
Ieee1609Dot2Dot1EeRaInterface.asn Ieee1609Dot2Dot1LaMaInterface.asn Ieee1609Dot2Dot1LaRaInterface.asn
Ieee1609Dot2Dot1MaRaInterface.asn Ieee1609Dot2Dot1Protocol.asn)
list(TRANSFORM _ieee_1609dot2_asn1_files PREPEND ${CMAKE_CURRENT_BINARY_DIR}/ieee/)
list(TRANSFORM _ieee_1609dot2dot1_asn1_files PREPEND ${CMAKE_CURRENT_BINARY_DIR}/ieee/)
set(_ieee_asn1_files ${_ieee_1609dot2_asn1_files} ${_ieee_1609dot2dot1_asn1_files})
add_custom_command(OUTPUT ${_ieee_asn1_files}
COMMAND ${CMAKE_COMMAND}
-DOUTPUT_DIRECTORY=${CMAKE_CURRENT_BINARY_DIR}/ieee
-DPATCH_DIRECTORY=${CMAKE_CURRENT_SOURCE_DIR}/patches/ieee
-P fetch_ieee_asn1_files.cmake
COMMENT "Fetch and patch IEEE 1609 ASN.1 files"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
VERBATIM)
set(_pki_asn1_files
${PROJECT_SOURCE_DIR}/asn1/TS102941v131-BaseTypes.asn
${PROJECT_SOURCE_DIR}/asn1/TS102941v131-MessagesCa.asn
${PROJECT_SOURCE_DIR}/asn1/TS102941v131-TrustLists.asn
${PROJECT_SOURCE_DIR}/asn1/TS102941v131-TypesAuthorization.asn
${PROJECT_SOURCE_DIR}/asn1/TS102941v131-TypesAuthorizationValidation.asn
${PROJECT_SOURCE_DIR}/asn1/TS102941v131-TypesCaManagement.asn
${PROJECT_SOURCE_DIR}/asn1/TS102941v131-TypesEnrolment.asn
)
set(_pki_r2_asn1_files
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/BaseTypes.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/MessagesCa.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/MessagesItss-OptionalPrivacy.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/MessagesItss.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/TrustLists.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/TypesAuthorization.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/TypesAuthorizationValidation.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/TypesCaManagement.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/TypesEnrolment.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS102941v221/TypesLinkCertificate.asn
)
set(_sec_asn1_files
${PROJECT_SOURCE_DIR}/asn1/TS103097v131.asn
${PROJECT_SOURCE_DIR}/asn1/IEEE1609dot2.asn
${PROJECT_SOURCE_DIR}/asn1/IEEE1609dot2BaseTypes.asn
)
if(VANETZA_WITH_PQC)
set(_systemx_pqc_patch "${PROJECT_SOURCE_DIR}/asn1/systemx-pqc/hybrid-pqc.patch")
set(_systemx_pqc_work_dir "${CMAKE_CURRENT_BINARY_DIR}/systemx-pqc-asn1")
set(_systemx_pqc_module_names
EtsiTs103097Module.asn
EtsiTs103097ExtensionModule.asn
Ieee1609Dot2.asn
Ieee1609Dot2BaseTypes.asn)
set(_systemx_pqc_asn1_files ${_systemx_pqc_module_names})
list(TRANSFORM _systemx_pqc_asn1_files PREPEND "${_systemx_pqc_work_dir}/")
add_custom_command(OUTPUT ${_systemx_pqc_asn1_files}
COMMAND ${CMAKE_COMMAND}
-DOUTPUT_DIRECTORY=${_systemx_pqc_work_dir}
-DPATCH_FILE=${_systemx_pqc_patch}
-P ${CMAKE_CURRENT_SOURCE_DIR}/fetch_systemx_pqc_asn1_files.cmake
DEPENDS
${_systemx_pqc_patch}
${CMAKE_CURRENT_SOURCE_DIR}/fetch_systemx_pqc_asn1_files.cmake
COMMENT "Fetching and patching SystemX hybrid-PQC ASN.1 modules"
VERBATIM)
add_custom_target(prepare_systemx_pqc_asn1 DEPENDS ${_systemx_pqc_asn1_files})
endif()
set(_sec_r2_asn1_files
${PROJECT_SOURCE_DIR}/asn1/release2/TS103097v211.asn
${PROJECT_SOURCE_DIR}/asn1/release2/TS103097v211-Extension.asn
)
# map host user to container for file permission consistency
execute_process(COMMAND id -u OUTPUT_VARIABLE USER_ID OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND id -g OUTPUT_VARIABLE GROUP_ID OUTPUT_STRIP_TRAILING_WHITESPACE)
set(VANETZA_ASN1C_CONTAINER_IMAGE "vanetza-asn1c:latest" CACHE STRING "Docker image for asn1c code generation")
macro(generate_asn1c)
cmake_parse_arguments(gen_asn1c "" "DESCRIPTION;OUTPUT_DIRECTORY;PREFIX;SOURCE_FILE" "SOURCES" ${ARGN})
if(NOT gen_asn1c_OUTPUT_DIRECTORY)
message(FATAL_ERROR "Missing output directory for generated ASN.1 code (OUTPUT_DIRECTORY)")
endif()
if(NOT gen_asn1c_SOURCES)
message(FATAL_ERROR "Missing ASN.1 source files to generate code from (SOURCES)")
endif()
set(_asn1c_source_filenames "")
set(_asn1c_source_binds "")
foreach(_file IN LISTS gen_asn1c_SOURCES)
get_filename_component(_filename ${_file} NAME)
list(APPEND _asn1c_source_filenames ${_filename})
file(REAL_PATH ${_file} _abs_file BASE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
list(APPEND _asn1c_source_binds --mount type=bind,src=${_abs_file},dst=/workdir/${_filename},ro)
endforeach()
set(_asn1c_exec docker run --rm
-v ${gen_asn1c_OUTPUT_DIRECTORY}:/out ${_asn1c_source_binds} -w /workdir
-u ${USER_ID}:${GROUP_ID}
${VANETZA_ASN1C_CONTAINER_IMAGE}
asn1c)
set(_asn1c_flags -fcompound-names -fincludes-quoted -no-gen-example)
if(gen_asn1c_PREFIX)
list(APPEND _asn1c_flags -fprefix=${gen_asn1c_PREFIX})
endif()
if(NOT gen_asn1c_DESCRIPTION)
set(_comment "Generating code from ASN.1 modules in ${gen_asn1c_OUTPUT_DIRECTORY}")
else()
set(_comment "Generating code from ${gen_asn1c_DESCRIPTION} ASN.1 modules")
endif()
add_custom_command(OUTPUT "${gen_asn1c_OUTPUT_DIRECTORY}"
DEPENDS "${gen_asn1c_SOURCES}"
COMMAND ${CMAKE_COMMAND} -E make_directory "${gen_asn1c_OUTPUT_DIRECTORY}"
COMMAND ${_asn1c_exec} ${_asn1c_flags} -R -D /out ${_asn1c_source_filenames}
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=${gen_asn1c_OUTPUT_DIRECTORY}
-DASN1C_PREFIX=${gen_asn1c_PREFIX}
-P remove_prefix_from_filename.cmake
COMMENT "${_comment}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
VERBATIM)
if(gen_asn1c_SOURCE_FILE)
add_custom_command(OUTPUT "${gen_asn1c_SOURCE_FILE}"
DEPENDS "${gen_asn1c_OUTPUT_DIRECTORY}"
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=${gen_asn1c_OUTPUT_DIRECTORY}
-DASN1C_SOURCE_FILE=${gen_asn1c_SOURCE_FILE}
-P collect_asn1c_sources.cmake
COMMENT "Collecting generated sources in ${gen_asn1c_SOURCE_FILE}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
VERBATIM)
endif()
endmacro()
add_custom_command(OUTPUT ${_support_asn1_dir}
COMMAND ${CMAKE_COMMAND} -E rm -rf ${CMAKE_CURRENT_BINARY_DIR}/asn1c_skeleton
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/asn1c_skeleton
COMMAND docker run --rm
-v ${CMAKE_CURRENT_BINARY_DIR}/asn1c_skeleton:/dest
-u ${USER_ID}:${GROUP_ID}
${VANETZA_ASN1C_CONTAINER_IMAGE}
bash -c "cp -a /usr/share/asn1c/* /dest/"
COMMAND ${CMAKE_COMMAND} -E make_directory "${_support_asn1_dir}"
COMMAND ${CMAKE_COMMAND}
-DSOURCE=${CMAKE_CURRENT_BINARY_DIR}/asn1c_skeleton
-DDESTINATION=${_support_asn1_dir}
-P copy_asn1c_skeleton.cmake
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=support
-DASN1C_SOURCE_FILE=${_support_asn1_source_file}
-P collect_asn1c_sources.cmake
COMMENT "Copying generic asn1c support code"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
VERBATIM)
generate_asn1c(DESCRIPTION "ITS applications Release 1 (CDD, CA, DEN)"
OUTPUT_DIRECTORY ${_its_asn1_dir}
SOURCE_FILE ${_its_asn1_source_file}
SOURCES ${_its_asn1_files} test.asn)
generate_asn1c(DESCRIPTION "ITS applications Release 2 (CDD, CA, DEN)"
OUTPUT_DIRECTORY ${_its_r2_asn1_dir}
SOURCE_FILE ${_its_r2_asn1_source_file}
PREFIX Vanetza_ITS2_
SOURCES ${_its_r2_asn1_files})
generate_asn1c(DESCRIPTION "Security (Release 1)"
OUTPUT_DIRECTORY ${_sec_asn1_dir}
SOURCE_FILE ${_sec_asn1_source_file}
PREFIX Vanetza_Security_
SOURCES ${_sec_asn1_files} ${_pki_asn1_files})
if(VANETZA_WITH_PQC)
generate_asn1c(DESCRIPTION "Security Release 2 (experimental hybrid-PQC profile)"
OUTPUT_DIRECTORY ${_systemx_pqc_asn1_dir}
SOURCE_FILE ${_systemx_pqc_asn1_source_file}
PREFIX Vanetza_Security_
SOURCES ${_systemx_pqc_asn1_files})
endif()
generate_asn1c(DESCRIPTION "Security (Release 2)"
OUTPUT_DIRECTORY ${_sec_r2_asn1_dir}
SOURCE_FILE ${_sec_r2_asn1_source_file}
PREFIX Vanetza_Security2_
SOURCES ${_sec_r2_asn1_files} ${_pki_r2_asn1_files} ${_ieee_asn1_files})
set(_generate_asn1c_outputs
"${_support_asn1_dir}" "${_support_asn1_source_file}"
"${_its_asn1_dir}" "${_its_asn1_source_file}"
"${_its_r2_asn1_dir}" "${_its_r2_asn1_source_file}"
"${_sec_asn1_dir}" "${_sec_asn1_source_file}"
"${_sec_r2_asn1_dir}" "${_sec_r2_asn1_source_file}")
if(VANETZA_WITH_PQC)
list(APPEND _generate_asn1c_outputs
"${_systemx_pqc_asn1_dir}" "${_systemx_pqc_asn1_source_file}")
endif()
add_custom_target(generate_asn1c DEPENDS ${_generate_asn1c_outputs} VERBATIM)
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_skeleton.cmake
COMMENT "Patching asn1c support files"
WORKING_DIRECTORY ${_support_asn1_dir} VERBATIM)
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_generated.cmake
COMMENT "Patching generated ITS application asn1c files"
WORKING_DIRECTORY ${_its_asn1_dir} VERBATIM)
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DASN1C_PREFIX=Vanetza_ITS2_
-P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_generated.cmake
COMMENT "Patching generated ITS Release 2 asn1c files"
WORKING_DIRECTORY ${_its_r2_asn1_dir} VERBATIM)
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DASN1C_PREFIX=Vanetza_Security_
-P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_generated.cmake
COMMENT "Patching generated Security asn1c files"
WORKING_DIRECTORY ${_sec_asn1_dir} VERBATIM)
if(VANETZA_WITH_PQC)
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DASN1C_PREFIX=Vanetza_Security_
-P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_generated.cmake
COMMENT "Patching generated experimental hybrid-PQC Security asn1c files"
WORKING_DIRECTORY ${_systemx_pqc_asn1_dir} VERBATIM)
endif()
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DASN1C_PREFIX=Vanetza_Security2_
-P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_generated.cmake
COMMENT "Patching generated Security Release 2 asn1c files"
WORKING_DIRECTORY ${_sec_r2_asn1_dir} VERBATIM)
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -DPATCH_DIRECTORY=${CMAKE_CURRENT_SOURCE_DIR}/patches
-P ${CMAKE_CURRENT_SOURCE_DIR}/apply_patches.cmake
COMMENT "Applying hot-fixes to generated asn1c files"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} VERBATIM)
if(VANETZA_WITH_PQC)
# These generated types are identical in both profiles. Reuse the
# already patched variants instead of maintaining a duplicate patch.
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${_sec_asn1_dir}/Time64.c ${_systemx_pqc_asn1_dir}/Time64.c
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${_sec_asn1_dir}/Uint64.c ${_systemx_pqc_asn1_dir}/Uint64.c
COMMENT "Copying patched 64-bit Security ASN.1 types into the hybrid-PQC profile"
VERBATIM)
endif()
if(VANETZA_ASN1_WITH_ISO)
add_custom_command(TARGET generate_asn1c POST_BUILD
COMMAND ${CMAKE_COMMAND} -DPATCH_DIRECTORY=${CMAKE_CURRENT_SOURCE_DIR}/patches/iso
-P ${CMAKE_CURRENT_SOURCE_DIR}/apply_patches.cmake
COMMENT "Applying hot-fixes to generated asn1c ITS ISO files"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} VERBATIM)
endif()
# wipe directory with generated files before generating
add_custom_target(clean_asn1c
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=${_support_asn1_dir}
-DASN1C_SOURCE_FILE=${_support_asn1_source_file}
-P clean_asn1c.cmake
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=${_its_asn1_dir}
-DASN1C_SOURCE_FILE=${_its_asn1_source_file}
-P clean_asn1c.cmake
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=${_its_r2_asn1_dir}
-DASN1C_SOURCE_FILE=${_its_r2_asn1_source_file}
-P clean_asn1c.cmake
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=${_sec_asn1_dir}
-DASN1C_SOURCE_FILE=${_sec_asn1_source_file}
-P clean_asn1c.cmake
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=${_sec_r2_asn1_dir}
-DASN1C_SOURCE_FILE=${_sec_r2_asn1_source_file}
-P clean_asn1c.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} VERBATIM)
if(VANETZA_WITH_PQC)
add_custom_target(clean_asn1c_systemx_pqc
COMMAND ${CMAKE_COMMAND}
-DASN1C_OUTPUT_DIR=${_systemx_pqc_asn1_dir}
-DASN1C_SOURCE_FILE=${_systemx_pqc_asn1_source_file}
-P clean_asn1c.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} VERBATIM)
add_dependencies(clean_asn1c clean_asn1c_systemx_pqc)
endif()
add_dependencies(generate_asn1c clean_asn1c)
endif()
function(add_asn1_component NAME)
cmake_parse_arguments(ARG "" "SOURCE_FILE;SOURCE_DIRECTORY" "" ${ARGN})
string(REPLACE "/" "_" NAME_ESCAPED "${NAME}")
if(ARG_SOURCE_FILE)
set(_source_file "${ARG_SOURCE_FILE}")
else()
set(_source_file "asn1c_${NAME_ESCAPED}_sources.txt")
endif()
file(STRINGS "${_source_file}" _sources REGEX "^[^#]+")
if (NOT _sources)
message(AUTHOR_WARNING "source file ${_source_file} is empty, fix this now!")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/asn1_${NAME}_no_sources.c
"#error \"generated ${NAME} ASN.1 source files are missing\"")
set(_sources ${CMAKE_CURRENT_BINARY_DIR}/asn1_${NAME}_no_sources.c)
endif()
add_vanetza_component(asn1_${NAME_ESCAPED} ${_sources})
set_target_properties(asn1_${NAME_ESCAPED} PROPERTIES C_STANDARD 11)
if ("${NAME}" STREQUAL "support")
target_include_directories(asn1_support PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/support>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/vanetza/asn1/support>)
if(UNIX)
target_compile_definitions(asn1_support PUBLIC HAVE_NETINET_IN_H)
endif()
else()
target_link_libraries(asn1_${NAME_ESCAPED} PUBLIC asn1_support)
endif()
# Silence warnings in code generated by asn1c
if (CMAKE_C_COMPILER_ID STREQUAL "Clang")
set_property(SOURCE ${_sources} APPEND PROPERTY COMPILE_OPTIONS "-Wno-parentheses-equality")
endif()
get_filename_component(_dir ${NAME} DIRECTORY)
if(ARG_SOURCE_DIRECTORY)
set(_install_source "${ARG_SOURCE_DIRECTORY}")
else()
set(_install_source "${CMAKE_CURRENT_SOURCE_DIR}/${NAME}")
endif()
install(DIRECTORY ${_install_source}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vanetza/asn1/${_dir}
FILES_MATCHING PATTERN "*.h")
endfunction()
add_asn1_component(support)
target_sources(asn1_support PRIVATE memory.c)
install(FILES memory.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vanetza/asn1)
add_asn1_component(its)
add_asn1_component(its/r2)
if(VANETZA_WITH_PQC)
add_asn1_component(security
SOURCE_FILE ${_systemx_pqc_asn1_source_file}
SOURCE_DIRECTORY ${_systemx_pqc_asn1_dir})
target_compile_definitions(asn1_security PUBLIC VANETZA_WITH_PQC)
else()
add_asn1_component(security)
endif()
add_asn1_component(security/r2)
add_vanetza_component(asn1 asn1c_wrapper.cpp type_traits.cpp)
target_link_libraries(asn1 PUBLIC asn1_its Boost::boost)
add_test_subdirectory(tests)
@@ -0,0 +1,18 @@
FROM ubuntu:latest AS base
FROM base AS build
RUN apt-get update && apt-get install -y autoconf automake bison build-essential flex git libtool
ARG ASN1C_REPO=https://github.com/mouse07410/asn1c.git
ARG ASN1C_VERSION=eefc4cfca40e5ee6e0b6506d6d8c93c24d423cec
RUN git clone $ASN1C_REPO /asn1c-source && cd /asn1c-source && git checkout ${ASN1C_VERSION}
WORKDIR /asn1c-source
RUN autoreconf -iv && ./configure --prefix /asn1c && make -j $(nproc) install
FROM build AS test
RUN make -j $(nproc) check
RUN make -j $(nproc) distcheck
FROM base AS runtime
RUN apt-get update && apt-get install -y cmake
COPY --from=build /asn1c/bin /usr/bin
COPY --from=build /asn1c/share /usr/share
@@ -0,0 +1,10 @@
find_package(Git REQUIRED)
file(GLOB PATCH_FILES ${PATCH_DIRECTORY}/*.patch)
foreach(PATCH_FILE IN LISTS PATCH_FILES)
get_filename_component(PATCH_NAME "${PATCH_FILE}" NAME_WE)
message(STATUS "Applying patch ${PATCH_NAME}")
execute_process(COMMAND "${GIT_EXECUTABLE}" apply "${PATCH_FILE}" RESULT_VARIABLE PATCH_RESULT)
if(NOT PATCH_RESULT EQUAL 0)
message(SEND_ERROR "Applying patch ${PATCH_FILE} failed!")
endif()
endforeach()
@@ -0,0 +1,63 @@
#ifndef ASN1C_CONVERSION_HPP_9E5QN6UC
#define ASN1C_CONVERSION_HPP_9E5QN6UC
#include <vanetza/asn1/asn1c_wrapper.hpp>
#include <vanetza/common/byte_buffer_convertible.hpp>
#include <memory>
#include <type_traits>
namespace vanetza
{
namespace convertible
{
template<class T>
struct byte_buffer_impl : public byte_buffer
{
public:
using wrapper_type = T;
static_assert(
std::is_base_of<asn1::asn1c_wrapper_common<typename T::asn1c_type>, T>::value,
"Only asn1c_wrapper derivates are supported");
byte_buffer_impl(wrapper_type&& t) :
m_wrapper(new wrapper_type(std::move(t)))
{
}
byte_buffer_impl(std::shared_ptr<const wrapper_type> other) :
m_wrapper(other)
{
}
void convert(ByteBuffer& buffer) const override
{
buffer = m_wrapper->encode();
}
std::unique_ptr<byte_buffer> duplicate() const override
{
return std::unique_ptr<byte_buffer> {
new byte_buffer_impl { m_wrapper }
};
}
std::size_t size() const override
{
return m_wrapper->size();
}
std::shared_ptr<const wrapper_type> wrapper() const
{
return m_wrapper;
}
private:
std::shared_ptr<const wrapper_type> m_wrapper;
};
} // namespace convertible
} // namespace vanetza
#endif /* ASN1C_CONVERSION_HPP_9E5QN6UC */
@@ -0,0 +1,470 @@
# generated file
its/r2/Acceleration3dWithConfidence.c
its/r2/AccelerationCartesian.c
its/r2/AccelerationChange.c
its/r2/AccelerationChangeIndication.c
its/r2/AccelerationComponent.c
its/r2/AccelerationConfidence.c
its/r2/AccelerationControl.c
its/r2/AccelerationControlExtension.c
its/r2/AccelerationMagnitude.c
its/r2/AccelerationMagnitudeValue.c
its/r2/AccelerationPolarWithZ.c
its/r2/AccelerationValue.c
its/r2/AccessTechnologyClass.c
its/r2/AccidentSubCauseCode.c
its/r2/ActionId.c
its/r2/ActionIdList.c
its/r2/AdhesionSubCauseCode.c
its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.c
its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.c
its/r2/AdverseWeatherCondition-WindSubCauseCode.c
its/r2/AirHumidity.c
its/r2/AlacarteContainer.c
its/r2/Altitude.c
its/r2/AltitudeConfidence.c
its/r2/AltitudeValue.c
its/r2/AngleConfidence.c
its/r2/AngularAccelerationConfidence.c
its/r2/AngularSpeedConfidence.c
its/r2/AutomationControl.c
its/r2/AxlesCount.c
its/r2/BarometricPressure.c
its/r2/BasicContainer.c
its/r2/BasicLaneConfiguration.c
its/r2/BasicLaneInformation.c
its/r2/BasicVehicleContainerHighFrequency.c
its/r2/BasicVehicleContainerLowFrequency.c
its/r2/BogiesCount.c
its/r2/BrakeControl.c
its/r2/CAM.c
its/r2/CPM-PDU-Descriptions_ManagementContainer.c
its/r2/CamParameters.c
its/r2/CamPayload.c
its/r2/CardinalNumber1B.c
its/r2/CardinalNumber3b.c
its/r2/CartesianAngle.c
its/r2/CartesianAngleValue.c
its/r2/CartesianAngularAccelerationComponent.c
its/r2/CartesianAngularAccelerationComponentValue.c
its/r2/CartesianAngularVelocityComponent.c
its/r2/CartesianAngularVelocityComponentValue.c
its/r2/CartesianCoordinate.c
its/r2/CartesianCoordinateLarge.c
its/r2/CartesianCoordinateSmall.c
its/r2/CartesianCoordinateWithConfidence.c
its/r2/CartesianPosition3d.c
its/r2/CartesianPosition3dWithConfidence.c
its/r2/CauseCode.c
its/r2/CauseCodeChoice.c
its/r2/CauseCodeType.c
its/r2/CauseCodeV2.c
its/r2/CenDsrcTollingZone.c
its/r2/CenDsrcTollingZoneID.c
its/r2/CircularShape.c
its/r2/ClosedLanes.c
its/r2/ClusterBreakupInfo.c
its/r2/ClusterBreakupReason.c
its/r2/ClusterJoinInfo.c
its/r2/ClusterLeaveInfo.c
its/r2/ClusterLeaveReason.c
its/r2/CollectivePerceptionMessage.c
its/r2/CollisionRiskSubCauseCode.c
its/r2/ConfidenceLevel.c
its/r2/ConfidenceLevels.c
its/r2/ConstraintWrappedCpmContainers.c
its/r2/CoordinateConfidence.c
its/r2/CorrelationCellValue.c
its/r2/CorrelationColumn.c
its/r2/CountryCode.c
its/r2/CpmContainerId.c
its/r2/CpmPayload.c
its/r2/Curvature.c
its/r2/CurvatureCalculationMode.c
its/r2/CurvatureConfidence.c
its/r2/CurvatureValue.c
its/r2/CyclistTypeSpecificInformation.c
its/r2/DENM-PDU-Description_ManagementContainer.c
its/r2/DENM.c
its/r2/DangerousEndOfQueueSubCauseCode.c
its/r2/DangerousGoodsBasic.c
its/r2/DangerousGoodsContainer.c
its/r2/DangerousGoodsExtended.c
its/r2/DangerousSituationSubCauseCode.c
its/r2/DayOfWeek.c
its/r2/DeltaAltitude.c
its/r2/DeltaLatitude.c
its/r2/DeltaLongitude.c
its/r2/DeltaReferencePosition.c
its/r2/DeltaReferencePositions.c
its/r2/DeltaTimeMilliSecondPositive.c
its/r2/DeltaTimeMilliSecondSigned.c
its/r2/DeltaTimeQuarterSecond.c
its/r2/DeltaTimeSecond.c
its/r2/DeltaTimeTenSeconds.c
its/r2/DeltaTimeTenthOfSecond.c
its/r2/DenmPayload.c
its/r2/DigitalMap.c
its/r2/Direction.c
its/r2/DriveDirection.c
its/r2/DrivingLaneStatus.c
its/r2/EHorizonLocationSharingContainer.c
its/r2/ETSI-ITS-CDD_DeltaPosition.c
its/r2/ETSI-ITS-CDD_DeltaPositions.c
its/r2/ETSI-ITS-CDD_ParkingAreaArrangementType.c
its/r2/ETSI-ITS-CDD_ParkingOccupancyInfo.c
its/r2/ETSI-ITS-CDD_ParkingReservationType.c
its/r2/ETSI-ITS-CDD_ParkingSpaceBasic.c
its/r2/ETSI-ITS-CDD_ParkingSpaceDetailed.c
its/r2/ETSI-ITS-CDD_ParkingSpaceStatus.c
its/r2/EllipticalShape.c
its/r2/EmbarkationStatus.c
its/r2/EmergencyContainer.c
its/r2/EmergencyPriority.c
its/r2/EmergencyVehicleApproachingSubCauseCode.c
its/r2/EnergyStorageType.c
its/r2/EngineCharacteristicsFromIso.c
its/r2/EuVehicleCategoryCode.c
its/r2/EuVehicleCategoryL.c
its/r2/EuVehicleCategoryM.c
its/r2/EuVehicleCategoryN.c
its/r2/EuVehicleCategoryO.c
its/r2/EulerAnglesWithConfidence.c
its/r2/EventHistory.c
its/r2/EventPoint.c
its/r2/EventZone.c
its/r2/Ext1.c
its/r2/Ext2.c
its/r2/Ext3.c
its/r2/ExtensionContainerId.c
its/r2/ExteriorLights.c
its/r2/GeneralParkingPlaceContainer.c
its/r2/GeneralizedLanePosition.c
its/r2/GeneralizedLanePositions.c
its/r2/GeneralizedLanePositionsContainer.c
its/r2/GenerationDeltaTime.c
its/r2/GeoPosition.c
its/r2/GeoPositionWAltitude.c
its/r2/GeoPositionWoAltitude.c
its/r2/GeoPositionsWAltitude.c
its/r2/GeoPositionsWoAltitude.c
its/r2/GoodsType.c
its/r2/HardShoulderStatus.c
its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.c
its/r2/HazardousLocation-DangerousCurveSubCauseCode.c
its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c
its/r2/HazardousLocation-SurfaceConditionSubCauseCode.c
its/r2/Heading.c
its/r2/HeadingChangeIndication.c
its/r2/HeadingConfidence.c
its/r2/HeadingValue.c
its/r2/HeightLonCarr.c
its/r2/HighFrequencyContainer.c
its/r2/HumanPresenceOnTheRoadSubCauseCode.c
its/r2/HumanProblemSubCauseCode.c
its/r2/Identifier1B.c
its/r2/Identifier2B.c
its/r2/ImpactReductionContainer.c
its/r2/ImpassabilitySubCauseCode.c
its/r2/InformationQuality.c
its/r2/InterferenceManagementChannel.c
its/r2/InterferenceManagementInfo.c
its/r2/InterferenceManagementInfoPerChannel.c
its/r2/InterferenceManagementZone.c
its/r2/InterferenceManagementZoneDefinition.c
its/r2/InterferenceManagementZoneType.c
its/r2/InterferenceManagementZones.c
its/r2/IntersectionReferenceId.c
its/r2/Iso3833VehicleType.c
its/r2/IssuerIdentifier.c
its/r2/ItineraryPath.c
its/r2/ItsPduHeader.c
its/r2/ItsPduHeaderVam.c
its/r2/IviIdentificationNumber.c
its/r2/IvimReference.c
its/r2/IvimReferences.c
its/r2/LanePosition.c
its/r2/LanePositionAndType.c
its/r2/LanePositionOptions.c
its/r2/LanePositionWithLateralDetails.c
its/r2/LaneType.c
its/r2/LaneWidth.c
its/r2/LateralAcceleration.c
its/r2/LateralAccelerationValue.c
its/r2/Latitude.c
its/r2/LightBarSirenInUse.c
its/r2/LoadType.c
its/r2/LocationContainer.c
its/r2/Longitude.c
its/r2/LongitudinalAcceleration.c
its/r2/LongitudinalAccelerationValue.c
its/r2/LongitudinalLanePosition.c
its/r2/LongitudinalLanePositionConfidence.c
its/r2/LongitudinalLanePositionValue.c
its/r2/LowFrequencyContainer.c
its/r2/LowerTriangularPositiveSemidefiniteMatrices.c
its/r2/LowerTriangularPositiveSemidefiniteMatrix.c
its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.c
its/r2/MapPosition.c
its/r2/MapReference.c
its/r2/MapReferences.c
its/r2/MapemConfiguration.c
its/r2/MapemConnectionList.c
its/r2/MapemElementReference.c
its/r2/MapemLaneList.c
its/r2/MatrixIncludedComponents.c
its/r2/MessageId.c
its/r2/MessageRateHz.c
its/r2/MessageRateRange.c
its/r2/MessageSegmentationInfo.c
its/r2/MetaInformation.c
its/r2/MitigationForTechnologies.c
its/r2/MitigationPerTechnologyClass.c
its/r2/MotorcylistSpecialContainer.c
its/r2/MultiplicativeFactor.c
its/r2/NumberOfOccupants.c
its/r2/NumberOfSpaces.c
its/r2/ObjectClass.c
its/r2/ObjectClassDescription.c
its/r2/ObjectClassWithConfidence.c
its/r2/ObjectDimension.c
its/r2/ObjectDimensionConfidence.c
its/r2/ObjectDimensionValue.c
its/r2/ObjectFace.c
its/r2/ObjectPerceptionQuality.c
its/r2/OccupancyInformation.c
its/r2/OccupancyRate.c
its/r2/OccupancyTrend.c
its/r2/OccupiedLanesWithConfidence.c
its/r2/OpeningDaysHours.c
its/r2/OpeningStatus.c
its/r2/OrdinalNumber1B.c
its/r2/OrdinalNumber3b.c
its/r2/OriginatingRsuContainer.c
its/r2/OriginatingVehicleContainer.c
its/r2/OtherSubClass.c
its/r2/POIM-ParkingAvailability_DeltaPosition.c
its/r2/POIM-ParkingAvailability_DeltaPositions.c
its/r2/POIM-ParkingAvailability_ParkingAreaArrangementType.c
its/r2/POIM-ParkingAvailability_ParkingOccupancyInfo.c
its/r2/POIM-ParkingAvailability_ParkingReservationType.c
its/r2/POIM-ParkingAvailability_ParkingSpaceBasic.c
its/r2/POIM-ParkingAvailability_ParkingSpaceDetailed.c
its/r2/POIM-ParkingAvailability_ParkingSpaceStatus.c
its/r2/POIM.c
its/r2/ParkingArea.c
its/r2/ParkingAreas.c
its/r2/ParkingAvailabilityBlock.c
its/r2/ParkingFeeType.c
its/r2/ParkingSpacesBasic.c
its/r2/ParkingSpacesDetailed.c
its/r2/ParkingStatus.c
its/r2/ParkingStatusContainer.c
its/r2/ParkingStatusList.c
its/r2/ParkingSupplyCapabilitiesContainer.c
its/r2/Path.c
its/r2/PathDeltaTime.c
its/r2/PathDeltaTimeChoice.c
its/r2/PathExtended.c
its/r2/PathHistory.c
its/r2/PathId.c
its/r2/PathPoint.c
its/r2/PathPointPredicted.c
its/r2/PathPredicted.c
its/r2/PathPredicted2.c
its/r2/PathPredictedList.c
its/r2/PathPredictionContainer.c
its/r2/PathReferences.c
its/r2/PedalPositionValue.c
its/r2/PedalStatus.c
its/r2/PerceivedEvent.c
its/r2/PerceivedObject.c
its/r2/PerceivedObjectContainer.c
its/r2/PerceivedObjectIds.c
its/r2/PerceivedObjects.c
its/r2/PerceptionRegion.c
its/r2/PerceptionRegionContainer.c
its/r2/PerformanceClass.c
its/r2/Period.c
its/r2/Periods.c
its/r2/PhoneNumber.c
its/r2/PoiBlockManagementContainer.c
its/r2/PoiType.c
its/r2/PolygonalLine.c
its/r2/PolygonalShape.c
its/r2/PosCentMass.c
its/r2/PosConfidenceEllipse.c
its/r2/PosFrontAx.c
its/r2/PosLonCarr.c
its/r2/PosPillar.c
its/r2/Position1d.c
its/r2/PositionConfidenceEllipse.c
its/r2/PositionOfOccupants.c
its/r2/PositionOfPillars.c
its/r2/PositioningSolutionType.c
its/r2/PostCrashSubCauseCode.c
its/r2/PreCrashContainer.c
its/r2/PrecipitationIntensity.c
its/r2/ProtectedCommunicationZone.c
its/r2/ProtectedCommunicationZonesRSU.c
its/r2/ProtectedZoneId.c
its/r2/ProtectedZoneRadius.c
its/r2/ProtectedZoneType.c
its/r2/Provider.c
its/r2/PtActivation.c
its/r2/PtActivationData.c
its/r2/PtActivationType.c
its/r2/PublicTransportContainer.c
its/r2/RSUContainerHighFrequency.c
its/r2/RadialShape.c
its/r2/RadialShapeDetails.c
its/r2/RadialShapes.c
its/r2/RadialShapesList.c
its/r2/RailwayLevelCrossingSubCauseCode.c
its/r2/RectangularShape.c
its/r2/ReferencePosition.c
its/r2/ReferencePositionWithConfidence.c
its/r2/RelatedPoiInfoBlock.c
its/r2/RelatedPoiInfoBlockContainer.c
its/r2/RelevanceDistance.c
its/r2/RelevanceTrafficDirection.c
its/r2/RequestResponseIndication.c
its/r2/RescueContainer.c
its/r2/RescueRecoveryAndMaintenanceWorkInProgressSubCauseCode.c
its/r2/RestrictedTypes.c
its/r2/RoadConfigurationContainer.c
its/r2/RoadConfigurationSection.c
its/r2/RoadConfigurationSectionList.c
its/r2/RoadSectionDefinition.c
its/r2/RoadSectionId.c
its/r2/RoadSegmentReferenceId.c
its/r2/RoadType.c
its/r2/RoadWorksContainerBasic.c
its/r2/RoadWorksContainerExtended.c
its/r2/RoadworksSubCauseCode.c
its/r2/SaeAutomationLevel.c
its/r2/SafeDistanceIndication.c
its/r2/SafeDistanceIndicator.c
its/r2/SafetyCarContainer.c
its/r2/SemiAxisLength.c
its/r2/SensorInformation.c
its/r2/SensorInformationContainer.c
its/r2/SensorType.c
its/r2/SensorTypes.c
its/r2/SequenceNumber.c
its/r2/SequenceOfCartesianPosition3d.c
its/r2/SequenceOfIdentifier1B.c
its/r2/SequenceOfSafeDistanceIndication.c
its/r2/SequenceOfTrajectoryInterceptionIndication.c
its/r2/Shape.c
its/r2/SignalViolationSubCauseCode.c
its/r2/SituationContainer.c
its/r2/SlowVehicleSubCauseCode.c
its/r2/SpecialTransportContainer.c
its/r2/SpecialTransportType.c
its/r2/SpecialVehicleContainer.c
its/r2/Speed.c
its/r2/SpeedConfidence.c
its/r2/SpeedLimit.c
its/r2/SpeedValue.c
its/r2/StabilityChangeIndication.c
its/r2/StabilityLossProbability.c
its/r2/StandardLength12b.c
its/r2/StandardLength1B.c
its/r2/StandardLength2B.c
its/r2/StandardLength3b.c
its/r2/StandardLength9b.c
its/r2/StationId.c
its/r2/StationType.c
its/r2/StationarySince.c
its/r2/StationaryVehicleContainer.c
its/r2/StationaryVehicleSubCauseCode.c
its/r2/SteeringWheelAngle.c
its/r2/SteeringWheelAngleConfidence.c
its/r2/SteeringWheelAngleValue.c
its/r2/StoredInformationType.c
its/r2/SubCauseCodeType.c
its/r2/Temperature.c
its/r2/Termination.c
its/r2/TimeOfDay.c
its/r2/TimestampIts.c
its/r2/Traces.c
its/r2/TracesExtended.c
its/r2/TrafficConditionSubCauseCode.c
its/r2/TrafficDirection.c
its/r2/TrafficIslandPosition.c
its/r2/TrafficParticipantType.c
its/r2/TrafficRule.c
its/r2/TrailerData.c
its/r2/TrailerDataSet.c
its/r2/TrailerPresenceInformation.c
its/r2/TrajectoryInterceptionConfidence.c
its/r2/TrajectoryInterceptionIndication.c
its/r2/TrajectoryInterceptionProbability.c
its/r2/TransmissionInterval.c
its/r2/TurningDirection.c
its/r2/TurningRadius.c
its/r2/TwoWheelerContainer.c
its/r2/TwoWheelerTypeSpecificInformation.c
its/r2/UsageIndication.c
its/r2/VAM.c
its/r2/VDS.c
its/r2/ValidityDuration.c
its/r2/VamParameters.c
its/r2/VarLengthNumber.c
its/r2/VehicleBreakdownSubCauseCode.c
its/r2/VehicleHeight.c
its/r2/VehicleHeight2.c
its/r2/VehicleIdentification.c
its/r2/VehicleLength.c
its/r2/VehicleLengthConfidenceIndication.c
its/r2/VehicleLengthV2.c
its/r2/VehicleLengthValue.c
its/r2/VehicleMass.c
its/r2/VehicleMovementControl.c
its/r2/VehicleMovementControlContainer.c
its/r2/VehicleRole.c
its/r2/VehicleWidth.c
its/r2/Velocity3dWithConfidence.c
its/r2/VelocityCartesian.c
its/r2/VelocityComponent.c
its/r2/VelocityComponentValue.c
its/r2/VelocityPolarWithZ.c
its/r2/VerticalAcceleration.c
its/r2/VerticalAccelerationValue.c
its/r2/VeryLowFrequencyContainer.c
its/r2/VruAwareness.c
its/r2/VruClusterInformation.c
its/r2/VruClusterInformationContainer.c
its/r2/VruClusterOperationContainer.c
its/r2/VruClusterProfiles.c
its/r2/VruDeviceUsage.c
its/r2/VruEnvironment.c
its/r2/VruExteriorLights.c
its/r2/VruHighFrequencyContainer.c
its/r2/VruLowFrequencyContainer.c
its/r2/VruMotionPredictionContainer.c
its/r2/VruMovementControl.c
its/r2/VruProfileAndSubprofile.c
its/r2/VruSizeClass.c
its/r2/VruSpecificExteriorLights.c
its/r2/VruSubProfileAnimal.c
its/r2/VruSubProfileBicyclist.c
its/r2/VruSubProfileMotorcyclist.c
its/r2/VruSubProfilePedestrian.c
its/r2/WMInumber.c
its/r2/Wgs84Angle.c
its/r2/Wgs84AngleConfidence.c
its/r2/Wgs84AngleValue.c
its/r2/WheelBaseVehicle.c
its/r2/WiperStatus.c
its/r2/WrappedCpmContainer.c
its/r2/WrappedCpmContainers.c
its/r2/WrappedExtensionContainer.c
its/r2/WrappedExtensionContainers.c
its/r2/WrappedPoiInformationBlock.c
its/r2/WrappedPoiInformationBlocks.c
its/r2/WrongWayDrivingSubCauseCode.c
its/r2/YawRate.c
its/r2/YawRateConfidence.c
its/r2/YawRateValue.c
@@ -0,0 +1,710 @@
# generated file
its/AbsolutePosition.c
its/AbsolutePositionWAltitude.c
its/AbsolutePositions.c
its/AbsolutePositionsWAltitude.c
its/AccelerationConfidence.c
its/AccelerationControl.c
its/AccidentSubCauseCode.c
its/ActionID.c
its/ActualNumberOfPassengers.c
its/AddRq.c
its/AdverseWeatherCondition-AdhesionSubCauseCode.c
its/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c
its/AdverseWeatherCondition-PrecipitationSubCauseCode.c
its/AdverseWeatherCondition-VisibilitySubCauseCode.c
its/AdvisorySpeed.c
its/AdvisorySpeedList.c
its/AdvisorySpeedType.c
its/AlacarteContainer.c
its/AllowedManeuvers.c
its/AlphabetIndicator.c
its/Altitude.c
its/AltitudeConfidence.c
its/AltitudeValue.c
its/Angle.c
its/AngleConfidence.c
its/AnimalSubclass.c
its/AnimalSubclassType.c
its/AntennaOffsetSet.c
its/AnyCatalogue.c
its/ApproachID.c
its/AreaCircular.c
its/AreaEllipse.c
its/AreaPolygon.c
its/AreaRadial.c
its/AreaRectangle.c
its/AttributeIdList.c
its/AttributeList.c
its/Attributes.c
its/AutomatedVehicleContainer.c
its/AutomatedVehicleRule.c
its/AutomatedVehicleRules.c
its/AvcPart.c
its/AviEriDateTime.c
its/AxleWeightLimits.c
its/BankingAngle.c
its/BasicContainer.c
its/BasicVehicleContainerHighFrequency.c
its/BasicVehicleContainerLowFrequency.c
its/BasicVehicleRole.c
its/BatteryStatus.c
its/CAM.c
its/CO2EmissionValue.c
its/CPM.c
its/CS1.c
its/CS2.c
its/CS3.c
its/CS4.c
its/CS5.c
its/CS7.c
its/CS8.c
its/CamParameters.c
its/CartesianAngle.c
its/CartesianAngleValue.c
its/CauseCode.c
its/CauseCodeType.c
its/CenDsrcTollingZone.c
its/CenDsrcTollingZoneID.c
its/ChannelId.c
its/ChannelRq.c
its/ChannelRs.c
its/ClassConfidence.c
its/ClosedLanes.c
its/Code-Units.c
its/CollectivePerceptionMessage.c
its/CollisionRiskSubCauseCode.c
its/ComparisonOperator.c
its/CompleteVehicleCharacteristics.c
its/ComputedLane.c
its/ComputedSegment.c
its/Condition.c
its/ConnectedDenms.c
its/ConnectingLane.c
its/Connection.c
its/ConnectionManeuverAssist-addGrpC.c
its/ConnectionManeuverAssist.c
its/ConnectionTrajectory-addGrpC.c
its/ConnectsToList.c
its/ConstraintTextLines1.c
its/ConstraintTextLines2.c
its/ContractAuthenticator.c
its/ContractSerialNumber.c
its/ContractValidity.c
its/ContractVehicle.c
its/CoopAwareness.c
its/CopValue.c
its/CopyRq.c
its/CountryCode.c
its/CpmManagementContainer.c
its/CpmParameters.c
its/CreditRq.c
its/CreditRs.c
its/Curvature.c
its/CurvatureCalculationMode.c
its/CurvatureConfidence.c
its/CurvatureValue.c
its/DDD-IO-LIST.c
its/DDD-IO.c
its/DDateTime.c
its/DDay.c
its/DENM.c
its/DHour.c
its/DMinute.c
its/DMonth.c
its/DOffset.c
its/DSRCmsgID.c
its/DSecond.c
its/DYear.c
its/DangerousEndOfQueueSubCauseCode.c
its/DangerousGoodsBasic.c
its/DangerousGoodsContainer.c
its/DangerousGoodsExtended.c
its/DangerousSituationSubCauseCode.c
its/DataParameters.c
its/DateAndTime.c
its/DateCompact.c
its/DayOfWeek.c
its/DebitRq.c
its/DebitRs.c
its/DecentralizedEnvironmentalNotificationMessage.c
its/DefinitionAccuracy.c
its/DeltaAltitude.c
its/DeltaAngle.c
its/DeltaLatitude.c
its/DeltaLongitude.c
its/DeltaPosition.c
its/DeltaPositions.c
its/DeltaReferencePosition.c
its/DeltaReferencePositions.c
its/DeltaTime.c
its/Depth.c
its/DescriptiveCharacteristics.c
its/DescriptiveName.c
its/DestinationPlace.c
its/DestinationPlaces.c
its/DestinationRoad.c
its/DestinationRoadType.c
its/DestinationRoads.c
its/DestinationType.c
its/DetectionArea.c
its/DieselEmissionValues.c
its/DigitalMap.c
its/Direction.c
its/Distance.c
its/DistanceConfidence.c
its/DistanceOrDuration.c
its/DistanceValue.c
its/DriveDirection.c
its/DrivenLineOffsetLg.c
its/DrivenLineOffsetSm.c
its/DrivingLaneStatus.c
its/DynamicStatus.c
its/EFC-ContextMark.c
its/EfcDsrcApplication_DriverCharacteristics.c
its/EfcDsrcApplication_TrailerCharacteristics.c
its/Elevation.c
its/ElevationConfidence.c
its/EmbarkationStatus.c
its/EmergencyContainer.c
its/EmergencyPriority.c
its/EmergencyVehicleApproachingSubCauseCode.c
its/EmissionType.c
its/EnabledLaneList.c
its/EnergyStorageType.c
its/Engine.c
its/EngineCharacteristics.c
its/EnvironmentalCharacteristics.c
its/EquipmentOBUId.c
its/EquipmentStatus.c
its/EuVehicleCategoryCode.c
its/EuVehicleCategoryL.c
its/EuVehicleCategoryM.c
its/EuVehicleCategoryN.c
its/EuVehicleCategoryO.c
its/EuroValue.c
its/EventHistory.c
its/EventPoint.c
its/ExceptionalCondition.c
its/ExhaustEmissionValues.c
its/Ext1.c
its/Ext2.c
its/Ext3.c
its/ExteriorLights.c
its/FreeSpaceAddendum.c
its/FreeSpaceAddendumContainer.c
its/FreeSpaceArea.c
its/FreeSpaceConfidence.c
its/FreightContainerData.c
its/FrictionCoefficient.c
its/FrontOverhang.c
its/FuelType.c
its/FullPositionVector.c
its/FutureCharacteristics.c
its/GNSSstatus.c
its/GapBetweenVehicles.c
its/GddAttribute.c
its/GddAttributes.c
its/GddStructure.c
its/GeneralIviContainer.c
its/GenerationDeltaTime.c
its/GenericLane.c
its/GeoGraphicalLimit.c
its/GeographicLocationContainer.c
its/GetInstanceRq.c
its/GetInstanceRs.c
its/GetStampedRq.c
its/GetStampedRs.c
its/GicPart.c
its/GlcPart.c
its/GlcParts.c
its/GoodsType.c
its/HardShoulderStatus.c
its/HazardousLocation-AnimalOnTheRoadSubCauseCode.c
its/HazardousLocation-DangerousCurveSubCauseCode.c
its/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c
its/HazardousLocation-SurfaceConditionSubCauseCode.c
its/Heading.c
its/HeadingConfidence.c
its/HeadingIso.c
its/HeadingIsoConfidenceIso.c
its/HeadingValue.c
its/HeightLonCarr.c
its/HighFrequencyContainer.c
its/HitchPointOffset.c
its/HoursMinutes.c
its/HumanPresenceOnTheRoadSubCauseCode.c
its/HumanProblemSubCauseCode.c
its/ICC-Id.c
its/ISO14823Attribute.c
its/ISO14823Attributes.c
its/ISO14823Code.c
its/ITS-Container_Temperature.c
its/IVIM.c
its/IVI_DriverCharacteristics.c
its/IVI_Temperature.c
its/IVI_TrailerCharacteristics.c
its/Identifier.c
its/ImpactReductionContainer.c
its/InformationQuality.c
its/Int1.c
its/Int2.c
its/Int3.c
its/Int4.c
its/InternationalSign-applicablePeriod.c
its/InternationalSign-applicableVehicleDimensions.c
its/InternationalSign-destinationInformation.c
its/InternationalSign-directionalFlowOfLane.c
its/InternationalSign-distanceBetweenVehicles.c
its/InternationalSign-exemptedApplicablePeriod.c
its/InternationalSign-numberOfLane.c
its/InternationalSign-rateOfIncline.c
its/InternationalSign-section.c
its/InternationalSign-speedLimits.c
its/IntersectionAccessPoint.c
its/IntersectionGeometry.c
its/IntersectionGeometryList.c
its/IntersectionID.c
its/IntersectionReferenceID.c
its/IntersectionState-addGrpC.c
its/IntersectionState.c
its/IntersectionStateList.c
its/IntersectionStatusObject.c
its/Iso3833VehicleType.c
its/IssuerIdentifierIso.c
its/ItineraryPath.c
its/ItsPduHeader.c
its/ItsStationPosition.c
its/ItsStationPositionList.c
its/IviContainer.c
its/IviContainers.c
its/IviIdentificationNumber.c
its/IviIdentificationNumbers.c
its/IviLaneWidth.c
its/IviManagementContainer.c
its/IviPurpose.c
its/IviStatus.c
its/IviStructure.c
its/IviType.c
its/LPN.c
its/LaneAttributes-Barrier.c
its/LaneAttributes-Bike.c
its/LaneAttributes-Crosswalk.c
its/LaneAttributes-Parking.c
its/LaneAttributes-Sidewalk.c
its/LaneAttributes-Striping.c
its/LaneAttributes-TrackedVehicle.c
its/LaneAttributes-Vehicle.c
its/LaneAttributes-addGrpC.c
its/LaneAttributes.c
its/LaneCharacteristics.c
its/LaneConfiguration.c
its/LaneConnectionID.c
its/LaneDataAttribute.c
its/LaneDataAttributeList.c
its/LaneDelimitation.c
its/LaneDirection.c
its/LaneID.c
its/LaneIds.c
its/LaneInformation.c
its/LaneList.c
its/LaneMarkingStatus.c
its/LanePosition.c
its/LanePositions.c
its/LaneSharing.c
its/LaneStatus.c
its/LaneType.c
its/LaneTypeAttributes.c
its/LaneWidth.c
its/LateralAcceleration.c
its/LateralAccelerationValue.c
its/Latitude.c
its/LayerID.c
its/LayerType.c
its/LayoutComponent.c
its/LayoutComponents.c
its/LayoutContainer.c
its/LicPlateNumber.c
its/LightBarSirenInUse.c
its/LoadType.c
its/LocationContainer.c
its/Longitude.c
its/LongitudinalAcceleration.c
its/LongitudinalAccelerationValue.c
its/LongitudinalLanePosition.c
its/LongitudinalLanePositionConfidence.c
its/LongitudinalLanePositionValue.c
its/LowFrequencyContainer.c
its/MAPEM.c
its/ManagementContainer.c
its/ManeuverAssistList.c
its/ManufacturerIdentifier.c
its/MapData-addGrpC.c
its/MapData.c
its/MapLocationContainer.c
its/MapReference.c
its/MarkingColour.c
its/MatchedPosition.c
its/MaterialType.c
its/MaxLenghtOfPlatoon.c
its/MaxNoOfVehicles.c
its/MergeDivergeNodeAngle.c
its/MinuteOfTheYear.c
its/MlcPart.c
its/MlcParts.c
its/MonthDay.c
its/MovementEvent-addGrpC.c
its/MovementEvent.c
its/MovementEventList.c
its/MovementList.c
its/MovementPhaseState.c
its/MovementState.c
its/MsgCount.c
its/Node-LLmD-64b.c
its/Node-XY-20b.c
its/Node-XY-22b.c
its/Node-XY-24b.c
its/Node-XY-26b.c
its/Node-XY-28b.c
its/Node-XY-32b.c
its/Node.c
its/NodeAttributeSet-addGrpC.c
its/NodeAttributeSetXY.c
its/NodeAttributeXY.c
its/NodeAttributeXYList.c
its/NodeLink.c
its/NodeListXY.c
its/NodeOffsetPointXY.c
its/NodeOffsetPointZ.c
its/NodeSetXY.c
its/NodeXY.c
its/NumberOfOccupants.c
its/NumberOfPerceivedObjects.c
its/ObjectAge.c
its/ObjectClass.c
its/ObjectClassDescription.c
its/ObjectConfidence.c
its/ObjectDimension.c
its/ObjectDimensionConfidence.c
its/ObjectDimensionValue.c
its/ObjectDistanceWithConfidence.c
its/ObjectRefPoint.c
its/Offset-B09.c
its/Offset-B10.c
its/Offset-B11.c
its/Offset-B12.c
its/Offset-B13.c
its/Offset-B14.c
its/Offset-B16.c
its/OffsetPoint.c
its/OpeningDaysHours.c
its/OriginatingRSUContainer.c
its/OriginatingVehicleContainer.c
its/OtherSubclass.c
its/OtherSublassType.c
its/OverlayLaneList.c
its/PassengerCapacity.c
its/PathDeltaTime.c
its/PathHistory.c
its/PathPoint.c
its/PayUnit.c
its/PaymentFee.c
its/PaymentMeans.c
its/PaymentMeansBalance.c
its/PaymentMeansUnit.c
its/PaymentSecurityData.c
its/PedestrianBicycleDetect.c
its/PerceivedObject.c
its/PerceivedObjectContainer.c
its/PerceivedObjectContainerSegmentInfo.c
its/PerformanceClass.c
its/PersonSubclass.c
its/PersonSubclassType.c
its/PersonalAccountNumber.c
its/PhoneNumber.c
its/PlatooningRule.c
its/PlatooningRules.c
its/PolyPointList.c
its/PolygonalLine.c
its/PosCentMass.c
its/PosConfidenceEllipse.c
its/PosFrontAx.c
its/PosLonCarr.c
its/PosPillar.c
its/Position3D-addGrpC.c
its/Position3D.c
its/PositionConfidence.c
its/PositionConfidenceSet.c
its/PositionOfOccupants.c
its/PositionOfPillars.c
its/PositionalAccuracy.c
its/PositioningSolutionType.c
its/PostCrashSubCauseCode.c
its/PreemptPriorityList.c
its/PrioritizationResponse.c
its/PrioritizationResponseList.c
its/PrioritizationResponseStatus.c
its/PriorityLevel.c
its/PriorityRequestType.c
its/ProtectedCommunicationZone.c
its/ProtectedCommunicationZonesRSU.c
its/ProtectedZoneID.c
its/ProtectedZoneRadius.c
its/ProtectedZoneType.c
its/Provider.c
its/PtActivation.c
its/PtActivationData.c
its/PtActivationType.c
its/PtvRequestType.c
its/PublicTransportContainer.c
its/PurseBalance.c
its/RSCUnit.c
its/RSCode.c
its/RSUContainerHighFrequency.c
its/RTCM-Revision.c
its/RTCMEM.c
its/RTCMcorrections.c
its/RTCMheader.c
its/RTCMmessage.c
its/RTCMmessageList.c
its/Radius.c
its/Range.c
its/RccPart.c
its/RearOverhang.c
its/ReceiptAuthenticator.c
its/ReceiptContract.c
its/ReceiptData.c
its/ReceiptData1.c
its/ReceiptData2.c
its/ReceiptDistance.c
its/ReceiptFinancialPart.c
its/ReceiptICC-Id.c
its/ReceiptOBUId.c
its/ReceiptServicePart.c
its/ReceiptServiceSerialNumber.c
its/ReceiptText.c
its/RefPointId.c
its/ReferenceDenms.c
its/ReferencePosition.c
its/RegionId.c
its/RegionalExtension.c
its/RegulatorySpeedLimit.c
its/RejectedReason.c
its/RelevanceDistance.c
its/RelevanceTrafficDirection.c
its/RepeatingPeriodDayTypes.c
its/RequestID.c
its/RequestImportanceLevel.c
its/RequestResponseIndication.c
its/RequestSubRole.c
its/RequestorDescription-addGrpC.c
its/RequestorDescription.c
its/RequestorPositionVector.c
its/RequestorType.c
its/RescueAndRecoveryWorkInProgressSubCauseCode.c
its/RescueContainer.c
its/RestrictedTypes.c
its/RestrictionAppliesTo.c
its/RestrictionClassAssignment.c
its/RestrictionClassID.c
its/RestrictionClassList.c
its/RestrictionUserType-addGrpC.c
its/RestrictionUserType.c
its/RestrictionUserTypeList.c
its/ResultFin.c
its/ResultOp.c
its/RoadConfigurationContainer.c
its/RoadLaneSetList.c
its/RoadRegulatorID.c
its/RoadSegment.c
its/RoadSegmentID.c
its/RoadSegmentList.c
its/RoadSegmentReferenceID.c
its/RoadSignCodes.c
its/RoadSurfaceContainer.c
its/RoadSurfaceDynamicCharacteristics.c
its/RoadSurfaceStaticCharacteristics.c
its/RoadType.c
its/RoadWorksContainerBasic.c
its/RoadWorksContainerExtended.c
its/RoadwayCrownAngle.c
its/RoadworksSubCauseCode.c
its/RscPart.c
its/SPAT.c
its/SPATEM.c
its/SREM.c
its/SSEM.c
its/SaeAutomationLevel.c
its/SaeAutomationLevels.c
its/SafetyCarContainer.c
its/Scale-B12.c
its/Segment.c
its/SegmentAttributeXY.c
its/SegmentAttributeXYList.c
its/SegmentCount.c
its/SemiAxisLength.c
its/SemiMajorAxisAccuracy.c
its/SemiMajorAxisOrientation.c
its/SemiMinorAxisAccuracy.c
its/SemiRangeLength.c
its/SensorHeight.c
its/SensorIdList.c
its/SensorInformation.c
its/SensorInformationContainer.c
its/SensorType.c
its/SequenceNumber.c
its/ServiceApplicationLimit.c
its/ServiceNumber.c
its/SessionClass.c
its/SessionLocation.c
its/SetInstanceRq.c
its/SetMMIRq.c
its/SetStampedRq.c
its/ShadowingApplies.c
its/SignalControlZone.c
its/SignalGroupID.c
its/SignalHeadLocation.c
its/SignalHeadLocationList.c
its/SignalRequest.c
its/SignalRequestList.c
its/SignalRequestMessage.c
its/SignalRequestPackage.c
its/SignalRequesterInfo.c
its/SignalStatus.c
its/SignalStatusList.c
its/SignalStatusMessage.c
its/SignalStatusPackage-addGrpC.c
its/SignalStatusPackage.c
its/SignalStatusPackageList.c
its/SignalViolationSubCauseCode.c
its/SignedValue.c
its/SituationContainer.c
its/SlowVehicleSubCauseCode.c
its/SoundLevel.c
its/SpecialTransportContainer.c
its/SpecialTransportType.c
its/SpecialVehicleContainer.c
its/Speed.c
its/SpeedAdvice.c
its/SpeedConfidence.c
its/SpeedConfidenceIso.c
its/SpeedExtended.c
its/SpeedLimit.c
its/SpeedLimitList.c
its/SpeedLimitType.c
its/SpeedValue.c
its/SpeedValueExtended.c
its/SpeedandHeadingIsoandThrottleConfidence.c
its/StartTime.c
its/StationDataContainer.c
its/StationID.c
its/StationType.c
its/StationTypeIso.c
its/StationarySince.c
its/StationaryVehicleContainer.c
its/StationaryVehicleSubCauseCode.c
its/SteeringWheelAngle.c
its/SteeringWheelAngleConfidence.c
its/SteeringWheelAngleValue.c
its/StopTime.c
its/SubCauseCodeType.c
its/SubRq.c
its/TaxCode.c
its/TcPart.c
its/TemporaryID.c
its/Termination.c
its/Text.c
its/TextContainer.c
its/TextLines.c
its/ThrottleConfidence.c
its/TimeChangeDetails.c
its/TimeConfidence.c
its/TimeIntervalConfidence.c
its/TimeMark.c
its/TimeOfMeasurement.c
its/TimeReference.c
its/TimestampIts.c
its/Traces.c
its/TractorAxles.c
its/TractorCharacteristics.c
its/TrafficConditionSubCauseCode.c
its/TrafficRule.c
its/TrailerAxles.c
its/TrailerCharacteristicsFixValuesList.c
its/TrailerCharacteristicsList.c
its/TrailerCharacteristicsRangesList.c
its/TrailerData.c
its/TrailerDataContainer.c
its/TrailerDetails.c
its/TrailerLicencePlateNumber.c
its/TrainCharacteristics.c
its/TransitVehicleOccupancy.c
its/TransitVehicleStatus.c
its/TransmissionAndSpeed.c
its/TransmissionInterval.c
its/TransmissionState.c
its/TreatmentType.c
its/TurningRadius.c
its/UnitType.c
its/VDS.c
its/ValidityDuration.c
its/ValidityOfContract.c
its/ValidityPeriods.c
its/VanetzaTest.c
its/VarLengthNumber.c
its/VcClass.c
its/VcCode.c
its/VcOption.c
its/VehicleAuthenticator.c
its/VehicleAxles.c
its/VehicleBreakdownSubCauseCode.c
its/VehicleCharacteristicsFixValues.c
its/VehicleCharacteristicsFixValuesList.c
its/VehicleCharacteristicsList.c
its/VehicleCharacteristicsRanges.c
its/VehicleCharacteristicsRangesList.c
its/VehicleClass.c
its/VehicleCurrentMaxTrainWeight.c
its/VehicleDimensions.c
its/VehicleHeight.c
its/VehicleID.c
its/VehicleIdentification.c
its/VehicleIdentificationNumber.c
its/VehicleLength.c
its/VehicleLengthConfidenceIndication.c
its/VehicleLengthValue.c
its/VehicleLicencePlateNumber.c
its/VehicleMass.c
its/VehicleRole.c
its/VehicleSensor.c
its/VehicleSensorProperties.c
its/VehicleSensorPropertyList.c
its/VehicleSpecificCharacteristics.c
its/VehicleSubclass.c
its/VehicleSubclassType.c
its/VehicleTotalDistance.c
its/VehicleType.c
its/VehicleWeightLaden.c
its/VehicleWeightLimits.c
its/VehicleWidth.c
its/Velocity.c
its/VerticalAcceleration.c
its/VerticalAccelerationValue.c
its/WGS84Angle.c
its/WGS84AngleValue.c
its/WMInumber.c
its/WaitOnStopline.c
its/WearLevel.c
its/Weight.c
its/WheelBaseVehicle.c
its/WrongWayDrivingSubCauseCode.c
its/XSensorOffset.c
its/YSensorOffset.c
its/YawRate.c
its/YawRateConfidence.c
its/YawRateValue.c
its/ZSensorOffset.c
its/Zid.c
its/Zone.c
its/ZoneIds.c
its/ZoneLength.c
@@ -0,0 +1,386 @@
# generated file
security/r2/AaEntry.c
security/r2/AcaEeCertResponse.c
security/r2/AcaEeCertResponseCubkSpdu.c
security/r2/AcaEeCertResponsePlainSpdu.c
security/r2/AcaEeCertResponsePrivateSpdu.c
security/r2/AcaEeInterfacePdu.c
security/r2/AcaLaInterfacePdu.c
security/r2/AcaMaInterfacePdu.c
security/r2/AcaRaCertResponse.c
security/r2/AcaRaCertResponseSpdu.c
security/r2/AcaRaInterfacePdu.c
security/r2/AcaResponse.c
security/r2/AcaSsp.c
security/r2/AcpcNodeValue.c
security/r2/AcpcPdu.c
security/r2/AcpcPsid.c
security/r2/AcpcSsp.c
security/r2/AcpcTreeId.c
security/r2/AdditionalParams.c
security/r2/Aes128CcmCiphertext.c
security/r2/AppExtension.c
security/r2/AprvBinaryTree.c
security/r2/AprvHashCalculationInput.c
security/r2/AuthorizationResponseCode.c
security/r2/AuthorizationValidationRequest.c
security/r2/AuthorizationValidationRequestMessage.c
security/r2/AuthorizationValidationResponse.c
security/r2/AuthorizationValidationResponseCode.c
security/r2/AuthorizationValidationResponseMessage.c
security/r2/BasePublicEncryptionKey.c
security/r2/BitmapSsp.c
security/r2/BitmapSspRange.c
security/r2/BlindedKey.c
security/r2/ButterflyCertRequestMessage.c
security/r2/ButterflyCertResponseMessage.c
security/r2/ButterflyExpansion.c
security/r2/ButterflyParamsOriginal.c
security/r2/CaCertificateRekeyingMessage.c
security/r2/CaCertificateRequest.c
security/r2/CaCertificateRequestMessage.c
security/r2/CamRaBatchResponse.c
security/r2/CamRaInterfacePdu.c
security/r2/CamSsp.c
security/r2/CertIssueExtension.c
security/r2/CertManagementPdu.c
security/r2/CertRequestExtension.c
security/r2/Certificate.c
security/r2/CertificateBase.c
security/r2/CertificateChain.c
security/r2/CertificateChainSpdu.c
security/r2/CertificateFormat.c
security/r2/CertificateId.c
security/r2/CertificateManagementInfoStatus.c
security/r2/CertificateManagementInformationStatusSpdu.c
security/r2/CertificateSubjectAttributes.c
security/r2/CertificateType.c
security/r2/CircularRegion.c
security/r2/CompositeCrl.c
security/r2/CompositeCrlSpdu.c
security/r2/ContributedExtensionBlock.c
security/r2/ContributedExtensionBlocks.c
security/r2/Countersignature.c
security/r2/CountryAndRegions.c
security/r2/CountryAndSubregions.c
security/r2/CountryOnly.c
security/r2/CrlContents.c
security/r2/CrlEntry.c
security/r2/CrlInfoStatus.c
security/r2/CrlPriorityInfo.c
security/r2/CrlPsid.c
security/r2/CrlSeries.c
security/r2/CrlSignerSsp.c
security/r2/CtlCommand.c
security/r2/CtlDelete.c
security/r2/CtlElectorEntry.c
security/r2/CtlEntry.c
security/r2/CtlFormat.c
security/r2/CtlInfoStatus.c
security/r2/CtlRootCaEntry.c
security/r2/CtlSequenceNumber.c
security/r2/CtlSeriesId.c
security/r2/CtlSignatureSpdu.c
security/r2/DcDelete.c
security/r2/DcEntry.c
security/r2/DcSsp.c
security/r2/DcmSsp.c
security/r2/DeltaCtl.c
security/r2/Duration.c
security/r2/EaEntry.c
security/r2/EcSignature.c
security/r2/EcaEeCertResponse.c
security/r2/EcaEeCertResponseSpdu.c
security/r2/EcaEeInterfacePdu.c
security/r2/EcaSsp.c
security/r2/EccP256CurvePoint.c
security/r2/EccP384CurvePoint.c
security/r2/EcdsaP256Signature.c
security/r2/EcdsaP384Signature.c
security/r2/EcencP256EncryptedKey.c
security/r2/EciesP256EncryptedKey.c
security/r2/EcsigP256Signature.c
security/r2/EeEcaCertRequest.c
security/r2/EeEcaCertRequestSpdu.c
security/r2/EeMaInterfacePdu.c
security/r2/EeRa1609Dot2AuthenticatedCertRequestSpdu.c
security/r2/EeRaCertRequest.c
security/r2/EeRaCertRequestSpdu.c
security/r2/EeRaDownloadRequest.c
security/r2/EeRaDownloadRequestPlainSpdu.c
security/r2/EeRaDownloadRequestSpdu.c
security/r2/EeRaInterfacePdu.c
security/r2/EeRaSuccessorEnrollmentCertRequestSpdu.c
security/r2/EeRaX509AuthenticatedCertRequestSpdu.c
security/r2/EeSsp.c
security/r2/ElectorSsp.c
security/r2/Elevation.c
security/r2/EncryptedData.c
security/r2/EncryptedDataEncryptionKey.c
security/r2/EncryptedIndividualPLV.c
security/r2/EncryptionKey.c
security/r2/EndEntityType.c
security/r2/EnrolmentResponseCode.c
security/r2/EtsiOriginatingHeaderInfoExtension.c
security/r2/EtsiTs102941ButterflyAuthorizationRequest-X509Signed.c
security/r2/EtsiTs102941CrlRequest.c
security/r2/EtsiTs102941CtlRequest.c
security/r2/EtsiTs102941DeltaCtlRequest.c
security/r2/EtsiTs102941MessagesCa_AuthorizationRequestMessage.c
security/r2/EtsiTs102941MessagesCa_AuthorizationRequestMessageWithPop.c
security/r2/EtsiTs102941MessagesCa_AuthorizationResponseMessage.c
security/r2/EtsiTs102941MessagesCa_ButterflyAtDownloadRequestMessage.c
security/r2/EtsiTs102941MessagesCa_ButterflyAuthorizationRequestMessage.c
security/r2/EtsiTs102941MessagesCa_ButterflyAuthorizationResponseMessage.c
security/r2/EtsiTs102941MessagesCa_CertificateRevocationListMessage.c
security/r2/EtsiTs102941MessagesCa_EnrolmentRequestMessage.c
security/r2/EtsiTs102941MessagesCa_EnrolmentResponseMessage.c
security/r2/EtsiTs102941MessagesCa_EtsiTs102941Data.c
security/r2/EtsiTs102941MessagesCa_EtsiTs102941DataContent.c
security/r2/EtsiTs102941MessagesCa_RcaCertificateTrustListMessage.c
security/r2/EtsiTs102941MessagesCa_TlmCertificateTrustListMessage.c
security/r2/EtsiTs102941MessagesCa_TlmLinkCertificateMessage.c
security/r2/EtsiTs102941MessagesCa_X509SignedButterflyAuthorizationRequestMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_AuthorizationRequestMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_AuthorizationRequestMessageWithPop.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_AuthorizationResponseMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_ButterflyAtDownloadRequestMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_ButterflyAuthorizationRequestMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_ButterflyAuthorizationResponseMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_CertificateRevocationListMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_EnrolmentRequestMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_EnrolmentResponseMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_EtsiTs102941Data.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_EtsiTs102941DataContent.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_RcaCertificateTrustListMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_TlmCertificateTrustListMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_TlmLinkCertificateMessage.c
security/r2/EtsiTs102941MessagesItss-OptionalPrivacy_X509SignedButterflyAuthorizationRequestMessage.c
security/r2/EtsiTs102941MessagesItss_AuthorizationRequestMessage.c
security/r2/EtsiTs102941MessagesItss_AuthorizationRequestMessageWithPop.c
security/r2/EtsiTs102941MessagesItss_AuthorizationResponseMessage.c
security/r2/EtsiTs102941MessagesItss_ButterflyAtDownloadRequestMessage.c
security/r2/EtsiTs102941MessagesItss_ButterflyAuthorizationRequestMessage.c
security/r2/EtsiTs102941MessagesItss_ButterflyAuthorizationResponseMessage.c
security/r2/EtsiTs102941MessagesItss_CertificateRevocationListMessage.c
security/r2/EtsiTs102941MessagesItss_EnrolmentRequestMessage.c
security/r2/EtsiTs102941MessagesItss_EnrolmentResponseMessage.c
security/r2/EtsiTs102941MessagesItss_EtsiTs102941Data.c
security/r2/EtsiTs102941MessagesItss_EtsiTs102941DataContent.c
security/r2/EtsiTs102941MessagesItss_RcaCertificateTrustListMessage.c
security/r2/EtsiTs102941MessagesItss_TlmCertificateTrustListMessage.c
security/r2/EtsiTs102941MessagesItss_TlmLinkCertificateMessage.c
security/r2/EtsiTs102941MessagesItss_X509SignedButterflyAuthorizationRequestMessage.c
security/r2/EtsiTs103097Certificate.c
security/r2/EtsiTs103097Data-Encrypted-Unicast.c
security/r2/EtsiTs103097Data-Encrypted.c
security/r2/EtsiTs103097Data-Signed.c
security/r2/EtsiTs103097Data-SignedAndEncrypted-Unicast.c
security/r2/EtsiTs103097Data-SignedAndEncrypted.c
security/r2/EtsiTs103097Data-SignedExternalPayload.c
security/r2/EtsiTs103097Data-Unsecured.c
security/r2/EtsiTs103097Data.c
security/r2/EtsiTs103097ExtensionModule_ExtId.c
security/r2/EtsiTs103097HeaderInfoExtensionId.c
security/r2/ExpansionAlgorithmIdentifier.c
security/r2/ExplicitCertificate.c
security/r2/Extension.c
security/r2/ExtensionModuleVersion.c
security/r2/FullCtl.c
security/r2/FullIeeeTbsCtl.c
security/r2/GeographicRegion.c
security/r2/GroupCrlEntry.c
security/r2/GroupLinkageValue.c
security/r2/GroupSingleSeedCrlEntry.c
security/r2/HashAlgorithm.c
security/r2/HashBasedRevocationInfo.c
security/r2/HashedData.c
security/r2/HashedId10.c
security/r2/HashedId3.c
security/r2/HashedId32.c
security/r2/HashedId48.c
security/r2/HashedId8.c
security/r2/HeaderInfo.c
security/r2/HeaderInfoContributorId.c
security/r2/Hostname.c
security/r2/IMaxGroup.c
security/r2/IValue.c
security/r2/IcaSsp.c
security/r2/IdentifiedRegion.c
security/r2/Ieee1609ContributedHeaderInfoExtension.c
security/r2/Ieee1609Dot2BaseTypes_ExtId.c
security/r2/Ieee1609Dot2Content.c
security/r2/Ieee1609Dot2Data-Encrypted.c
security/r2/Ieee1609Dot2Data-EncryptedSigned.c
security/r2/Ieee1609Dot2Data-Signed.c
security/r2/Ieee1609Dot2Data-SignedCertRequest.c
security/r2/Ieee1609Dot2Data-SignedEncrypted.c
security/r2/Ieee1609Dot2Data-SignedEncryptedCertRequest.c
security/r2/Ieee1609Dot2Data-SignedX509AuthenticatedCertRequest.c
security/r2/Ieee1609Dot2Data-SymmEncryptedSingleRecipient.c
security/r2/Ieee1609Dot2Data-Unsecured.c
security/r2/Ieee1609Dot2Data.c
security/r2/Ieee1609HeaderInfoExtensionId.c
security/r2/Ieee1609dot2dot1MsctlType.c
security/r2/IeeeExtension.c
security/r2/ImplicitCertificate.c
security/r2/IndividualAprv.c
security/r2/IndividualRevocation.c
security/r2/InnerAtRequest.c
security/r2/InnerAtResponse.c
security/r2/InnerEcRequest.c
security/r2/InnerEcRequestSignedForPop.c
security/r2/InnerEcResponse.c
security/r2/IssuerIdentifier.c
security/r2/JMaxGroup.c
security/r2/KnownLatitude.c
security/r2/KnownLongitude.c
security/r2/LAGroup.c
security/r2/LaId.c
security/r2/LaMaInterfacePdu.c
security/r2/LaRaInterfacePdu.c
security/r2/LaSsp.c
security/r2/Latitude.c
security/r2/LinkageData.c
security/r2/LinkageInfo.c
security/r2/LinkageSeed.c
security/r2/LinkageValue.c
security/r2/Longitude.c
security/r2/LopSsp.c
security/r2/LvGenerationFunctionIdentifier.c
security/r2/MaInfoStatus.c
security/r2/MaRaInterfacePdu.c
security/r2/MaSsp.c
security/r2/MissingCrlIdentifier.c
security/r2/MultiSignedCtl.c
security/r2/MultiSignedCtlSpdu.c
security/r2/NinetyDegreeInt.c
security/r2/One28BitCcmCiphertext.c
security/r2/OneEightyDegreeInt.c
security/r2/Opaque.c
security/r2/OperatingOrganizationId.c
security/r2/PKRecipientInfo.c
security/r2/PduFunctionalType.c
security/r2/PgSsp.c
security/r2/PolygonalRegion.c
security/r2/PreLinkageValue.c
security/r2/PreSharedKeyRecipientInfo.c
security/r2/Psid.c
security/r2/PsidGroupPermissions.c
security/r2/PsidSsp.c
security/r2/PsidSspRange.c
security/r2/PublicEncryptionKey.c
security/r2/PublicKeys.c
security/r2/PublicVerificationKey.c
security/r2/RaAcaCertRequest.c
security/r2/RaAcaCertRequestFlags.c
security/r2/RaAcaCertRequestSpdu.c
security/r2/RaCamBatchRequest.c
security/r2/RaEeCertAck.c
security/r2/RaEeCertAckSpdu.c
security/r2/RaEeCertAndAcpcInfoSpdu.c
security/r2/RaEeCertInfo.c
security/r2/RaEeCertInfoSpdu.c
security/r2/RaEeEnrollmentCertAckSpdu.c
security/r2/RaSsp.c
security/r2/RcaDoubleSignedLinkCertificateMessage.c
security/r2/RcaSingleSignedLinkCertificateMessage.c
security/r2/RecipientInfo.c
security/r2/RectangularRegion.c
security/r2/RegionAndSubregions.c
security/r2/RootCaEntry.c
security/r2/RootCaSsp.c
security/r2/ScmsPdu-EeEcaCertRequest.c
security/r2/ScmsPdu-EeRaCertRequest.c
security/r2/ScmsPdu-EeRaSuccessorEnrollmentCertRequest.c
security/r2/ScmsPdu-RaAcaCertRequest.c
security/r2/ScmsPdu-Scoped.c
security/r2/ScmsPdu.c
security/r2/ScopedCertificateRequest.c
security/r2/SecuredCrl.c
security/r2/SecurityMgmtPsid.c
security/r2/SecurityMgmtSsp.c
security/r2/SeedEvolutionFunctionIdentifier.c
security/r2/SequenceOfAppExtensions.c
security/r2/SequenceOfCertIssueExtensions.c
security/r2/SequenceOfCertRequestExtensions.c
security/r2/SequenceOfCertificate.c
security/r2/SequenceOfCrlInfoStatus.c
security/r2/SequenceOfCtlInfoStatus.c
security/r2/SequenceOfGroupCrlEntry.c
security/r2/SequenceOfGroupSingleSeedCrlEntry.c
security/r2/SequenceOfHashBasedRevocationInfo.c
security/r2/SequenceOfHashedId3.c
security/r2/SequenceOfIMaxGroup.c
security/r2/SequenceOfIdentifiedRegion.c
security/r2/SequenceOfIndividualRevocation.c
security/r2/SequenceOfJMaxGroup.c
security/r2/SequenceOfLAGroup.c
security/r2/SequenceOfLinkageSeed.c
security/r2/SequenceOfMaInfoStatus.c
security/r2/SequenceOfOctetString.c
security/r2/SequenceOfPsid.c
security/r2/SequenceOfPsidGroupPermissions.c
security/r2/SequenceOfPsidSsp.c
security/r2/SequenceOfPsidSspRange.c
security/r2/SequenceOfRecipientInfo.c
security/r2/SequenceOfRectangularRegion.c
security/r2/SequenceOfRegionAndSubregions.c
security/r2/SequenceOfUint16.c
security/r2/SequenceOfUint8.c
security/r2/SequenceOfX509Certificate.c
security/r2/ServiceSpecificPermissions.c
security/r2/SharedAtRequest.c
security/r2/Signature.c
security/r2/SignedAprvBinaryTree.c
security/r2/SignedCertificateRequest.c
security/r2/SignedData.c
security/r2/SignedDataPayload.c
security/r2/SignedIndividualAprv.c
security/r2/SignedX509CertificateRequest.c
security/r2/SignerIdentifier.c
security/r2/SignerSelf.c
security/r2/SignerSingleCert.c
security/r2/SignerSingleX509Cert.c
security/r2/SspRange.c
security/r2/SubjectAssurance.c
security/r2/SubjectPermissions.c
security/r2/SymmAlgorithm.c
security/r2/SymmRecipientInfo.c
security/r2/SymmetricCiphertext.c
security/r2/SymmetricEncryptionKey.c
security/r2/TestCertificate.c
security/r2/TestSecurityMgmtSsp.c
security/r2/ThreeDLocation.c
security/r2/Time32.c
security/r2/Time64.c
security/r2/TlmEntry.c
security/r2/ToBeSignedCertificate.c
security/r2/ToBeSignedCrl.c
security/r2/ToBeSignedCtlSignature.c
security/r2/ToBeSignedData.c
security/r2/ToBeSignedHashIdCrl.c
security/r2/ToBeSignedLinkCertificate.c
security/r2/ToBeSignedLinkCertificateRca.c
security/r2/ToBeSignedLinkCertificateTlm.c
security/r2/ToBeSignedLinkageValueCrl.c
security/r2/ToBeSignedLinkageValueCrlWithAlgIdentifier.c
security/r2/ToBeSignedRcaCtl.c
security/r2/ToBeSignedTlmCtl.c
security/r2/TwoDLocation.c
security/r2/TypeSpecificCrlContents.c
security/r2/Uint16.c
security/r2/Uint3.c
security/r2/Uint32.c
security/r2/Uint64.c
security/r2/Uint8.c
security/r2/UnCountryId.c
security/r2/UnknownLatitude.c
security/r2/UnknownLongitude.c
security/r2/UnsecuredAprvBinaryTree.c
security/r2/Url.c
security/r2/ValidityPeriod.c
security/r2/VerificationKeyIndicator.c
security/r2/Version.c
security/r2/X509Certificate.c
security/r2/X509SignerIdentifier.c
@@ -0,0 +1,165 @@
# generated file
security/AaEntry.c
security/AesCcmCiphertext.c
security/AuthorizationRequestMessage.c
security/AuthorizationRequestMessageWithPop.c
security/AuthorizationResponseCode.c
security/AuthorizationResponseMessage.c
security/AuthorizationValidationRequest.c
security/AuthorizationValidationRequestMessage.c
security/AuthorizationValidationResponse.c
security/AuthorizationValidationResponseCode.c
security/AuthorizationValidationResponseMessage.c
security/BasePublicEncryptionKey.c
security/BitmapSsp.c
security/BitmapSspRange.c
security/CaCertificateRekeyingMessage.c
security/CaCertificateRequest.c
security/CaCertificateRequestMessage.c
security/Certificate.c
security/CertificateBase.c
security/CertificateFormat.c
security/CertificateId.c
security/CertificateRevocationListMessage.c
security/CertificateSubjectAttributes.c
security/CertificateType.c
security/CircularRegion.c
security/Countersignature.c
security/CountryAndRegions.c
security/CountryAndSubregions.c
security/CountryOnly.c
security/CrlEntry.c
security/CrlSeries.c
security/CtlCommand.c
security/CtlDelete.c
security/CtlEntry.c
security/CtlFormat.c
security/DcDelete.c
security/DcEntry.c
security/DeltaCtl.c
security/Duration.c
security/EaEntry.c
security/EcSignature.c
security/EccP256CurvePoint.c
security/EccP384CurvePoint.c
security/EcdsaP256Signature.c
security/EcdsaP384Signature.c
security/EciesP256EncryptedKey.c
security/ElevInt.c
security/Elevation.c
security/EncryptedData.c
security/EncryptedDataEncryptionKey.c
security/EncryptionKey.c
security/EndEntityType.c
security/EnrolmentRequestMessage.c
security/EnrolmentResponseCode.c
security/EnrolmentResponseMessage.c
security/EtsiTs102941Data.c
security/EtsiTs102941DataContent.c
security/EtsiTs103097Certificate.c
security/EtsiTs103097Data-Encrypted-Unicast.c
security/EtsiTs103097Data-Encrypted.c
security/EtsiTs103097Data-Signed.c
security/EtsiTs103097Data-SignedAndEncrypted-Unicast.c
security/EtsiTs103097Data-SignedAndEncrypted.c
security/EtsiTs103097Data-SignedExternalPayload.c
security/EtsiTs103097Data-Unsecured.c
security/EtsiTs103097Data.c
security/ExplicitCertificate.c
security/FullCtl.c
security/GeographicRegion.c
security/GroupLinkageValue.c
security/HashAlgorithm.c
security/HashedData.c
security/HashedId10.c
security/HashedId3.c
security/HashedId8.c
security/HeaderInfo.c
security/Hostname.c
security/IValue.c
security/IdentifiedRegion.c
security/Ieee1609Dot2Content.c
security/Ieee1609Dot2Data.c
security/ImplicitCertificate.c
security/InnerAtRequest.c
security/InnerAtResponse.c
security/InnerEcRequest.c
security/InnerEcRequestSignedForPop.c
security/InnerEcResponse.c
security/IssuerIdentifier.c
security/KnownLatitude.c
security/KnownLongitude.c
security/LaId.c
security/Latitude.c
security/LinkageData.c
security/LinkageSeed.c
security/LinkageValue.c
security/Longitude.c
security/MissingCrlIdentifier.c
security/NinetyDegreeInt.c
security/OneEightyDegreeInt.c
security/Opaque.c
security/PKRecipientInfo.c
security/PolygonalRegion.c
security/PreSharedKeyRecipientInfo.c
security/Psid.c
security/PsidGroupPermissions.c
security/PsidSsp.c
security/PsidSspRange.c
security/PublicEncryptionKey.c
security/PublicKeys.c
security/PublicVerificationKey.c
security/RcaCertificateTrustListMessage.c
security/RecipientInfo.c
security/RectangularRegion.c
security/RegionAndSubregions.c
security/RootCaEntry.c
security/SequenceOfCertificate.c
security/SequenceOfHashedId3.c
security/SequenceOfIdentifiedRegion.c
security/SequenceOfOctetString.c
security/SequenceOfPsid.c
security/SequenceOfPsidGroupPermissions.c
security/SequenceOfPsidSsp.c
security/SequenceOfPsidSspRange.c
security/SequenceOfRecipientInfo.c
security/SequenceOfRectangularRegion.c
security/SequenceOfRegionAndSubregions.c
security/SequenceOfUint16.c
security/SequenceOfUint8.c
security/ServiceSpecificPermissions.c
security/SharedAtRequest.c
security/Signature.c
security/SignedData.c
security/SignedDataPayload.c
security/SignerIdentifier.c
security/SingleEtsiTs103097Certificate.c
security/SspRange.c
security/SubjectAssurance.c
security/SubjectPermissions.c
security/SymmAlgorithm.c
security/SymmRecipientInfo.c
security/SymmetricCiphertext.c
security/SymmetricEncryptionKey.c
security/ThreeDLocation.c
security/Time32.c
security/Time64.c
security/TlmCertificateTrustListMessage.c
security/TlmEntry.c
security/ToBeSignedCertificate.c
security/ToBeSignedCrl.c
security/ToBeSignedData.c
security/ToBeSignedRcaCtl.c
security/ToBeSignedTlmCtl.c
security/TwoDLocation.c
security/Uint16.c
security/Uint3.c
security/Uint32.c
security/Uint64.c
security/Uint8.c
security/UnknownLatitude.c
security/UnknownLongitude.c
security/Url.c
security/ValidityPeriod.c
security/VerificationKeyIndicator.c
security/Version.c
@@ -0,0 +1,214 @@
# generated file
support/ANY.c
support/ANY_aper.c
support/ANY_ber.c
support/ANY_jer.c
support/ANY_uper.c
support/ANY_xer.c
support/BIT_STRING.c
support/BIT_STRING_jer.c
support/BIT_STRING_oer.c
support/BIT_STRING_print.c
support/BIT_STRING_rfill.c
support/BIT_STRING_uper.c
support/BIT_STRING_xer.c
support/BMPString.c
support/BMPString_jer.c
support/BMPString_print.c
support/BMPString_xer.c
support/BOOLEAN.c
support/BOOLEAN_aper.c
support/BOOLEAN_ber.c
support/BOOLEAN_jer.c
support/BOOLEAN_oer.c
support/BOOLEAN_print.c
support/BOOLEAN_rfill.c
support/BOOLEAN_uper.c
support/BOOLEAN_xer.c
support/ENUMERATED.c
support/ENUMERATED_aper.c
support/ENUMERATED_jer.c
support/ENUMERATED_oer.c
support/ENUMERATED_uper.c
support/GeneralString.c
support/GeneralizedTime.c
support/GeneralizedTime_ber.c
support/GeneralizedTime_jer.c
support/GeneralizedTime_print.c
support/GeneralizedTime_rfill.c
support/GeneralizedTime_xer.c
support/GraphicString.c
support/IA5String.c
support/INTEGER.c
support/INTEGER_aper.c
support/INTEGER_ber.c
support/INTEGER_jer.c
support/INTEGER_oer.c
support/INTEGER_print.c
support/INTEGER_rfill.c
support/INTEGER_uper.c
support/INTEGER_xer.c
support/ISO646String.c
support/NULL.c
support/NULL_aper.c
support/NULL_ber.c
support/NULL_jer.c
support/NULL_oer.c
support/NULL_print.c
support/NULL_rfill.c
support/NULL_uper.c
support/NULL_xer.c
support/NativeEnumerated.c
support/NativeEnumerated_aper.c
support/NativeEnumerated_ber.c
support/NativeEnumerated_jer.c
support/NativeEnumerated_oer.c
support/NativeEnumerated_uper.c
support/NativeEnumerated_xer.c
support/NativeInteger.c
support/NativeInteger_aper.c
support/NativeInteger_ber.c
support/NativeInteger_jer.c
support/NativeInteger_oer.c
support/NativeInteger_print.c
support/NativeInteger_rfill.c
support/NativeInteger_uper.c
support/NativeInteger_xer.c
support/NativeReal.c
support/NativeReal_aper.c
support/NativeReal_ber.c
support/NativeReal_jer.c
support/NativeReal_oer.c
support/NativeReal_print.c
support/NativeReal_rfill.c
support/NativeReal_uper.c
support/NativeReal_xer.c
support/NumericString.c
support/OBJECT_IDENTIFIER.c
support/OBJECT_IDENTIFIER_jer.c
support/OBJECT_IDENTIFIER_print.c
support/OBJECT_IDENTIFIER_rfill.c
support/OBJECT_IDENTIFIER_xer.c
support/OCTET_STRING.c
support/OCTET_STRING_aper.c
support/OCTET_STRING_ber.c
support/OCTET_STRING_jer.c
support/OCTET_STRING_oer.c
support/OCTET_STRING_print.c
support/OCTET_STRING_rfill.c
support/OCTET_STRING_uper.c
support/OCTET_STRING_xer.c
support/OPEN_TYPE.c
support/OPEN_TYPE_aper.c
support/OPEN_TYPE_ber.c
support/OPEN_TYPE_jer.c
support/OPEN_TYPE_oer.c
support/OPEN_TYPE_uper.c
support/OPEN_TYPE_xer.c
support/ObjectDescriptor.c
support/PrintableString.c
support/REAL.c
support/REAL_aper.c
support/REAL_jer.c
support/REAL_oer.c
support/REAL_print.c
support/REAL_rfill.c
support/REAL_uper.c
support/REAL_xer.c
support/RELATIVE-OID.c
support/RELATIVE-OID_jer.c
support/RELATIVE-OID_print.c
support/RELATIVE-OID_rfill.c
support/RELATIVE-OID_xer.c
support/T61String.c
support/TeletexString.c
support/UTCTime.c
support/UTCTime_jer.c
support/UTCTime_print.c
support/UTCTime_rfill.c
support/UTCTime_xer.c
support/UTF8String.c
support/UTF8String_print.c
support/UTF8String_rfill.c
support/UniversalString.c
support/UniversalString_jer.c
support/UniversalString_print.c
support/UniversalString_xer.c
support/VideotexString.c
support/VisibleString.c
support/aper_decoder.c
support/aper_encoder.c
support/aper_opentype.c
support/aper_support.c
support/asn_SEQUENCE_OF.c
support/asn_SET_OF.c
support/asn_application.c
support/asn_bit_data.c
support/asn_codecs_prim.c
support/asn_codecs_prim_ber.c
support/asn_codecs_prim_jer.c
support/asn_codecs_prim_xer.c
support/asn_internal.c
support/asn_random_fill.c
support/ber_decoder.c
support/ber_tlv_length.c
support/ber_tlv_tag.c
support/constr_CHOICE.c
support/constr_CHOICE_aper.c
support/constr_CHOICE_ber.c
support/constr_CHOICE_jer.c
support/constr_CHOICE_oer.c
support/constr_CHOICE_print.c
support/constr_CHOICE_rfill.c
support/constr_CHOICE_uper.c
support/constr_CHOICE_xer.c
support/constr_SEQUENCE.c
support/constr_SEQUENCE_OF.c
support/constr_SEQUENCE_OF_aper.c
support/constr_SEQUENCE_OF_ber.c
support/constr_SEQUENCE_OF_jer.c
support/constr_SEQUENCE_OF_uper.c
support/constr_SEQUENCE_OF_xer.c
support/constr_SEQUENCE_aper.c
support/constr_SEQUENCE_ber.c
support/constr_SEQUENCE_jer.c
support/constr_SEQUENCE_oer.c
support/constr_SEQUENCE_print.c
support/constr_SEQUENCE_rfill.c
support/constr_SEQUENCE_uper.c
support/constr_SEQUENCE_xer.c
support/constr_SET.c
support/constr_SET_OF.c
support/constr_SET_OF_aper.c
support/constr_SET_OF_ber.c
support/constr_SET_OF_jer.c
support/constr_SET_OF_oer.c
support/constr_SET_OF_print.c
support/constr_SET_OF_rfill.c
support/constr_SET_OF_uper.c
support/constr_SET_OF_xer.c
support/constr_SET_ber.c
support/constr_SET_jer.c
support/constr_SET_print.c
support/constr_SET_rfill.c
support/constr_SET_xer.c
support/constr_TYPE.c
support/constraints.c
support/der_encoder.c
support/jer_decoder.c
support/jer_encoder.c
support/jer_support.c
support/oer_decoder.c
support/oer_encoder.c
support/oer_support.c
support/per_decoder.c
support/per_encoder.c
support/per_opentype.c
support/per_support.c
support/uper_decoder.c
support/uper_encoder.c
support/uper_opentype.c
support/uper_support.c
support/xer_decoder.c
support/xer_encoder.c
support/xer_support.c
@@ -0,0 +1,147 @@
# generated file
systemx-pqc/Aes128CcmCiphertext.c
systemx-pqc/AppExtension.c
systemx-pqc/BasePublicEncryptionKey.c
systemx-pqc/BitmapSsp.c
systemx-pqc/BitmapSspRange.c
systemx-pqc/CertIssueExtension.c
systemx-pqc/CertRequestExtension.c
systemx-pqc/Certificate.c
systemx-pqc/CertificateBase.c
systemx-pqc/CertificateId.c
systemx-pqc/CertificateType.c
systemx-pqc/CircularRegion.c
systemx-pqc/ContributedExtensionBlock.c
systemx-pqc/ContributedExtensionBlocks.c
systemx-pqc/Countersignature.c
systemx-pqc/CountryAndRegions.c
systemx-pqc/CountryAndSubregions.c
systemx-pqc/CountryOnly.c
systemx-pqc/CrlSeries.c
systemx-pqc/Duration.c
systemx-pqc/EccP256CurvePoint.c
systemx-pqc/EccP384CurvePoint.c
systemx-pqc/EcdsaP256Signature.c
systemx-pqc/EcdsaP384Signature.c
systemx-pqc/EcencP256EncryptedKey.c
systemx-pqc/EciesP256EncryptedKey.c
systemx-pqc/EcsigP256Signature.c
systemx-pqc/Elevation.c
systemx-pqc/EncryptedData.c
systemx-pqc/EncryptedDataEncryptionKey.c
systemx-pqc/EncryptionKey.c
systemx-pqc/EndEntityType.c
systemx-pqc/EtsiOriginatingHeaderInfoExtension.c
systemx-pqc/EtsiTs102941CrlRequest.c
systemx-pqc/EtsiTs102941CtlRequest.c
systemx-pqc/EtsiTs102941DeltaCtlRequest.c
systemx-pqc/EtsiTs102941FullCtlRequest.c
systemx-pqc/EtsiTs103097Certificate.c
systemx-pqc/EtsiTs103097Data-Encrypted-Unicast.c
systemx-pqc/EtsiTs103097Data-Encrypted.c
systemx-pqc/EtsiTs103097Data-Signed.c
systemx-pqc/EtsiTs103097Data-SignedAndEncrypted-Unicast.c
systemx-pqc/EtsiTs103097Data-SignedAndEncrypted.c
systemx-pqc/EtsiTs103097Data-SignedExternalPayload.c
systemx-pqc/EtsiTs103097Data-Unsecured.c
systemx-pqc/EtsiTs103097Data.c
systemx-pqc/EtsiTs103097HeaderInfoExtensionId.c
systemx-pqc/ExplicitCertificate.c
systemx-pqc/ExtId.c
systemx-pqc/Extension.c
systemx-pqc/ExtensionModuleVersion.c
systemx-pqc/FnDsa512Key.c
systemx-pqc/FnDsa512Signature.c
systemx-pqc/GeographicRegion.c
systemx-pqc/GroupLinkageValue.c
systemx-pqc/HashAlgorithm.c
systemx-pqc/HashedData.c
systemx-pqc/HashedId10.c
systemx-pqc/HashedId3.c
systemx-pqc/HashedId32.c
systemx-pqc/HashedId48.c
systemx-pqc/HashedId8.c
systemx-pqc/HeaderInfo.c
systemx-pqc/HeaderInfoContributorId.c
systemx-pqc/Hostname.c
systemx-pqc/IValue.c
systemx-pqc/IdentifiedRegion.c
systemx-pqc/Ieee1609ContributedHeaderInfoExtension.c
systemx-pqc/Ieee1609Dot2Content.c
systemx-pqc/Ieee1609Dot2Data.c
systemx-pqc/Ieee1609HeaderInfoExtensionId.c
systemx-pqc/ImplicitCertificate.c
systemx-pqc/IssuerIdentifier.c
systemx-pqc/KnownLatitude.c
systemx-pqc/KnownLongitude.c
systemx-pqc/LaId.c
systemx-pqc/Latitude.c
systemx-pqc/LinkageData.c
systemx-pqc/LinkageSeed.c
systemx-pqc/LinkageValue.c
systemx-pqc/Longitude.c
systemx-pqc/MissingCrlIdentifier.c
systemx-pqc/NinetyDegreeInt.c
systemx-pqc/One28BitCcmCiphertext.c
systemx-pqc/OneEightyDegreeInt.c
systemx-pqc/Opaque.c
systemx-pqc/OperatingOrganizationId.c
systemx-pqc/PKRecipientInfo.c
systemx-pqc/PduFunctionalType.c
systemx-pqc/PolygonalRegion.c
systemx-pqc/PreSharedKeyRecipientInfo.c
systemx-pqc/Psid.c
systemx-pqc/PsidGroupPermissions.c
systemx-pqc/PsidSsp.c
systemx-pqc/PsidSspRange.c
systemx-pqc/PublicEncryptionKey.c
systemx-pqc/PublicVerificationKey.c
systemx-pqc/RecipientInfo.c
systemx-pqc/RectangularRegion.c
systemx-pqc/RegionAndSubregions.c
systemx-pqc/SequenceOfAppExtensions.c
systemx-pqc/SequenceOfCertIssueExtensions.c
systemx-pqc/SequenceOfCertRequestExtensions.c
systemx-pqc/SequenceOfCertificate.c
systemx-pqc/SequenceOfHashedId3.c
systemx-pqc/SequenceOfIdentifiedRegion.c
systemx-pqc/SequenceOfLinkageSeed.c
systemx-pqc/SequenceOfOctetString.c
systemx-pqc/SequenceOfPsid.c
systemx-pqc/SequenceOfPsidGroupPermissions.c
systemx-pqc/SequenceOfPsidSsp.c
systemx-pqc/SequenceOfPsidSspRange.c
systemx-pqc/SequenceOfRecipientInfo.c
systemx-pqc/SequenceOfRectangularRegion.c
systemx-pqc/SequenceOfRegionAndSubregions.c
systemx-pqc/SequenceOfUint16.c
systemx-pqc/SequenceOfUint8.c
systemx-pqc/ServiceSpecificPermissions.c
systemx-pqc/Signature.c
systemx-pqc/SignedData.c
systemx-pqc/SignedDataPayload.c
systemx-pqc/SignerIdentifier.c
systemx-pqc/SspRange.c
systemx-pqc/SubjectAssurance.c
systemx-pqc/SubjectPermissions.c
systemx-pqc/SymmAlgorithm.c
systemx-pqc/SymmRecipientInfo.c
systemx-pqc/SymmetricCiphertext.c
systemx-pqc/SymmetricEncryptionKey.c
systemx-pqc/TestCertificate.c
systemx-pqc/ThreeDLocation.c
systemx-pqc/Time32.c
systemx-pqc/Time64.c
systemx-pqc/ToBeSignedCertificate.c
systemx-pqc/ToBeSignedData.c
systemx-pqc/TwoDLocation.c
systemx-pqc/Uint16.c
systemx-pqc/Uint3.c
systemx-pqc/Uint32.c
systemx-pqc/Uint64.c
systemx-pqc/Uint8.c
systemx-pqc/UnCountryId.c
systemx-pqc/UnknownLatitude.c
systemx-pqc/UnknownLongitude.c
systemx-pqc/ValidityPeriod.c
systemx-pqc/VerificationKeyIndicator.c
@@ -0,0 +1,235 @@
#include <vanetza/asn1/support/asn_application.h>
#include <vanetza/asn1/support/asn_internal.h>
#include <vanetza/asn1/support/constraints.h>
#include <vanetza/asn1/support/uper_decoder.h>
#include <vanetza/asn1/support/uper_encoder.h>
#include "asn1c_wrapper.hpp"
#include <vanetza/common/byte_buffer.hpp>
#include <boost/format.hpp>
#include <algorithm>
#include <cassert>
#include <cstdlib>
#include <iterator>
#include <stdexcept>
#include <string>
namespace vanetza
{
namespace asn1
{
static int write_buffer(const void* in, std::size_t size, void* out_void)
{
assert(out_void != nullptr);
auto out = static_cast<ByteBuffer*>(out_void);
std::copy_n(static_cast<const uint8_t*>(in), size, std::back_inserter(*out));
return 0;
}
static int write_null(const void*, std::size_t, void*)
{
return 0;
}
void* allocate(std::size_t length)
{
void* ptr = calloc(1, length);
if (nullptr == ptr) {
throw std::runtime_error("Bad ASN.1 memory allocation");
}
return ptr;
}
void free(asn_TYPE_descriptor_t& td, void* t)
{
if (t != nullptr) {
ASN_STRUCT_FREE(td, t);
}
}
void deleter::operator()(void* ptr) const
{
if (descriptor && ptr) {
free(*descriptor, ptr);
}
}
void* copy(asn_TYPE_descriptor_t& td, const void* original)
{
void* copy = nullptr;
ByteBuffer buffer;
asn_enc_rval_t ec;
ec = oer_encode(&td, const_cast<void*>(original), write_buffer, &buffer);
if (ec.encoded == -1) {
throw std::runtime_error("OER encoding failed");
}
asn_dec_rval_t dc;
dc = oer_decode(0, &td, &copy, buffer.data(), buffer.size());
if (dc.code != RC_OK) {
free(td, copy);
throw std::runtime_error("OER decoding failed");
}
return copy;
}
bool validate(asn_TYPE_descriptor_t& td, const void* t)
{
return asn_check_constraints(&td, t, nullptr, nullptr) == 0;
}
bool validate(asn_TYPE_descriptor_t& td, const void* t, std::string& error)
{
char errbuf[1024];
std::size_t errlen = sizeof(errbuf);
bool ok = asn_check_constraints(&td, t, errbuf, &errlen) == 0;
if (!ok) {
error = errbuf;
}
return ok;
}
int compare(asn_TYPE_descriptor_t& td, const void* a, const void* b)
{
return td.op->compare_struct(&td, a, b);
}
int print(FILE* stream, asn_TYPE_descriptor_t& td, const void* t)
{
return asn_fprint(stream, &td, t);
}
std::size_t size_per(asn_TYPE_descriptor_t& td, const void* t)
{
asn_enc_rval_t ec;
ec = uper_encode(&td, nullptr, const_cast<void*>(t), write_null, nullptr);
if (ec.encoded < 0) {
const char* failed_type = ec.failed_type ? ec.failed_type->name : "unknown";
const auto error_msg = boost::format(
"Can't determine size for unaligned PER encoding of type %1% because of %2% sub-type")
% td.name % failed_type;
throw std::runtime_error(error_msg.str());
}
// Caution! ec.encoded are bits not bytes!
return (ec.encoded + 7) / 8;
}
ByteBuffer encode_per(asn_TYPE_descriptor_t& td, const void* t)
{
ByteBuffer buffer;
asn_enc_rval_t ec = uper_encode(&td, nullptr, const_cast<void*>(t), write_buffer, &buffer);
if (ec.encoded == -1) {
const char* failed_type = ec.failed_type ? ec.failed_type->name : "unknown";
const auto error_msg = boost::format(
"Unaligned PER encoding of type %1% failed because of %2% sub-type")
% td.name % failed_type;
throw std::runtime_error(error_msg.str());
}
return buffer;
}
bool decode_per(asn_TYPE_descriptor_t& td, void** t, const ByteBuffer& buffer)
{
return decode_per(td, t, buffer.data(), buffer.size());
}
bool decode_per(asn_TYPE_descriptor_t& td, void** t, const void* buffer, std::size_t size)
{
asn_codec_ctx_t ctx {};
ctx.max_stack_size = ASN__DEFAULT_STACK_MAX;
asn_dec_rval_t ec = uper_decode_complete(&ctx, &td, t, buffer, size);
return ec.code == RC_OK;
}
std::size_t size_oer(asn_TYPE_descriptor_t& td, const void* t)
{
asn_enc_rval_t ec;
ec = oer_encode(&td, const_cast<void*>(t), write_null, nullptr);
if (ec.encoded < 0) {
const char* failed_type = ec.failed_type ? ec.failed_type->name : "unknown";
const auto error_msg = boost::format(
"Can't determine size for OER encoding of type %1% because of %2% sub-type")
% td.name % failed_type;
throw std::runtime_error(error_msg.str());
}
// ec.encoded are bytes for OER encoding
return ec.encoded;
}
ByteBuffer encode_oer(asn_TYPE_descriptor_t& td, const void* t)
{
ByteBuffer buffer;
asn_enc_rval_t ec = oer_encode(&td, const_cast<void*>(t), write_buffer, &buffer);
if (ec.encoded == -1) {
const char* failed_type = ec.failed_type ? ec.failed_type->name : "unknown";
const auto error_msg = boost::format(
"OER encoding of type %1% failed because of %2% sub-type")
% td.name % failed_type;
throw std::runtime_error(error_msg.str());
}
return buffer;
}
bool decode_oer(asn_TYPE_descriptor_t& td, void** t, const ByteBuffer& buffer)
{
return decode_oer(td, t, buffer.data(), buffer.size());
}
bool decode_oer(asn_TYPE_descriptor_t& td, void** t, const void* buffer, std::size_t size)
{
asn_codec_ctx_t ctx {};
ctx.max_stack_size = ASN__DEFAULT_STACK_MAX;
asn_dec_rval_t ec = oer_decode(&ctx, &td, t, buffer, size);
return ec.code == RC_OK;
}
std::size_t size_xer(asn_TYPE_descriptor_t& td, const void* t)
{
asn_enc_rval_t ec;
ec = xer_encode(&td, const_cast<void*>(t), XER_F_BASIC, write_null, nullptr);
if (ec.encoded < 0) {
const char* failed_type = ec.failed_type ? ec.failed_type->name : "unknown";
const auto error_msg = boost::format(
"Can't determine size for XER encoding of type %1% because of %2% sub-type")
% td.name % failed_type;
throw std::runtime_error(error_msg.str());
}
// ec.encoded are bytes for XER encoding
return ec.encoded;
}
ByteBuffer encode_xer(asn_TYPE_descriptor_t& td, const void* t)
{
ByteBuffer buffer;
asn_enc_rval_t ec = xer_encode(&td, const_cast<void*>(t), XER_F_BASIC, write_buffer, &buffer);
if (ec.encoded == -1) {
const char* failed_type = ec.failed_type ? ec.failed_type->name : "unknown";
const auto error_msg = boost::format(
"XER encoding of type %1% failed because of %2% sub-type")
% td.name % failed_type;
throw std::runtime_error(error_msg.str());
}
return buffer;
}
bool decode_xer(asn_TYPE_descriptor_t& td, void** t, const ByteBuffer& buffer)
{
return decode_xer(td, t, buffer.data(), buffer.size());
}
bool decode_xer(asn_TYPE_descriptor_t& td, void** t, const void* buffer, std::size_t size)
{
asn_codec_ctx_t ctx {};
ctx.max_stack_size = ASN__DEFAULT_STACK_MAX;
asn_dec_rval_t ec = xer_decode(&ctx, &td, t, buffer, size);
return ec.code == RC_OK;
}
} // namespace asn1
} // namespace vanetza
@@ -0,0 +1,344 @@
#ifndef ASN1C_WRAPPER_HPP_ZCNDO8E5
#define ASN1C_WRAPPER_HPP_ZCNDO8E5
#include <vanetza/asn1/support/asn_system.h>
#include <vanetza/asn1/support/constr_TYPE.h>
#include <vanetza/asn1/type_traits.hpp>
#include <vanetza/common/byte_buffer.hpp>
#include <cstddef>
#include <memory>
#include <string>
#include <utility>
namespace vanetza
{
namespace asn1
{
void* allocate(std::size_t);
void free(asn_TYPE_descriptor_t&, void*);
void* copy(asn_TYPE_descriptor_t&, const void*);
bool validate(asn_TYPE_descriptor_t&, const void*);
bool validate(asn_TYPE_descriptor_t&, const void*, std::string&);
int compare(asn_TYPE_descriptor_t&, const void*, const void*);
int print(FILE* stream, asn_TYPE_descriptor_t&, const void*);
std::size_t size_per(asn_TYPE_descriptor_t&, const void*);
std::size_t size_oer(asn_TYPE_descriptor_t&, const void*);
std::size_t size_xer(asn_TYPE_descriptor_t&, const void*);
ByteBuffer encode_per(asn_TYPE_descriptor_t&, const void*);
bool decode_per(asn_TYPE_descriptor_t&, void**, const ByteBuffer&);
bool decode_per(asn_TYPE_descriptor_t&, void**, const void* buffer, std::size_t size);
ByteBuffer encode_oer(asn_TYPE_descriptor_t&, const void*);
bool decode_oer(asn_TYPE_descriptor_t&, void**, const ByteBuffer&);
bool decode_oer(asn_TYPE_descriptor_t&, void**, const void* buffer, std::size_t size);
ByteBuffer encode_xer(asn_TYPE_descriptor_t&, const void*);
bool decode_xer(asn_TYPE_descriptor_t&, void**, const ByteBuffer&);
bool decode_xer(asn_TYPE_descriptor_t&, void**, const void* buffer, std::size_t size);
template<class T>
T* allocate()
{
return static_cast<T*>(allocate(sizeof(T)));
}
/// Deleter freeing an asn1c struct through its ASN.1 type descriptor.
struct deleter
{
asn_TYPE_descriptor_t* descriptor = nullptr;
void operator()(void* ptr) const;
};
/**
* Allocate an asn1c struct owned by a unique_ptr that deep-frees it via its descriptor.
* \param descriptor ASN.1 type descriptor matching T
* \return owning unique_ptr
*/
template<class T>
std::unique_ptr<T, deleter> make_unique(asn_TYPE_descriptor_t& descriptor)
{
return std::unique_ptr<T, deleter> { allocate<T>(), deleter { &descriptor } };
}
/**
* Allocate an asn1c struct owned by a unique_ptr, taking the type descriptor
* from the asn1_type_traits specialization of T.
* \return owning unique_ptr
*/
template<class T>
std::unique_ptr<T, deleter> make_unique()
{
return make_unique<T>(asn1_type_traits<T>::descriptor());
}
template<class T>
class asn1c_wrapper_common
{
public:
typedef T asn1c_type;
asn1c_wrapper_common(asn_TYPE_descriptor_t& desc) :
m_struct(vanetza::asn1::allocate<asn1c_type>()), m_type(desc) {}
asn1c_wrapper_common(asn_TYPE_descriptor_t& desc, const T* ptr) :
m_struct(static_cast<T*>(copy(desc, ptr))), m_type(desc) {}
~asn1c_wrapper_common() { vanetza::asn1::free(m_type, m_struct); }
// copy semantics
asn1c_wrapper_common(const asn1c_wrapper_common& other) :
m_struct(static_cast<asn1c_type*>(copy(other.m_type, other.m_struct))), m_type(other.m_type) {}
asn1c_wrapper_common& operator=(const asn1c_wrapper_common& other)
{
asn1c_wrapper_common tmp = other;
swap(tmp);
return *this;
}
// move semantics
asn1c_wrapper_common(asn1c_wrapper_common&& other) noexcept :
m_struct(nullptr), m_type(other.m_type) { swap(other); }
asn1c_wrapper_common& operator=(asn1c_wrapper_common&& other) noexcept
{
swap(other);
return *this;
}
// dereferencing
asn1c_type& operator*() { return *m_struct; }
asn1c_type* operator->() { return m_struct; }
const asn1c_type& operator*() const { return *m_struct; }
const asn1c_type* operator->() const { return m_struct; }
// direct access to content structure
const asn1c_type* content() const { return m_struct; }
asn1c_type* content() { return m_struct; }
// compare semantics
bool operator==(const asn1c_wrapper_common& rhs) const
{
return vanetza::asn1::compare(m_type, m_struct, rhs.m_struct) == 0;
}
bool operator!=(const asn1c_wrapper_common& rhs) const
{
return vanetza::asn1::compare(m_type, m_struct, rhs.m_struct) != 0;
}
/**
* Check ASN.1 constraints
* \param error (optional) copy of error message
* \return true if valid
*/
bool validate() const
{
return vanetza::asn1::validate(m_type, m_struct);
}
/**
* Check ASN.1 constraints
* \param error Error message if any constraint failed
* \return true if valid
*/
bool validate(std::string& error) const
{
return vanetza::asn1::validate(m_type, m_struct, error);
}
/**
* Compare ASN.1 types
* \param other Other ASN.1 type to compare with
* \return 0 if equal, <0 if other is "greater", >0 if other is "smaller"
*/
int compare(const asn1c_wrapper_common& other) const
{
return vanetza::asn1::compare(m_type, m_struct, other.m_struct);
}
/**
* Print ASN.1 type to standard output
* \return 0 on success, -1 on error
*/
int print() const
{
return vanetza::asn1::print(stdout, m_type, m_struct);
}
/**
* Print ASN.1 type to some file stream
* \param stream Output stream
* \return 0 on success, -1 on error
*/
int print(FILE* stream) const
{
return vanetza::asn1::print(stream, m_type, m_struct);
}
/**
* Swap ASN.1 wrapper content
* \param other wrapper
*/
void swap(asn1c_wrapper_common& other) noexcept
{
std::swap(m_struct, other.m_struct);
std::swap(m_type, other.m_type);
}
protected:
asn1c_type* m_struct;
asn_TYPE_descriptor_t& m_type;
};
template<typename T>
void swap(asn1c_wrapper_common<T>& lhs, asn1c_wrapper_common<T>& rhs)
{
lhs.swap(rhs);
}
template<class T>
class asn1c_per_wrapper : public asn1c_wrapper_common<T>
{
public:
using base = asn1c_wrapper_common<T>;
using base::base;
/**
* Encode ASN.1 struct into byte buffer
* \return byte buffer containing serialized ASN.1 struct
*/
ByteBuffer encode() const
{
return vanetza::asn1::encode_per(base::m_type, base::m_struct);
}
/**
* Try to decode ASN.1 struct from byte buffer
* \param buffer input data
* \return true if decoding has been successful
*/
bool decode(const ByteBuffer& buffer)
{
return vanetza::asn1::decode_per(base::m_type, (void**)&(base::m_struct), buffer);
}
bool decode(ByteBuffer::const_iterator begin, ByteBuffer::const_iterator end)
{
return vanetza::asn1::decode_per(base::m_type, (void**)&(base::m_struct), &(*begin), std::distance(begin, end));
}
bool decode(const void* buffer, std::size_t len)
{
return vanetza::asn1::decode_per(base::m_type, (void**)&(base::m_struct), buffer, len);
}
/**
* Get size of encoded ASN.1 struct
* \return size in bytes
*/
std::size_t size() const
{
return vanetza::asn1::size_per(base::m_type, base::m_struct);
}
};
template<class T>
using asn1c_wrapper = asn1c_per_wrapper<T>;
template<class T>
class asn1c_oer_wrapper : public asn1c_wrapper_common<T>
{
public:
using base = asn1c_wrapper_common<T>;
using base::base;
/**
* Encode ASN.1 struct into byte buffer
* \return byte buffer containing serialized ASN.1 struct
*/
ByteBuffer encode() const
{
return vanetza::asn1::encode_oer(base::m_type, base::m_struct);
}
/**
* Try to decode ASN.1 struct from byte buffer
* \param buffer input data
* \deprecated use decode_per instead
* \return true if decoding has been successful
*/
bool decode(const ByteBuffer& buffer)
{
return vanetza::asn1::decode_oer(base::m_type, (void**)&(base::m_struct), buffer);
}
bool decode(ByteBuffer::const_iterator begin, ByteBuffer::const_iterator end)
{
return vanetza::asn1::decode_oer(base::m_type, (void**)&(base::m_struct), &(*begin), std::distance(begin, end));
}
bool decode(const void* buffer, std::size_t len)
{
return vanetza::asn1::decode_oer(base::m_type, (void**)&(base::m_struct), buffer, len);
}
/**
* Get size of encoded ASN.1 struct
* \return size in bytes
*/
std::size_t size() const
{
return vanetza::asn1::size_oer(base::m_type, base::m_struct);
}
};
template<class T>
class asn1c_xer_wrapper : public asn1c_wrapper_common<T>
{
public:
using base = asn1c_wrapper_common<T>;
using base::base;
/**
* Encode ASN.1 struct into byte buffer
* \return byte buffer containing serialized ASN.1 struct
*/
ByteBuffer encode() const
{
return vanetza::asn1::encode_xer(base::m_type, base::m_struct);
}
/**
* Try to decode ASN.1 struct from byte buffer
* \param buffer input data
* \return true if decoding has been successful
*/
bool decode(const ByteBuffer& buffer)
{
return vanetza::asn1::decode_xer(base::m_type, (void**)&(base::m_struct), buffer);
}
bool decode(ByteBuffer::const_iterator begin, ByteBuffer::const_iterator end)
{
return vanetza::asn1::decode_xer(base::m_type, (void**)&(base::m_struct), &(*begin), std::distance(begin, end));
}
bool decode(const void* buffer, std::size_t len)
{
return vanetza::asn1::decode_xer(base::m_type, (void**)&(base::m_struct), buffer, len);
}
/**
* Get size of encoded ASN.1 struct
* \return size in bytes
*/
std::size_t size() const
{
return vanetza::asn1::size_xer(base::m_type, base::m_struct);
}
};
} // namespace asn1
} // namespace vanetza
#endif /* ASN1C_WRAPPER_HPP_ZCNDO8E5 */
@@ -0,0 +1,44 @@
#ifndef CAM_HPP_WXYNEKFN
#define CAM_HPP_WXYNEKFN
#include <vanetza/asn1/asn1c_conversion.hpp>
#include <vanetza/asn1/asn1c_wrapper.hpp>
#include <vanetza/asn1/its/CAM.h>
#include <vanetza/asn1/its/r2/CAM.h>
namespace vanetza
{
namespace asn1
{
namespace r1
{
class Cam : public asn1c_per_wrapper<CAM_t>
{
public:
using wrapper = asn1c_per_wrapper<CAM_t>;
Cam() : wrapper(asn_DEF_CAM) {}
};
} // namespace r1
namespace r2
{
class Cam : public asn1c_per_wrapper<Vanetza_ITS2_CAM_t>
{
public:
using wrapper = asn1c_per_wrapper<Vanetza_ITS2_CAM_t>;
Cam() : wrapper(asn_DEF_Vanetza_ITS2_CAM) {}
};
} // namespace r2
// alias for backward compatibility
using Cam = r1::Cam;
} // namespace asn1
} // namespace vanetza
#endif /* CAM_HPP_WXYNEKFN */
@@ -0,0 +1,8 @@
if(NOT DEFINED ASN1C_OUTPUT_DIR)
message(FATAL_ERROR "Missing ASN.1 output directory (ASN1C_OUTPUT_DIR)")
elseif(NOT DEFINED ASN1C_SOURCE_FILE)
message(FATAL_ERROR "Missing ASN.1 source file (ASN1C_SOURCE_FILE)")
endif()
file(REMOVE_RECURSE ${ASN1C_OUTPUT_DIR})
file(WRITE ${ASN1C_SOURCE_FILE} "")
@@ -0,0 +1,22 @@
if(NOT DEFINED ASN1C_OUTPUT_DIR)
message(FATAL_ERROR "Missing ASN.1 output directory (ASN1C_OUTPUT_DIR)")
elseif(NOT DEFINED ASN1C_SOURCE_FILE)
message(FATAL_ERROR "Missing ASN.1 source file (ASN1C_SOURCE_FILE)")
endif()
if(IS_ABSOLUTE "${ASN1C_OUTPUT_DIR}")
file(RELATIVE_PATH ASN1C_OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR} ${ASN1C_OUTPUT_DIR})
endif()
file(GLOB _sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${ASN1C_OUTPUT_DIR}/*.c)
list(REMOVE_ITEM _sources
${ASN1C_OUTPUT_DIR}/converter-sample.c
${ASN1C_OUTPUT_DIR}/converter-example.c
${ASN1C_OUTPUT_DIR}/EXTERNAL.c
)
file(WRITE "${ASN1C_SOURCE_FILE}" "# generated file\n")
foreach(_source ${_sources})
file(APPEND "${ASN1C_SOURCE_FILE}" "${_source}\n")
endforeach()
@@ -0,0 +1,6 @@
if(NOT DEFINED SOURCE)
set(SOURCE ".")
endif()
file(GLOB asn1c_skeleton_files ${SOURCE}/*.h ${SOURCE}/*.c)
file(COPY ${asn1c_skeleton_files} DESTINATION "${DESTINATION}" PATTERN converter-example.c EXCLUDE)
@@ -0,0 +1,42 @@
#ifndef CPM_HPP_WEWZK69S
#define CPM_HPP_WEWZK69S
#include <vanetza/asn1/asn1c_conversion.hpp>
#include <vanetza/asn1/asn1c_wrapper.hpp>
#include <vanetza/asn1/its/CPM.h>
#include <vanetza/asn1/its/r2/CollectivePerceptionMessage.h>
namespace vanetza
{
namespace asn1
{
namespace r1
{
class Cpm : public asn1c_per_wrapper<CPM_t>
{
public:
Cpm() : asn1c_per_wrapper(asn_DEF_CPM) {}
};
} // namespace r1
namespace r2
{
class Cpm : public asn1c_per_wrapper<Vanetza_ITS2_CollectivePerceptionMessage_t>
{
public:
Cpm() : asn1c_per_wrapper(asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage) {}
};
} // namespace r2
// alias for backward compatibility
using Cpm = r1::Cpm;
} // namespace asn1
} // namespace vanetza
#endif /* CPM_HPP_WEWZK69S */
@@ -0,0 +1,44 @@
#ifndef DENM_HPP_XGC8NRDI
#define DENM_HPP_XGC8NRDI
#include <vanetza/asn1/asn1c_conversion.hpp>
#include <vanetza/asn1/asn1c_wrapper.hpp>
#include <vanetza/asn1/its/DENM.h>
#include <vanetza/asn1/its/r2/DENM.h>
namespace vanetza
{
namespace asn1
{
namespace r1
{
class Denm : public asn1c_per_wrapper<DENM_t>
{
public:
using wrapper = asn1c_per_wrapper<DENM_t>;
Denm() : wrapper(asn_DEF_DENM) {}
};
} // namespace r1
namespace r2
{
class Denm : public asn1c_per_wrapper<Vanetza_ITS2_DENM_t>
{
public:
using wrapper = asn1c_per_wrapper<Vanetza_ITS2_DENM_t>;
Denm() : wrapper(asn_DEF_Vanetza_ITS2_DENM) {}
};
} // namespace r2
// alias for backward compatibility
using Denm = r1::Denm;
} // namespace asn1
} // namespace vanetza
#endif /* DENM_HPP_XGC8NRDI */
@@ -0,0 +1,63 @@
if(NOT OUTPUT_DIRECTORY)
message(FATAL_ERROR "OUTPUT_DIRECTORY variable is undefined")
endif()
file(MAKE_DIRECTORY "${OUTPUT_DIRECTORY}")
if(NOT PATCH_DIRECTORY)
message(FATAL_ERROR "PATH_DIRECTORY variable is undefined")
endif()
macro(download URL OUTPUT_FILE)
file(DOWNLOAD "${URL}" "${OUTPUT_FILE}"
STATUS _status)
list(GET _status 0 _result)
if(NOT _result EQUAL 0)
list(GET _status 1 _log)
message(FATAL_ERROR "Download of ${URL} failed: ${_log}")
endif()
endmacro()
macro(download_ieee1609dot2 ASN1_FILE)
download(
"https://forge.etsi.org/rep/ITS/asn1/ieee1609.2/-/raw/2022-published/${ASN1_FILE}"
"${OUTPUT_DIRECTORY}/${ASN1_FILE}")
endmacro()
macro(download_ieee1609dot2dot1 ASN1_FILE)
download(
"https://forge.etsi.org/rep/ITS/asn1/ieee1609.2.1/-/raw/2022-published/${ASN1_FILE}"
"${OUTPUT_DIRECTORY}/${ASN1_FILE}")
endmacro()
download_ieee1609dot2("Ieee1609Dot2.asn")
download_ieee1609dot2("Ieee1609Dot2BaseTypes.asn")
download_ieee1609dot2("Ieee1609Dot2Crl.asn")
download_ieee1609dot2("Ieee1609Dot2CrlBaseTypes.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1AcaEeInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1AcaLaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1AcaMaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1AcaRaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1Acpc.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1CamRaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1CertManagement.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1EcaEeInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1EeMaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1EeRaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1LaMaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1LaRaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1MaRaInterface.asn")
download_ieee1609dot2dot1("Ieee1609Dot2Dot1Protocol.asn")
file(READ "${OUTPUT_DIRECTORY}/Ieee1609Dot2.asn" _content)
string(REGEX REPLACE " Extension" " IeeeExtension" _content "${_content}")
file(WRITE "${OUTPUT_DIRECTORY}/Ieee1609Dot2.asn" "${_content}")
file(READ "${OUTPUT_DIRECTORY}/Ieee1609Dot2BaseTypes.asn" _content)
string(REGEX REPLACE "([\r\n])Extension" "\\1IeeeExtension" _content "${_content}")
file(WRITE "${OUTPUT_DIRECTORY}/Ieee1609Dot2BaseTypes.asn" "${_content}")
execute_process(COMMAND patch -p1 -i "${PATCH_DIRECTORY}/scoped-certificate-request.patch"
WORKING_DIRECTORY "${OUTPUT_DIRECTORY}"
RESULT_VARIABLE PATCH_RESULT)
if(NOT PATCH_RESULT EQUAL 0)
message(SEND_ERROR "Applying patch on IEEE 1609.2.1 ScopedCertificateRequest failed!")
endif()
@@ -0,0 +1,39 @@
if(NOT DIRECTORY)
message(FATAL_ERROR "DIRECTORY variable is undefined")
endif()
file(MAKE_DIRECTORY "${DIRECTORY}")
macro(download URL FILENAME)
file(DOWNLOAD "${URL}" "${DIRECTORY}/${FILENAME}"
STATUS _status)
list(GET _status 0 _result)
if(NOT _result EQUAL 0)
list(GET _status 1 _log)
message(FATAL_ERROR "Download of ${URL} failed: ${_log}")
endif()
endmacro()
macro(add_suffix)
cmake_parse_arguments(ARG "" "FILE;SUFFIX" "SYMBOLS" ${ARGN})
if (NOT ARG_SUFFIX)
set(ARG_SUFFIX "Iso")
endif()
file(READ "${DIRECTORY}/${ARG_FILE}" _content)
foreach(_symbol IN LISTS ARG_SYMBOLS)
string(REPLACE "${_symbol}" "${_symbol}${ARG_SUFFIX}" _content "${_content}")
endforeach()
file(WRITE "${DIRECTORY}/${ARG_FILE}" "${_content}")
endmacro()
download("https://standards.iso.org/iso/14816/ISO14816%20ASN.1%20repository/ISO14816_AVIAEINumberingAndDataStructures.asn" "ISO14816.asn")
add_suffix(FILE "ISO14816.asn" SYMBOLS IssuerIdentifier)
download("https://forge.etsi.org/rep/ITS/asn1/is_ts103301/-/raw/v2.1.1/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" "ISO24534-3.asn")
download("https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn" "ISO19091.asn")
add_suffix(FILE "ISO19091.asn" SYMBOLS HeadingConfidence Heading SpeedConfidence)
download("https://standards.iso.org/iso/ts/19321/ed-2/en/ISO19321IVIv2.asn" "ISO19321.asn")
download("https://forge.etsi.org/rep/ITS/asn1/is_ts103301/-/raw/v2.1.1/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn" "ISO14906-1-7.asn")
add_suffix(FILE "ISO14906-1-7.asn" SYMBOLS IssuerIdentifier)
download("https://forge.etsi.org/rep/ITS/asn1/is_ts103301/-/raw/v2.1.1/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" "ISO14906-0-6.asn")
add_suffix(FILE "ISO14906-0-6.asn" SYMBOLS StationType IssuerIdentifier)
download("https://forge.etsi.org/rep/ITS/asn1/is_ts103301/-/raw/v2.1.1/iso-patched/ISO14823-missing.asn" "ISO14823.asn")
download("https://forge.etsi.org/rep/LIBS/LibIts/-/raw/798bfce82f199cdfdef4289098bf900832e3932c/asn1/IS/IVI_ISO_TS_17419.asn" "ISO17419.asn")
@@ -0,0 +1,62 @@
if(NOT OUTPUT_DIRECTORY)
message(FATAL_ERROR "OUTPUT_DIRECTORY is undefined")
endif()
if(NOT PATCH_FILE)
message(FATAL_ERROR "PATCH_FILE is undefined")
endif()
set(_etsi_revision "65e6d8ea88b2bfb3aca3151dbedf07d89b97fd00")
set(_ieee_revision "77e2c822a11bf8adbe9848ad3fd4f311925aff30")
set(_etsi_repository "https://forge.etsi.org/rep/ITS/asn1/sec_ts103097")
set(_ieee_repository "https://forge.etsi.org/rep/ITS/asn1/ieee1609.2")
function(download_module REPOSITORY REVISION MODULE SHA256)
set(_url "${REPOSITORY}/-/raw/${REVISION}/${MODULE}")
set(_output "${OUTPUT_DIRECTORY}/${MODULE}")
file(DOWNLOAD "${_url}" "${_output}"
EXPECTED_HASH "SHA256=${SHA256}"
TLS_VERIFY ON
STATUS _status)
list(GET _status 0 _result)
if(NOT _result EQUAL 0)
list(GET _status 1 _log)
message(FATAL_ERROR "Download of ${_url} failed: ${_log}")
endif()
# Keep the patch independent of the upstream repository's line endings.
file(READ "${_output}" _contents)
string(REPLACE "\r\n" "\n" _contents "${_contents}")
string(REGEX REPLACE "[ \t]+\n" "\n" _contents "${_contents}")
file(WRITE "${_output}" "${_contents}")
endfunction()
file(REMOVE_RECURSE "${OUTPUT_DIRECTORY}")
file(MAKE_DIRECTORY "${OUTPUT_DIRECTORY}")
download_module("${_etsi_repository}" "${_etsi_revision}"
EtsiTs103097Module.asn
245a3c10c176497f658c6a4d9ec804d3226dda2ac10a4351e382ddb5afe9ff72)
download_module("${_etsi_repository}" "${_etsi_revision}"
EtsiTs103097ExtensionModule.asn
b94c9b373567dd9bfb15d61c8c206d5630f6b0c481ef41ddd574c96784a9eb1a)
download_module("${_ieee_repository}" "${_ieee_revision}"
Ieee1609Dot2.asn
82b5e35cbaadae1c6b2f087626b10d52afc73779c9ac6700c6445830d8824e0b)
download_module("${_ieee_repository}" "${_ieee_revision}"
Ieee1609Dot2BaseTypes.asn
bf2b3d66d394449319323f8a59d8084d963c3ad55d6790e1436ab897221690fe)
if(NOT EXISTS "${PATCH_FILE}")
message(FATAL_ERROR "Missing SystemX PQC ASN.1 patch: ${PATCH_FILE}")
endif()
find_program(PATCH_EXECUTABLE patch)
if(NOT PATCH_EXECUTABLE)
message(FATAL_ERROR "The patch utility is required to prepare the SystemX hybrid-PQC ASN.1 modules")
endif()
execute_process(
COMMAND "${PATCH_EXECUTABLE}" --batch --forward -p1 -i "${PATCH_FILE}"
WORKING_DIRECTORY "${OUTPUT_DIRECTORY}"
RESULT_VARIABLE _patch_result)
if(NOT _patch_result EQUAL 0)
message(FATAL_ERROR "Applying the SystemX hybrid-PQC ASN.1 patch failed")
endif()
@@ -0,0 +1,93 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AbsolutePosition.h"
asn_TYPE_member_t asn_MBR_AbsolutePosition_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct AbsolutePosition, latitude),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Latitude,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"latitude"
},
{ ATF_NOFLAGS, 0, offsetof(struct AbsolutePosition, longitude),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Longitude,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"longitude"
},
};
static const ber_tlv_tag_t asn_DEF_AbsolutePosition_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AbsolutePosition_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitude */
};
asn_SEQUENCE_specifics_t asn_SPC_AbsolutePosition_specs_1 = {
sizeof(struct AbsolutePosition),
offsetof(struct AbsolutePosition, _asn_ctx),
asn_MAP_AbsolutePosition_tag2el_1,
2, /* Count of tags in the map */
0, 0, 0, /* Optional elements (not needed) */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AbsolutePosition = {
"AbsolutePosition",
"AbsolutePosition",
&asn_OP_SEQUENCE,
asn_DEF_AbsolutePosition_tags_1,
sizeof(asn_DEF_AbsolutePosition_tags_1)
/sizeof(asn_DEF_AbsolutePosition_tags_1[0]), /* 1 */
asn_DEF_AbsolutePosition_tags_1, /* Same as above */
sizeof(asn_DEF_AbsolutePosition_tags_1)
/sizeof(asn_DEF_AbsolutePosition_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AbsolutePosition_1,
2, /* Elements count */
&asn_SPC_AbsolutePosition_specs_1 /* Additional specs */
};
@@ -0,0 +1,42 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AbsolutePosition_H_
#define _AbsolutePosition_H_
#include "asn_application.h"
/* Including external dependencies */
#include "Latitude.h"
#include "Longitude.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* AbsolutePosition */
typedef struct AbsolutePosition {
Latitude_t latitude;
Longitude_t longitude;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AbsolutePosition_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AbsolutePosition;
extern asn_SEQUENCE_specifics_t asn_SPC_AbsolutePosition_specs_1;
extern asn_TYPE_member_t asn_MBR_AbsolutePosition_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _AbsolutePosition_H_ */
#include "asn_internal.h"
@@ -0,0 +1,114 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AbsolutePositionWAltitude.h"
asn_TYPE_member_t asn_MBR_AbsolutePositionWAltitude_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct AbsolutePositionWAltitude, latitude),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Latitude,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"latitude"
},
{ ATF_NOFLAGS, 0, offsetof(struct AbsolutePositionWAltitude, longitude),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Longitude,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"longitude"
},
{ ATF_NOFLAGS, 0, offsetof(struct AbsolutePositionWAltitude, altitude),
(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Altitude,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"altitude"
},
};
static const ber_tlv_tag_t asn_DEF_AbsolutePositionWAltitude_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AbsolutePositionWAltitude_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */
{ (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* altitude */
};
asn_SEQUENCE_specifics_t asn_SPC_AbsolutePositionWAltitude_specs_1 = {
sizeof(struct AbsolutePositionWAltitude),
offsetof(struct AbsolutePositionWAltitude, _asn_ctx),
asn_MAP_AbsolutePositionWAltitude_tag2el_1,
3, /* Count of tags in the map */
0, 0, 0, /* Optional elements (not needed) */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AbsolutePositionWAltitude = {
"AbsolutePositionWAltitude",
"AbsolutePositionWAltitude",
&asn_OP_SEQUENCE,
asn_DEF_AbsolutePositionWAltitude_tags_1,
sizeof(asn_DEF_AbsolutePositionWAltitude_tags_1)
/sizeof(asn_DEF_AbsolutePositionWAltitude_tags_1[0]), /* 1 */
asn_DEF_AbsolutePositionWAltitude_tags_1, /* Same as above */
sizeof(asn_DEF_AbsolutePositionWAltitude_tags_1)
/sizeof(asn_DEF_AbsolutePositionWAltitude_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AbsolutePositionWAltitude_1,
3, /* Elements count */
&asn_SPC_AbsolutePositionWAltitude_specs_1 /* Additional specs */
};
@@ -0,0 +1,44 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AbsolutePositionWAltitude_H_
#define _AbsolutePositionWAltitude_H_
#include "asn_application.h"
/* Including external dependencies */
#include "Latitude.h"
#include "Longitude.h"
#include "Altitude.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* AbsolutePositionWAltitude */
typedef struct AbsolutePositionWAltitude {
Latitude_t latitude;
Longitude_t longitude;
Altitude_t altitude;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AbsolutePositionWAltitude_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AbsolutePositionWAltitude;
extern asn_SEQUENCE_specifics_t asn_SPC_AbsolutePositionWAltitude_specs_1;
extern asn_TYPE_member_t asn_MBR_AbsolutePositionWAltitude_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _AbsolutePositionWAltitude_H_ */
#include "asn_internal.h"
@@ -0,0 +1,78 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AbsolutePositions.h"
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AbsolutePositions_constr_1 CC_NOTUSED = {
{ 0, 0 },
-1 /* (SIZE(0..MAX)) */};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AbsolutePositions_constr_1 CC_NOTUSED = {
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
{ APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */,
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
asn_TYPE_member_t asn_MBR_AbsolutePositions_1[] = {
{ ATF_POINTER, 0, 0,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
&asn_DEF_AbsolutePosition,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
""
},
};
static const ber_tlv_tag_t asn_DEF_AbsolutePositions_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
asn_SET_OF_specifics_t asn_SPC_AbsolutePositions_specs_1 = {
sizeof(struct AbsolutePositions),
offsetof(struct AbsolutePositions, _asn_ctx),
0, /* XER encoding is XMLDelimitedItemList */
};
asn_TYPE_descriptor_t asn_DEF_AbsolutePositions = {
"AbsolutePositions",
"AbsolutePositions",
&asn_OP_SEQUENCE_OF,
asn_DEF_AbsolutePositions_tags_1,
sizeof(asn_DEF_AbsolutePositions_tags_1)
/sizeof(asn_DEF_AbsolutePositions_tags_1[0]), /* 1 */
asn_DEF_AbsolutePositions_tags_1, /* Same as above */
sizeof(asn_DEF_AbsolutePositions_tags_1)
/sizeof(asn_DEF_AbsolutePositions_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AbsolutePositions_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AbsolutePositions_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_OF_constraint
},
asn_MBR_AbsolutePositions_1,
1, /* Single element */
&asn_SPC_AbsolutePositions_specs_1 /* Additional specs */
};
@@ -0,0 +1,48 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AbsolutePositions_H_
#define _AbsolutePositions_H_
#include "asn_application.h"
/* Including external dependencies */
#include "asn_SEQUENCE_OF.h"
#include "constr_SEQUENCE_OF.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct AbsolutePosition;
/* AbsolutePositions */
typedef struct AbsolutePositions {
A_SEQUENCE_OF(struct AbsolutePosition) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AbsolutePositions_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AbsolutePositions;
extern asn_SET_OF_specifics_t asn_SPC_AbsolutePositions_specs_1;
extern asn_TYPE_member_t asn_MBR_AbsolutePositions_1[1];
extern asn_oer_constraints_t asn_OER_type_AbsolutePositions_constr_1;
extern asn_per_constraints_t asn_PER_type_AbsolutePositions_constr_1;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include "AbsolutePosition.h"
#endif /* _AbsolutePositions_H_ */
#include "asn_internal.h"
@@ -0,0 +1,78 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AbsolutePositionsWAltitude.h"
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AbsolutePositionsWAltitude_constr_1 CC_NOTUSED = {
{ 0, 0 },
-1 /* (SIZE(0..MAX)) */};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AbsolutePositionsWAltitude_constr_1 CC_NOTUSED = {
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
{ APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */,
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
asn_TYPE_member_t asn_MBR_AbsolutePositionsWAltitude_1[] = {
{ ATF_POINTER, 0, 0,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
&asn_DEF_AbsolutePositionWAltitude,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
""
},
};
static const ber_tlv_tag_t asn_DEF_AbsolutePositionsWAltitude_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
asn_SET_OF_specifics_t asn_SPC_AbsolutePositionsWAltitude_specs_1 = {
sizeof(struct AbsolutePositionsWAltitude),
offsetof(struct AbsolutePositionsWAltitude, _asn_ctx),
0, /* XER encoding is XMLDelimitedItemList */
};
asn_TYPE_descriptor_t asn_DEF_AbsolutePositionsWAltitude = {
"AbsolutePositionsWAltitude",
"AbsolutePositionsWAltitude",
&asn_OP_SEQUENCE_OF,
asn_DEF_AbsolutePositionsWAltitude_tags_1,
sizeof(asn_DEF_AbsolutePositionsWAltitude_tags_1)
/sizeof(asn_DEF_AbsolutePositionsWAltitude_tags_1[0]), /* 1 */
asn_DEF_AbsolutePositionsWAltitude_tags_1, /* Same as above */
sizeof(asn_DEF_AbsolutePositionsWAltitude_tags_1)
/sizeof(asn_DEF_AbsolutePositionsWAltitude_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AbsolutePositionsWAltitude_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AbsolutePositionsWAltitude_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_OF_constraint
},
asn_MBR_AbsolutePositionsWAltitude_1,
1, /* Single element */
&asn_SPC_AbsolutePositionsWAltitude_specs_1 /* Additional specs */
};
@@ -0,0 +1,48 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AbsolutePositionsWAltitude_H_
#define _AbsolutePositionsWAltitude_H_
#include "asn_application.h"
/* Including external dependencies */
#include "asn_SEQUENCE_OF.h"
#include "constr_SEQUENCE_OF.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct AbsolutePositionWAltitude;
/* AbsolutePositionsWAltitude */
typedef struct AbsolutePositionsWAltitude {
A_SEQUENCE_OF(struct AbsolutePositionWAltitude) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AbsolutePositionsWAltitude_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AbsolutePositionsWAltitude;
extern asn_SET_OF_specifics_t asn_SPC_AbsolutePositionsWAltitude_specs_1;
extern asn_TYPE_member_t asn_MBR_AbsolutePositionsWAltitude_1[1];
extern asn_oer_constraints_t asn_OER_type_AbsolutePositionsWAltitude_constr_1;
extern asn_per_constraints_t asn_PER_type_AbsolutePositionsWAltitude_constr_1;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include "AbsolutePositionWAltitude.h"
#endif /* _AbsolutePositionsWAltitude_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AccelerationConfidence.h"
int
AccelerationConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 102L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..102) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AccelerationConfidence_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence = {
"AccelerationConfidence",
"AccelerationConfidence",
&asn_OP_NativeInteger,
asn_DEF_AccelerationConfidence_tags_1,
sizeof(asn_DEF_AccelerationConfidence_tags_1)
/sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */
asn_DEF_AccelerationConfidence_tags_1, /* Same as above */
sizeof(asn_DEF_AccelerationConfidence_tags_1)
/sizeof(asn_DEF_AccelerationConfidence_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AccelerationConfidence_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AccelerationConfidence_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AccelerationConfidence_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,55 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AccelerationConfidence_H_
#define _AccelerationConfidence_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AccelerationConfidence {
AccelerationConfidence_pointOneMeterPerSecSquared = 1,
AccelerationConfidence_outOfRange = 101,
AccelerationConfidence_unavailable = 102
} e_AccelerationConfidence;
/* AccelerationConfidence */
typedef long AccelerationConfidence_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AccelerationConfidence_constr_1;
extern asn_per_constraints_t asn_PER_type_AccelerationConfidence_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AccelerationConfidence;
asn_struct_free_f AccelerationConfidence_free;
asn_struct_print_f AccelerationConfidence_print;
asn_constr_check_f AccelerationConfidence_constraint;
ber_type_decoder_f AccelerationConfidence_decode_ber;
der_type_encoder_f AccelerationConfidence_encode_der;
xer_type_decoder_f AccelerationConfidence_decode_xer;
xer_type_encoder_f AccelerationConfidence_encode_xer;
jer_type_encoder_f AccelerationConfidence_encode_jer;
oer_type_decoder_f AccelerationConfidence_decode_oer;
oer_type_encoder_f AccelerationConfidence_encode_oer;
per_type_decoder_f AccelerationConfidence_decode_uper;
per_type_encoder_f AccelerationConfidence_encode_uper;
per_type_decoder_f AccelerationConfidence_decode_aper;
per_type_encoder_f AccelerationConfidence_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AccelerationConfidence_H_ */
#include "asn_internal.h"
@@ -0,0 +1,89 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AccelerationControl.h"
int
AccelerationControl_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
size_t size;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
if(st->size > 0) {
/* Size in bits */
size = 8 * st->size - (st->bits_unused & 0x07);
} else {
size = 0;
}
if((size == 7UL)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using BIT_STRING,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1 CC_NOTUSED = {
{ 0, 0 },
7 /* (SIZE(7..7)) */};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1 CC_NOTUSED = {
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
{ APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */,
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
asn_jer_constraints_t asn_JER_type_AccelerationControl_constr_1 CC_NOTUSED = {
7};
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AccelerationControl_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AccelerationControl = {
"AccelerationControl",
"AccelerationControl",
&asn_OP_BIT_STRING,
asn_DEF_AccelerationControl_tags_1,
sizeof(asn_DEF_AccelerationControl_tags_1)
/sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */
asn_DEF_AccelerationControl_tags_1, /* Same as above */
sizeof(asn_DEF_AccelerationControl_tags_1)
/sizeof(asn_DEF_AccelerationControl_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AccelerationControl_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AccelerationControl_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
&asn_JER_type_AccelerationControl_constr_1,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AccelerationControl_constraint
},
0, 0, /* Defined elsewhere */
&asn_SPC_BIT_STRING_specs /* Additional specs */
};
@@ -0,0 +1,60 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AccelerationControl_H_
#define _AccelerationControl_H_
#include "asn_application.h"
/* Including external dependencies */
#include "BIT_STRING.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AccelerationControl {
AccelerationControl_brakePedalEngaged = 0,
AccelerationControl_gasPedalEngaged = 1,
AccelerationControl_emergencyBrakeEngaged = 2,
AccelerationControl_collisionWarningEngaged = 3,
AccelerationControl_accEngaged = 4,
AccelerationControl_cruiseControlEngaged = 5,
AccelerationControl_speedLimiterEngaged = 6
} e_AccelerationControl;
/* AccelerationControl */
typedef BIT_STRING_t AccelerationControl_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AccelerationControl_constr_1;
extern asn_per_constraints_t asn_PER_type_AccelerationControl_constr_1;
extern asn_jer_constraints_t asn_JER_type_AccelerationControl_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AccelerationControl;
asn_struct_free_f AccelerationControl_free;
asn_struct_print_f AccelerationControl_print;
asn_constr_check_f AccelerationControl_constraint;
ber_type_decoder_f AccelerationControl_decode_ber;
der_type_encoder_f AccelerationControl_encode_der;
xer_type_decoder_f AccelerationControl_decode_xer;
xer_type_encoder_f AccelerationControl_encode_xer;
jer_type_encoder_f AccelerationControl_encode_jer;
oer_type_decoder_f AccelerationControl_decode_oer;
oer_type_encoder_f AccelerationControl_encode_oer;
per_type_decoder_f AccelerationControl_decode_uper;
per_type_encoder_f AccelerationControl_encode_uper;
per_type_decoder_f AccelerationControl_decode_aper;
per_type_encoder_f AccelerationControl_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AccelerationControl_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AccidentSubCauseCode.h"
int
AccidentSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 255L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..255) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_type_AccidentSubCauseCode_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AccidentSubCauseCode_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode = {
"AccidentSubCauseCode",
"AccidentSubCauseCode",
&asn_OP_NativeInteger,
asn_DEF_AccidentSubCauseCode_tags_1,
sizeof(asn_DEF_AccidentSubCauseCode_tags_1)
/sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */
asn_DEF_AccidentSubCauseCode_tags_1, /* Same as above */
sizeof(asn_DEF_AccidentSubCauseCode_tags_1)
/sizeof(asn_DEF_AccidentSubCauseCode_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AccidentSubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AccidentSubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AccidentSubCauseCode_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,59 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AccidentSubCauseCode_H_
#define _AccidentSubCauseCode_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AccidentSubCauseCode {
AccidentSubCauseCode_unavailable = 0,
AccidentSubCauseCode_multiVehicleAccident = 1,
AccidentSubCauseCode_heavyAccident = 2,
AccidentSubCauseCode_accidentInvolvingLorry = 3,
AccidentSubCauseCode_accidentInvolvingBus = 4,
AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5,
AccidentSubCauseCode_accidentOnOppositeLane = 6,
AccidentSubCauseCode_unsecuredAccident = 7,
AccidentSubCauseCode_assistanceRequested = 8
} e_AccidentSubCauseCode;
/* AccidentSubCauseCode */
typedef long AccidentSubCauseCode_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AccidentSubCauseCode;
asn_struct_free_f AccidentSubCauseCode_free;
asn_struct_print_f AccidentSubCauseCode_print;
asn_constr_check_f AccidentSubCauseCode_constraint;
ber_type_decoder_f AccidentSubCauseCode_decode_ber;
der_type_encoder_f AccidentSubCauseCode_encode_der;
xer_type_decoder_f AccidentSubCauseCode_decode_xer;
xer_type_encoder_f AccidentSubCauseCode_encode_xer;
jer_type_encoder_f AccidentSubCauseCode_encode_jer;
oer_type_decoder_f AccidentSubCauseCode_decode_oer;
oer_type_encoder_f AccidentSubCauseCode_encode_oer;
per_type_decoder_f AccidentSubCauseCode_decode_uper;
per_type_encoder_f AccidentSubCauseCode_encode_uper;
per_type_decoder_f AccidentSubCauseCode_decode_aper;
per_type_encoder_f AccidentSubCauseCode_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AccidentSubCauseCode_H_ */
#include "asn_internal.h"
@@ -0,0 +1,93 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "ActionID.h"
asn_TYPE_member_t asn_MBR_ActionID_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct ActionID, originatingStationID),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_StationID,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"originatingStationID"
},
{ ATF_NOFLAGS, 0, offsetof(struct ActionID, sequenceNumber),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_SequenceNumber,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"sequenceNumber"
},
};
static const ber_tlv_tag_t asn_DEF_ActionID_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ActionID_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */
};
asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1 = {
sizeof(struct ActionID),
offsetof(struct ActionID, _asn_ctx),
asn_MAP_ActionID_tag2el_1,
2, /* Count of tags in the map */
0, 0, 0, /* Optional elements (not needed) */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_ActionID = {
"ActionID",
"ActionID",
&asn_OP_SEQUENCE,
asn_DEF_ActionID_tags_1,
sizeof(asn_DEF_ActionID_tags_1)
/sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */
asn_DEF_ActionID_tags_1, /* Same as above */
sizeof(asn_DEF_ActionID_tags_1)
/sizeof(asn_DEF_ActionID_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_ActionID_1,
2, /* Elements count */
&asn_SPC_ActionID_specs_1 /* Additional specs */
};
@@ -0,0 +1,42 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _ActionID_H_
#define _ActionID_H_
#include "asn_application.h"
/* Including external dependencies */
#include "StationID.h"
#include "SequenceNumber.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* ActionID */
typedef struct ActionID {
StationID_t originatingStationID;
SequenceNumber_t sequenceNumber;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ActionID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ActionID;
extern asn_SEQUENCE_specifics_t asn_SPC_ActionID_specs_1;
extern asn_TYPE_member_t asn_MBR_ActionID_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _ActionID_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "EfcDsrcApplication"
* found in "ISO14906-0-6.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "ActualNumberOfPassengers.h"
int
ActualNumberOfPassengers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 255L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using Int1,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_type_ActualNumberOfPassengers_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..255) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_type_ActualNumberOfPassengers_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_ActualNumberOfPassengers_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_ActualNumberOfPassengers = {
"ActualNumberOfPassengers",
"ActualNumberOfPassengers",
&asn_OP_NativeInteger,
asn_DEF_ActualNumberOfPassengers_tags_1,
sizeof(asn_DEF_ActualNumberOfPassengers_tags_1)
/sizeof(asn_DEF_ActualNumberOfPassengers_tags_1[0]), /* 1 */
asn_DEF_ActualNumberOfPassengers_tags_1, /* Same as above */
sizeof(asn_DEF_ActualNumberOfPassengers_tags_1)
/sizeof(asn_DEF_ActualNumberOfPassengers_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_ActualNumberOfPassengers_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_ActualNumberOfPassengers_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
ActualNumberOfPassengers_constraint
},
0, 0, /* No members */
0 /* No specifics */
};
@@ -0,0 +1,46 @@
/*
* Generated by asn1c
* From ASN.1 module "EfcDsrcApplication"
* found in "ISO14906-0-6.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _ActualNumberOfPassengers_H_
#define _ActualNumberOfPassengers_H_
#include "asn_application.h"
/* Including external dependencies */
#include "Int1.h"
#ifdef __cplusplus
extern "C" {
#endif
/* ActualNumberOfPassengers */
typedef Int1_t ActualNumberOfPassengers_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ActualNumberOfPassengers;
asn_struct_free_f ActualNumberOfPassengers_free;
asn_struct_print_f ActualNumberOfPassengers_print;
asn_constr_check_f ActualNumberOfPassengers_constraint;
ber_type_decoder_f ActualNumberOfPassengers_decode_ber;
der_type_encoder_f ActualNumberOfPassengers_encode_der;
xer_type_decoder_f ActualNumberOfPassengers_decode_xer;
xer_type_encoder_f ActualNumberOfPassengers_encode_xer;
jer_type_encoder_f ActualNumberOfPassengers_encode_jer;
oer_type_decoder_f ActualNumberOfPassengers_decode_oer;
oer_type_encoder_f ActualNumberOfPassengers_encode_oer;
per_type_decoder_f ActualNumberOfPassengers_decode_uper;
per_type_encoder_f ActualNumberOfPassengers_encode_uper;
per_type_decoder_f ActualNumberOfPassengers_decode_aper;
per_type_encoder_f ActualNumberOfPassengers_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _ActualNumberOfPassengers_H_ */
#include "asn_internal.h"
@@ -0,0 +1,130 @@
/*
* Generated by asn1c
* From ASN.1 module "EfcDsrcApplication"
* found in "ISO14906-0-6.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AddRq.h"
static int
memb_attributeId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 127L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_memb_attributeId_constr_2 CC_NOTUSED = {
{ 0, 0 },
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_memb_attributeId_constr_2 CC_NOTUSED = {
{ APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static asn_TYPE_member_t asn_MBR_AddRq_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct AddRq, attributeId),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_NativeInteger,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_memb_attributeId_constr_2,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_memb_attributeId_constr_2,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
memb_attributeId_constraint_1
},
0, 0, /* No default value */
"attributeId"
},
{ ATF_NOFLAGS, 0, offsetof(struct AddRq, value),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_NativeInteger,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"value"
},
};
static const ber_tlv_tag_t asn_DEF_AddRq_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AddRq_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* attributeId */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* value */
};
static asn_SEQUENCE_specifics_t asn_SPC_AddRq_specs_1 = {
sizeof(struct AddRq),
offsetof(struct AddRq, _asn_ctx),
asn_MAP_AddRq_tag2el_1,
2, /* Count of tags in the map */
0, 0, 0, /* Optional elements (not needed) */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AddRq = {
"AddRq",
"AddRq",
&asn_OP_SEQUENCE,
asn_DEF_AddRq_tags_1,
sizeof(asn_DEF_AddRq_tags_1)
/sizeof(asn_DEF_AddRq_tags_1[0]), /* 1 */
asn_DEF_AddRq_tags_1, /* Same as above */
sizeof(asn_DEF_AddRq_tags_1)
/sizeof(asn_DEF_AddRq_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AddRq_1,
2, /* Elements count */
&asn_SPC_AddRq_specs_1 /* Additional specs */
};
@@ -0,0 +1,39 @@
/*
* Generated by asn1c
* From ASN.1 module "EfcDsrcApplication"
* found in "ISO14906-0-6.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AddRq_H_
#define _AddRq_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* AddRq */
typedef struct AddRq {
long attributeId;
long value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AddRq_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AddRq;
#ifdef __cplusplus
}
#endif
#endif /* _AddRq_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AdverseWeatherCondition-AdhesionSubCauseCode.h"
int
AdverseWeatherCondition_AdhesionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 255L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..255) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode = {
"AdverseWeatherCondition-AdhesionSubCauseCode",
"AdverseWeatherCondition-AdhesionSubCauseCode",
&asn_OP_NativeInteger,
asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1,
sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1)
/sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */
asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */
sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1)
/sizeof(asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AdverseWeatherCondition_AdhesionSubCauseCode_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,61 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AdverseWeatherCondition_AdhesionSubCauseCode_H_
#define _AdverseWeatherCondition_AdhesionSubCauseCode_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AdverseWeatherCondition_AdhesionSubCauseCode {
AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0,
AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1,
AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2,
AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3,
AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4,
AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5,
AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6,
AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7,
AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8,
AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9,
AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10
} e_AdverseWeatherCondition_AdhesionSubCauseCode;
/* AdverseWeatherCondition-AdhesionSubCauseCode */
typedef long AdverseWeatherCondition_AdhesionSubCauseCode_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_AdhesionSubCauseCode;
asn_struct_free_f AdverseWeatherCondition_AdhesionSubCauseCode_free;
asn_struct_print_f AdverseWeatherCondition_AdhesionSubCauseCode_print;
asn_constr_check_f AdverseWeatherCondition_AdhesionSubCauseCode_constraint;
ber_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber;
der_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_der;
xer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer;
xer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer;
jer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_jer;
oer_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer;
oer_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer;
per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper;
per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper;
per_type_decoder_f AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper;
per_type_encoder_f AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AdverseWeatherCondition_AdhesionSubCauseCode_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h"
int
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 255L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..255) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = {
"AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode",
"AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode",
&asn_OP_NativeInteger,
asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1,
sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1)
/sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */
asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */
sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1)
/sizeof(asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,57 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_
#define _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode {
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0,
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1,
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2,
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3,
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4,
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5,
AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6
} e_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode;
/* AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */
typedef long AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode;
asn_struct_free_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free;
asn_struct_print_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print;
asn_constr_check_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint;
ber_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber;
der_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der;
xer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer;
xer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer;
jer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_jer;
oer_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer;
oer_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer;
per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper;
per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper;
per_type_decoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper;
per_type_encoder_f AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h"
int
AdverseWeatherCondition_PrecipitationSubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 255L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..255) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode = {
"AdverseWeatherCondition-PrecipitationSubCauseCode",
"AdverseWeatherCondition-PrecipitationSubCauseCode",
&asn_OP_NativeInteger,
asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1,
sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1)
/sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */
asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */
sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1)
/sizeof(asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AdverseWeatherCondition_PrecipitationSubCauseCode_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,54 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AdverseWeatherCondition_PrecipitationSubCauseCode_H_
#define _AdverseWeatherCondition_PrecipitationSubCauseCode_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AdverseWeatherCondition_PrecipitationSubCauseCode {
AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0,
AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1,
AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2,
AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3
} e_AdverseWeatherCondition_PrecipitationSubCauseCode;
/* AdverseWeatherCondition-PrecipitationSubCauseCode */
typedef long AdverseWeatherCondition_PrecipitationSubCauseCode_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_PrecipitationSubCauseCode;
asn_struct_free_f AdverseWeatherCondition_PrecipitationSubCauseCode_free;
asn_struct_print_f AdverseWeatherCondition_PrecipitationSubCauseCode_print;
asn_constr_check_f AdverseWeatherCondition_PrecipitationSubCauseCode_constraint;
ber_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber;
der_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der;
xer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer;
xer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer;
jer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_jer;
oer_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer;
oer_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer;
per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper;
per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper;
per_type_decoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper;
per_type_encoder_f AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AdverseWeatherCondition-VisibilitySubCauseCode.h"
int
AdverseWeatherCondition_VisibilitySubCauseCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 255L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..255) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode = {
"AdverseWeatherCondition-VisibilitySubCauseCode",
"AdverseWeatherCondition-VisibilitySubCauseCode",
&asn_OP_NativeInteger,
asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1,
sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1)
/sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */
asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */
sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1)
/sizeof(asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AdverseWeatherCondition_VisibilitySubCauseCode_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,59 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AdverseWeatherCondition_VisibilitySubCauseCode_H_
#define _AdverseWeatherCondition_VisibilitySubCauseCode_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AdverseWeatherCondition_VisibilitySubCauseCode {
AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0,
AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1,
AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2,
AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3,
AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4,
AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5,
AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6,
AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7,
AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8
} e_AdverseWeatherCondition_VisibilitySubCauseCode;
/* AdverseWeatherCondition-VisibilitySubCauseCode */
typedef long AdverseWeatherCondition_VisibilitySubCauseCode_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AdverseWeatherCondition_VisibilitySubCauseCode;
asn_struct_free_f AdverseWeatherCondition_VisibilitySubCauseCode_free;
asn_struct_print_f AdverseWeatherCondition_VisibilitySubCauseCode_print;
asn_constr_check_f AdverseWeatherCondition_VisibilitySubCauseCode_constraint;
ber_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber;
der_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_der;
xer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer;
xer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer;
jer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_jer;
oer_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer;
oer_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer;
per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper;
per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper;
per_type_decoder_f AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper;
per_type_encoder_f AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AdverseWeatherCondition_VisibilitySubCauseCode_H_ */
#include "asn_internal.h"
@@ -0,0 +1,288 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AdvisorySpeed.h"
static int
memb_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
size_t size;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
/* Determine the number of elements */
size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
if((size >= 1UL && size <= 4UL)) {
/* Perform validation of the inner elements */
return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key);
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_type_regional_constr_7 CC_NOTUSED = {
{ 0, 0 },
-1 /* (SIZE(1..4)) */};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_type_regional_constr_7 CC_NOTUSED = {
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
{ APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */,
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_memb_regional_constr_7 CC_NOTUSED = {
{ 0, 0 },
-1 /* (SIZE(1..4)) */};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_memb_regional_constr_7 CC_NOTUSED = {
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
{ APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */,
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static asn_TYPE_member_t asn_MBR_regional_7[] = {
{ ATF_POINTER, 0, 0,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
&asn_DEF_Reg_AdvisorySpeed,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
""
},
};
static const ber_tlv_tag_t asn_DEF_regional_tags_7[] = {
(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_SET_OF_specifics_t asn_SPC_regional_specs_7 = {
sizeof(struct AdvisorySpeed__regional),
offsetof(struct AdvisorySpeed__regional, _asn_ctx),
0, /* XER encoding is XMLDelimitedItemList */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_regional_7 = {
"regional",
"regional",
&asn_OP_SEQUENCE_OF,
asn_DEF_regional_tags_7,
sizeof(asn_DEF_regional_tags_7)
/sizeof(asn_DEF_regional_tags_7[0]) - 1, /* 1 */
asn_DEF_regional_tags_7, /* Same as above */
sizeof(asn_DEF_regional_tags_7)
/sizeof(asn_DEF_regional_tags_7[0]), /* 2 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_regional_constr_7,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_regional_constr_7,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_OF_constraint
},
asn_MBR_regional_7,
1, /* Single element */
&asn_SPC_regional_specs_7 /* Additional specs */
};
asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct AdvisorySpeed, type),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_AdvisorySpeedType,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"type"
},
{ ATF_POINTER, 5, offsetof(struct AdvisorySpeed, speed),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_SpeedAdvice,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"speed"
},
{ ATF_POINTER, 4, offsetof(struct AdvisorySpeed, confidence),
(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_SpeedConfidenceIso,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"confidence"
},
{ ATF_POINTER, 3, offsetof(struct AdvisorySpeed, distance),
(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_ZoneLength,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"distance"
},
{ ATF_POINTER, 2, offsetof(struct AdvisorySpeed, Class),
(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_RestrictionClassID,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"class"
},
{ ATF_POINTER, 1, offsetof(struct AdvisorySpeed, regional),
(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
0,
&asn_DEF_regional_7,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_memb_regional_constr_7,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_memb_regional_constr_7,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
memb_regional_constraint_1
},
0, 0, /* No default value */
"regional"
},
};
static const int asn_MAP_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 };
static const ber_tlv_tag_t asn_DEF_AdvisorySpeed_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AdvisorySpeed_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */
{ (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */
{ (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */
{ (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */
};
asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1 = {
sizeof(struct AdvisorySpeed),
offsetof(struct AdvisorySpeed, _asn_ctx),
asn_MAP_AdvisorySpeed_tag2el_1,
6, /* Count of tags in the map */
asn_MAP_AdvisorySpeed_oms_1, /* Optional members */
5, 0, /* Root/Additions */
6, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed = {
"AdvisorySpeed",
"AdvisorySpeed",
&asn_OP_SEQUENCE,
asn_DEF_AdvisorySpeed_tags_1,
sizeof(asn_DEF_AdvisorySpeed_tags_1)
/sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */
asn_DEF_AdvisorySpeed_tags_1, /* Same as above */
sizeof(asn_DEF_AdvisorySpeed_tags_1)
/sizeof(asn_DEF_AdvisorySpeed_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AdvisorySpeed_1,
6, /* Elements count */
&asn_SPC_AdvisorySpeed_specs_1 /* Additional specs */
};
@@ -0,0 +1,66 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AdvisorySpeed_H_
#define _AdvisorySpeed_H_
#include "asn_application.h"
/* Including external dependencies */
#include "AdvisorySpeedType.h"
#include "SpeedAdvice.h"
#include "SpeedConfidenceIso.h"
#include "ZoneLength.h"
#include "RestrictionClassID.h"
#include "asn_SEQUENCE_OF.h"
#include "constr_SEQUENCE_OF.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct Reg_AdvisorySpeed;
/* AdvisorySpeed */
typedef struct AdvisorySpeed {
AdvisorySpeedType_t type;
SpeedAdvice_t *speed; /* OPTIONAL */
SpeedConfidenceIso_t *confidence; /* OPTIONAL */
ZoneLength_t *distance; /* OPTIONAL */
RestrictionClassID_t *Class; /* OPTIONAL */
struct AdvisorySpeed__regional {
A_SEQUENCE_OF(struct Reg_AdvisorySpeed) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} *regional;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AdvisorySpeed_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeed;
extern asn_SEQUENCE_specifics_t asn_SPC_AdvisorySpeed_specs_1;
extern asn_TYPE_member_t asn_MBR_AdvisorySpeed_1[6];
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include "RegionalExtension.h"
#endif /* _AdvisorySpeed_H_ */
#include "asn_internal.h"
@@ -0,0 +1,78 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AdvisorySpeedList.h"
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = {
{ 0, 0 },
-1 /* (SIZE(1..16)) */};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1 CC_NOTUSED = {
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
{ APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */,
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[] = {
{ ATF_POINTER, 0, 0,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
&asn_DEF_AdvisorySpeed,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
""
},
};
static const ber_tlv_tag_t asn_DEF_AdvisorySpeedList_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1 = {
sizeof(struct AdvisorySpeedList),
offsetof(struct AdvisorySpeedList, _asn_ctx),
0, /* XER encoding is XMLDelimitedItemList */
};
asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList = {
"AdvisorySpeedList",
"AdvisorySpeedList",
&asn_OP_SEQUENCE_OF,
asn_DEF_AdvisorySpeedList_tags_1,
sizeof(asn_DEF_AdvisorySpeedList_tags_1)
/sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */
asn_DEF_AdvisorySpeedList_tags_1, /* Same as above */
sizeof(asn_DEF_AdvisorySpeedList_tags_1)
/sizeof(asn_DEF_AdvisorySpeedList_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AdvisorySpeedList_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AdvisorySpeedList_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_OF_constraint
},
asn_MBR_AdvisorySpeedList_1,
1, /* Single element */
&asn_SPC_AdvisorySpeedList_specs_1 /* Additional specs */
};
@@ -0,0 +1,48 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AdvisorySpeedList_H_
#define _AdvisorySpeedList_H_
#include "asn_application.h"
/* Including external dependencies */
#include "asn_SEQUENCE_OF.h"
#include "constr_SEQUENCE_OF.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct AdvisorySpeed;
/* AdvisorySpeedList */
typedef struct AdvisorySpeedList {
A_SEQUENCE_OF(struct AdvisorySpeed) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AdvisorySpeedList_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedList;
extern asn_SET_OF_specifics_t asn_SPC_AdvisorySpeedList_specs_1;
extern asn_TYPE_member_t asn_MBR_AdvisorySpeedList_1[1];
extern asn_oer_constraints_t asn_OER_type_AdvisorySpeedList_constr_1;
extern asn_per_constraints_t asn_PER_type_AdvisorySpeedList_constr_1;
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include "AdvisorySpeed.h"
#endif /* _AdvisorySpeedList_H_ */
#include "asn_internal.h"
@@ -0,0 +1,77 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AdvisorySpeedType.h"
/*
* This type is implemented using NativeEnumerated,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = {
{ 0, 0 },
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const asn_INTEGER_enum_map_t asn_MAP_AdvisorySpeedType_value2enum_1[] = {
{ 0, 4, "none" },
{ 1, 9, "greenwave" },
{ 2, 8, "ecoDrive" },
{ 3, 7, "transit" }
/* This list is extensible */
};
static const unsigned int asn_MAP_AdvisorySpeedType_enum2value_1[] = {
2, /* ecoDrive(2) */
1, /* greenwave(1) */
0, /* none(0) */
3 /* transit(3) */
/* This list is extensible */
};
const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1 = {
asn_MAP_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */
asn_MAP_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */
4, /* Number of elements in the maps */
5, /* Extensions before this member */
1, /* Strict enumeration */
0, /* Native long size */
0
};
static const ber_tlv_tag_t asn_DEF_AdvisorySpeedType_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType = {
"AdvisorySpeedType",
"AdvisorySpeedType",
&asn_OP_NativeEnumerated,
asn_DEF_AdvisorySpeedType_tags_1,
sizeof(asn_DEF_AdvisorySpeedType_tags_1)
/sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */
asn_DEF_AdvisorySpeedType_tags_1, /* Same as above */
sizeof(asn_DEF_AdvisorySpeedType_tags_1)
/sizeof(asn_DEF_AdvisorySpeedType_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AdvisorySpeedType_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AdvisorySpeedType_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
NativeEnumerated_constraint
},
0, 0, /* Defined elsewhere */
&asn_SPC_AdvisorySpeedType_specs_1 /* Additional specs */
};
@@ -0,0 +1,60 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AdvisorySpeedType_H_
#define _AdvisorySpeedType_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeEnumerated.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AdvisorySpeedType {
AdvisorySpeedType_none = 0,
AdvisorySpeedType_greenwave = 1,
AdvisorySpeedType_ecoDrive = 2,
AdvisorySpeedType_transit = 3
/*
* Enumeration is extensible
*/
} e_AdvisorySpeedType;
/* AdvisorySpeedType */
typedef long AdvisorySpeedType_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AdvisorySpeedType_constr_1;
extern asn_per_constraints_t asn_PER_type_AdvisorySpeedType_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AdvisorySpeedType;
extern const asn_INTEGER_specifics_t asn_SPC_AdvisorySpeedType_specs_1;
asn_struct_free_f AdvisorySpeedType_free;
asn_struct_print_f AdvisorySpeedType_print;
asn_constr_check_f AdvisorySpeedType_constraint;
ber_type_decoder_f AdvisorySpeedType_decode_ber;
der_type_encoder_f AdvisorySpeedType_encode_der;
xer_type_decoder_f AdvisorySpeedType_decode_xer;
xer_type_encoder_f AdvisorySpeedType_encode_xer;
jer_type_encoder_f AdvisorySpeedType_encode_jer;
oer_type_decoder_f AdvisorySpeedType_decode_oer;
oer_type_encoder_f AdvisorySpeedType_encode_oer;
per_type_decoder_f AdvisorySpeedType_decode_uper;
per_type_encoder_f AdvisorySpeedType_encode_uper;
per_type_decoder_f AdvisorySpeedType_decode_aper;
per_type_encoder_f AdvisorySpeedType_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AdvisorySpeedType_H_ */
#include "asn_internal.h"
@@ -0,0 +1,179 @@
/*
* Generated by asn1c
* From ASN.1 module "DENM-PDU-Descriptions"
* found in "EN302637-3v131-DENM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AlacarteContainer.h"
asn_TYPE_member_t asn_MBR_AlacarteContainer_1[] = {
{ ATF_POINTER, 6, offsetof(struct AlacarteContainer, lanePosition),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_LanePosition,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"lanePosition"
},
{ ATF_POINTER, 5, offsetof(struct AlacarteContainer, impactReduction),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_ImpactReductionContainer,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"impactReduction"
},
{ ATF_POINTER, 4, offsetof(struct AlacarteContainer, externalTemperature),
(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_ITS_Container_Temperature,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"externalTemperature"
},
{ ATF_POINTER, 3, offsetof(struct AlacarteContainer, roadWorks),
(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_RoadWorksContainerExtended,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"roadWorks"
},
{ ATF_POINTER, 2, offsetof(struct AlacarteContainer, positioningSolution),
(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_PositioningSolutionType,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"positioningSolution"
},
{ ATF_POINTER, 1, offsetof(struct AlacarteContainer, stationaryVehicle),
(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_StationaryVehicleContainer,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"stationaryVehicle"
},
};
static const int asn_MAP_AlacarteContainer_oms_1[] = { 0, 1, 2, 3, 4, 5 };
static const ber_tlv_tag_t asn_DEF_AlacarteContainer_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AlacarteContainer_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lanePosition */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* impactReduction */
{ (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* externalTemperature */
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadWorks */
{ (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* positioningSolution */
{ (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* stationaryVehicle */
};
asn_SEQUENCE_specifics_t asn_SPC_AlacarteContainer_specs_1 = {
sizeof(struct AlacarteContainer),
offsetof(struct AlacarteContainer, _asn_ctx),
asn_MAP_AlacarteContainer_tag2el_1,
6, /* Count of tags in the map */
asn_MAP_AlacarteContainer_oms_1, /* Optional members */
6, 0, /* Root/Additions */
6, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AlacarteContainer = {
"AlacarteContainer",
"AlacarteContainer",
&asn_OP_SEQUENCE,
asn_DEF_AlacarteContainer_tags_1,
sizeof(asn_DEF_AlacarteContainer_tags_1)
/sizeof(asn_DEF_AlacarteContainer_tags_1[0]), /* 1 */
asn_DEF_AlacarteContainer_tags_1, /* Same as above */
sizeof(asn_DEF_AlacarteContainer_tags_1)
/sizeof(asn_DEF_AlacarteContainer_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AlacarteContainer_1,
6, /* Elements count */
&asn_SPC_AlacarteContainer_specs_1 /* Additional specs */
};
@@ -0,0 +1,61 @@
/*
* Generated by asn1c
* From ASN.1 module "DENM-PDU-Descriptions"
* found in "EN302637-3v131-DENM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AlacarteContainer_H_
#define _AlacarteContainer_H_
#include "asn_application.h"
/* Including external dependencies */
#include "LanePosition.h"
#include "ITS-Container_Temperature.h"
#include "PositioningSolutionType.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ImpactReductionContainer;
struct RoadWorksContainerExtended;
struct StationaryVehicleContainer;
/* AlacarteContainer */
typedef struct AlacarteContainer {
LanePosition_t *lanePosition; /* OPTIONAL */
struct ImpactReductionContainer *impactReduction; /* OPTIONAL */
ITS_Container_Temperature_t *externalTemperature; /* OPTIONAL */
struct RoadWorksContainerExtended *roadWorks; /* OPTIONAL */
PositioningSolutionType_t *positioningSolution; /* OPTIONAL */
struct StationaryVehicleContainer *stationaryVehicle; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AlacarteContainer_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AlacarteContainer;
extern asn_SEQUENCE_specifics_t asn_SPC_AlacarteContainer_specs_1;
extern asn_TYPE_member_t asn_MBR_AlacarteContainer_1[6];
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include "ImpactReductionContainer.h"
#include "RoadWorksContainerExtended.h"
#include "StationaryVehicleContainer.h"
#endif /* _AlacarteContainer_H_ */
#include "asn_internal.h"
@@ -0,0 +1,89 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AllowedManeuvers.h"
int
AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
size_t size;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
if(st->size > 0) {
/* Size in bits */
size = 8 * st->size - (st->bits_unused & 0x07);
} else {
size = 0;
}
if((size == 12UL)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using BIT_STRING,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1 CC_NOTUSED = {
{ 0, 0 },
12 /* (SIZE(12..12)) */};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1 CC_NOTUSED = {
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
{ APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */,
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
asn_jer_constraints_t asn_JER_type_AllowedManeuvers_constr_1 CC_NOTUSED = {
12};
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AllowedManeuvers_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers = {
"AllowedManeuvers",
"AllowedManeuvers",
&asn_OP_BIT_STRING,
asn_DEF_AllowedManeuvers_tags_1,
sizeof(asn_DEF_AllowedManeuvers_tags_1)
/sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */
asn_DEF_AllowedManeuvers_tags_1, /* Same as above */
sizeof(asn_DEF_AllowedManeuvers_tags_1)
/sizeof(asn_DEF_AllowedManeuvers_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AllowedManeuvers_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AllowedManeuvers_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
&asn_JER_type_AllowedManeuvers_constr_1,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AllowedManeuvers_constraint
},
0, 0, /* Defined elsewhere */
&asn_SPC_BIT_STRING_specs /* Additional specs */
};
@@ -0,0 +1,65 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AllowedManeuvers_H_
#define _AllowedManeuvers_H_
#include "asn_application.h"
/* Including external dependencies */
#include "BIT_STRING.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AllowedManeuvers {
AllowedManeuvers_maneuverStraightAllowed = 0,
AllowedManeuvers_maneuverLeftAllowed = 1,
AllowedManeuvers_maneuverRightAllowed = 2,
AllowedManeuvers_maneuverUTurnAllowed = 3,
AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4,
AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5,
AllowedManeuvers_maneuverLaneChangeAllowed = 6,
AllowedManeuvers_maneuverNoStoppingAllowed = 7,
AllowedManeuvers_yieldAllwaysRequired = 8,
AllowedManeuvers_goWithHalt = 9,
AllowedManeuvers_caution = 10,
AllowedManeuvers_reserved1 = 11
} e_AllowedManeuvers;
/* AllowedManeuvers */
typedef BIT_STRING_t AllowedManeuvers_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AllowedManeuvers_constr_1;
extern asn_per_constraints_t asn_PER_type_AllowedManeuvers_constr_1;
extern asn_jer_constraints_t asn_JER_type_AllowedManeuvers_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AllowedManeuvers;
asn_struct_free_f AllowedManeuvers_free;
asn_struct_print_f AllowedManeuvers_print;
asn_constr_check_f AllowedManeuvers_constraint;
ber_type_decoder_f AllowedManeuvers_decode_ber;
der_type_encoder_f AllowedManeuvers_encode_der;
xer_type_decoder_f AllowedManeuvers_decode_xer;
xer_type_encoder_f AllowedManeuvers_encode_xer;
jer_type_encoder_f AllowedManeuvers_encode_jer;
oer_type_decoder_f AllowedManeuvers_decode_oer;
oer_type_encoder_f AllowedManeuvers_encode_oer;
per_type_decoder_f AllowedManeuvers_decode_uper;
per_type_encoder_f AllowedManeuvers_encode_uper;
per_type_decoder_f AllowedManeuvers_decode_aper;
per_type_encoder_f AllowedManeuvers_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AllowedManeuvers_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "AVIAEINumberingAndDataStructures"
* found in "ISO14816.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AlphabetIndicator.h"
int
AlphabetIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 63L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AlphabetIndicator_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..63) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AlphabetIndicator_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator = {
"AlphabetIndicator",
"AlphabetIndicator",
&asn_OP_NativeInteger,
asn_DEF_AlphabetIndicator_tags_1,
sizeof(asn_DEF_AlphabetIndicator_tags_1)
/sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */
asn_DEF_AlphabetIndicator_tags_1, /* Same as above */
sizeof(asn_DEF_AlphabetIndicator_tags_1)
/sizeof(asn_DEF_AlphabetIndicator_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AlphabetIndicator_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AlphabetIndicator_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AlphabetIndicator_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,64 @@
/*
* Generated by asn1c
* From ASN.1 module "AVIAEINumberingAndDataStructures"
* found in "ISO14816.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AlphabetIndicator_H_
#define _AlphabetIndicator_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AlphabetIndicator {
AlphabetIndicator_latinAlphabetNo1 = 0,
AlphabetIndicator_latinAlphabetNo2 = 1,
AlphabetIndicator_latinAlphabetNo3 = 2,
AlphabetIndicator_latinAlphabetNo4 = 3,
AlphabetIndicator_latinCyrillicAlphabet = 4,
AlphabetIndicator_latinArabicAlphabet = 5,
AlphabetIndicator_latinGreekAlphabet = 6,
AlphabetIndicator_latinHebrewAlphabet = 7,
AlphabetIndicator_latinAlphabetNo5 = 8,
AlphabetIndicator_latinAlphabetNo6 = 9,
AlphabetIndicator_twoOctetBMP = 10,
AlphabetIndicator_fourOctetCanonical = 11
} e_AlphabetIndicator;
/* AlphabetIndicator */
typedef long AlphabetIndicator_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AlphabetIndicator_constr_1;
extern asn_per_constraints_t asn_PER_type_AlphabetIndicator_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AlphabetIndicator;
asn_struct_free_f AlphabetIndicator_free;
asn_struct_print_f AlphabetIndicator_print;
asn_constr_check_f AlphabetIndicator_constraint;
ber_type_decoder_f AlphabetIndicator_decode_ber;
der_type_encoder_f AlphabetIndicator_encode_der;
xer_type_decoder_f AlphabetIndicator_decode_xer;
xer_type_encoder_f AlphabetIndicator_encode_xer;
jer_type_encoder_f AlphabetIndicator_encode_jer;
oer_type_decoder_f AlphabetIndicator_decode_oer;
oer_type_encoder_f AlphabetIndicator_encode_oer;
per_type_decoder_f AlphabetIndicator_decode_uper;
per_type_encoder_f AlphabetIndicator_encode_uper;
per_type_decoder_f AlphabetIndicator_decode_aper;
per_type_encoder_f AlphabetIndicator_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AlphabetIndicator_H_ */
#include "asn_internal.h"
@@ -0,0 +1,93 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "Altitude.h"
asn_TYPE_member_t asn_MBR_Altitude_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeValue),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_AltitudeValue,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"altitudeValue"
},
{ ATF_NOFLAGS, 0, offsetof(struct Altitude, altitudeConfidence),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_AltitudeConfidence,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"altitudeConfidence"
},
};
static const ber_tlv_tag_t asn_DEF_Altitude_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_Altitude_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */
};
asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1 = {
sizeof(struct Altitude),
offsetof(struct Altitude, _asn_ctx),
asn_MAP_Altitude_tag2el_1,
2, /* Count of tags in the map */
0, 0, 0, /* Optional elements (not needed) */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_Altitude = {
"Altitude",
"Altitude",
&asn_OP_SEQUENCE,
asn_DEF_Altitude_tags_1,
sizeof(asn_DEF_Altitude_tags_1)
/sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */
asn_DEF_Altitude_tags_1, /* Same as above */
sizeof(asn_DEF_Altitude_tags_1)
/sizeof(asn_DEF_Altitude_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_Altitude_1,
2, /* Elements count */
&asn_SPC_Altitude_specs_1 /* Additional specs */
};
@@ -0,0 +1,42 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _Altitude_H_
#define _Altitude_H_
#include "asn_application.h"
/* Including external dependencies */
#include "AltitudeValue.h"
#include "AltitudeConfidence.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Altitude */
typedef struct Altitude {
AltitudeValue_t altitudeValue;
AltitudeConfidence_t altitudeConfidence;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} Altitude_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Altitude;
extern asn_SEQUENCE_specifics_t asn_SPC_Altitude_specs_1;
extern asn_TYPE_member_t asn_MBR_Altitude_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _Altitude_H_ */
#include "asn_internal.h"
@@ -0,0 +1,99 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AltitudeConfidence.h"
/*
* This type is implemented using NativeEnumerated,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1 CC_NOTUSED = {
{ 0, 0 },
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const asn_INTEGER_enum_map_t asn_MAP_AltitudeConfidence_value2enum_1[] = {
{ 0, 10, "alt-000-01" },
{ 1, 10, "alt-000-02" },
{ 2, 10, "alt-000-05" },
{ 3, 10, "alt-000-10" },
{ 4, 10, "alt-000-20" },
{ 5, 10, "alt-000-50" },
{ 6, 10, "alt-001-00" },
{ 7, 10, "alt-002-00" },
{ 8, 10, "alt-005-00" },
{ 9, 10, "alt-010-00" },
{ 10, 10, "alt-020-00" },
{ 11, 10, "alt-050-00" },
{ 12, 10, "alt-100-00" },
{ 13, 10, "alt-200-00" },
{ 14, 10, "outOfRange" },
{ 15, 11, "unavailable" }
};
static const unsigned int asn_MAP_AltitudeConfidence_enum2value_1[] = {
0, /* alt-000-01(0) */
1, /* alt-000-02(1) */
2, /* alt-000-05(2) */
3, /* alt-000-10(3) */
4, /* alt-000-20(4) */
5, /* alt-000-50(5) */
6, /* alt-001-00(6) */
7, /* alt-002-00(7) */
8, /* alt-005-00(8) */
9, /* alt-010-00(9) */
10, /* alt-020-00(10) */
11, /* alt-050-00(11) */
12, /* alt-100-00(12) */
13, /* alt-200-00(13) */
14, /* outOfRange(14) */
15 /* unavailable(15) */
};
const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1 = {
asn_MAP_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */
asn_MAP_AltitudeConfidence_enum2value_1, /* N => "tag"; sorted by N */
16, /* Number of elements in the maps */
0, /* Enumeration is not extensible */
1, /* Strict enumeration */
0, /* Native long size */
0
};
static const ber_tlv_tag_t asn_DEF_AltitudeConfidence_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence = {
"AltitudeConfidence",
"AltitudeConfidence",
&asn_OP_NativeEnumerated,
asn_DEF_AltitudeConfidence_tags_1,
sizeof(asn_DEF_AltitudeConfidence_tags_1)
/sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */
asn_DEF_AltitudeConfidence_tags_1, /* Same as above */
sizeof(asn_DEF_AltitudeConfidence_tags_1)
/sizeof(asn_DEF_AltitudeConfidence_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AltitudeConfidence_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AltitudeConfidence_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
NativeEnumerated_constraint
},
0, 0, /* Defined elsewhere */
&asn_SPC_AltitudeConfidence_specs_1 /* Additional specs */
};
@@ -0,0 +1,69 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AltitudeConfidence_H_
#define _AltitudeConfidence_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeEnumerated.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AltitudeConfidence {
AltitudeConfidence_alt_000_01 = 0,
AltitudeConfidence_alt_000_02 = 1,
AltitudeConfidence_alt_000_05 = 2,
AltitudeConfidence_alt_000_10 = 3,
AltitudeConfidence_alt_000_20 = 4,
AltitudeConfidence_alt_000_50 = 5,
AltitudeConfidence_alt_001_00 = 6,
AltitudeConfidence_alt_002_00 = 7,
AltitudeConfidence_alt_005_00 = 8,
AltitudeConfidence_alt_010_00 = 9,
AltitudeConfidence_alt_020_00 = 10,
AltitudeConfidence_alt_050_00 = 11,
AltitudeConfidence_alt_100_00 = 12,
AltitudeConfidence_alt_200_00 = 13,
AltitudeConfidence_outOfRange = 14,
AltitudeConfidence_unavailable = 15
} e_AltitudeConfidence;
/* AltitudeConfidence */
typedef long AltitudeConfidence_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AltitudeConfidence_constr_1;
extern asn_per_constraints_t asn_PER_type_AltitudeConfidence_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AltitudeConfidence;
extern const asn_INTEGER_specifics_t asn_SPC_AltitudeConfidence_specs_1;
asn_struct_free_f AltitudeConfidence_free;
asn_struct_print_f AltitudeConfidence_print;
asn_constr_check_f AltitudeConfidence_constraint;
ber_type_decoder_f AltitudeConfidence_decode_ber;
der_type_encoder_f AltitudeConfidence_encode_der;
xer_type_decoder_f AltitudeConfidence_decode_xer;
xer_type_encoder_f AltitudeConfidence_encode_xer;
jer_type_encoder_f AltitudeConfidence_encode_jer;
oer_type_decoder_f AltitudeConfidence_decode_oer;
oer_type_encoder_f AltitudeConfidence_encode_oer;
per_type_decoder_f AltitudeConfidence_decode_uper;
per_type_encoder_f AltitudeConfidence_encode_uper;
per_type_decoder_f AltitudeConfidence_decode_aper;
per_type_encoder_f AltitudeConfidence_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AltitudeConfidence_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AltitudeValue.h"
int
AltitudeValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= -100000L && value <= 800001L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1 CC_NOTUSED = {
{ 4, 0 } /* (-100000..800001) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 20, -1, -100000, 800001 } /* (-100000..800001) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AltitudeValue_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AltitudeValue = {
"AltitudeValue",
"AltitudeValue",
&asn_OP_NativeInteger,
asn_DEF_AltitudeValue_tags_1,
sizeof(asn_DEF_AltitudeValue_tags_1)
/sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */
asn_DEF_AltitudeValue_tags_1, /* Same as above */
sizeof(asn_DEF_AltitudeValue_tags_1)
/sizeof(asn_DEF_AltitudeValue_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AltitudeValue_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AltitudeValue_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AltitudeValue_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,55 @@
/*
* Generated by asn1c
* From ASN.1 module "ITS-Container"
* found in "TS102894-2v131-CDD.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AltitudeValue_H_
#define _AltitudeValue_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AltitudeValue {
AltitudeValue_referenceEllipsoidSurface = 0,
AltitudeValue_oneCentimeter = 1,
AltitudeValue_unavailable = 800001
} e_AltitudeValue;
/* AltitudeValue */
typedef long AltitudeValue_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AltitudeValue_constr_1;
extern asn_per_constraints_t asn_PER_type_AltitudeValue_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AltitudeValue;
asn_struct_free_f AltitudeValue_free;
asn_struct_print_f AltitudeValue_print;
asn_constr_check_f AltitudeValue_constraint;
ber_type_decoder_f AltitudeValue_decode_ber;
der_type_encoder_f AltitudeValue_encode_der;
xer_type_decoder_f AltitudeValue_decode_xer;
xer_type_encoder_f AltitudeValue_encode_xer;
jer_type_encoder_f AltitudeValue_encode_jer;
oer_type_decoder_f AltitudeValue_decode_oer;
oer_type_encoder_f AltitudeValue_encode_oer;
per_type_decoder_f AltitudeValue_decode_uper;
per_type_encoder_f AltitudeValue_encode_uper;
per_type_decoder_f AltitudeValue_decode_aper;
per_type_encoder_f AltitudeValue_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AltitudeValue_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "Angle.h"
int
Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 28800L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_Angle_constr_1 CC_NOTUSED = {
{ 2, 1 } /* (0..28800) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_Angle_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_Angle_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_Angle = {
"Angle",
"Angle",
&asn_OP_NativeInteger,
asn_DEF_Angle_tags_1,
sizeof(asn_DEF_Angle_tags_1)
/sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */
asn_DEF_Angle_tags_1, /* Same as above */
sizeof(asn_DEF_Angle_tags_1)
/sizeof(asn_DEF_Angle_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_Angle_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_Angle_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
Angle_constraint
},
0, 0, /* No members */
0 /* No specifics */
};
@@ -0,0 +1,48 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _Angle_H_
#define _Angle_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Angle */
typedef long Angle_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_Angle_constr_1;
extern asn_per_constraints_t asn_PER_type_Angle_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_Angle;
asn_struct_free_f Angle_free;
asn_struct_print_f Angle_print;
asn_constr_check_f Angle_constraint;
ber_type_decoder_f Angle_decode_ber;
der_type_encoder_f Angle_encode_der;
xer_type_decoder_f Angle_decode_xer;
xer_type_encoder_f Angle_encode_xer;
jer_type_encoder_f Angle_encode_jer;
oer_type_decoder_f Angle_decode_oer;
oer_type_encoder_f Angle_encode_oer;
per_type_decoder_f Angle_decode_uper;
per_type_encoder_f Angle_encode_uper;
per_type_decoder_f Angle_decode_aper;
per_type_encoder_f Angle_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _Angle_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AngleConfidence.h"
int
AngleConfidence_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 1L && value <= 127L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AngleConfidence_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (1..127) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AngleConfidence_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AngleConfidence_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AngleConfidence = {
"AngleConfidence",
"AngleConfidence",
&asn_OP_NativeInteger,
asn_DEF_AngleConfidence_tags_1,
sizeof(asn_DEF_AngleConfidence_tags_1)
/sizeof(asn_DEF_AngleConfidence_tags_1[0]), /* 1 */
asn_DEF_AngleConfidence_tags_1, /* Same as above */
sizeof(asn_DEF_AngleConfidence_tags_1)
/sizeof(asn_DEF_AngleConfidence_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AngleConfidence_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AngleConfidence_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AngleConfidence_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,56 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AngleConfidence_H_
#define _AngleConfidence_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AngleConfidence {
AngleConfidence_zeroPointOneDegree = 1,
AngleConfidence_oneDegree = 10,
AngleConfidence_outOfRange = 126,
AngleConfidence_unavailable = 127
} e_AngleConfidence;
/* AngleConfidence */
typedef long AngleConfidence_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AngleConfidence_constr_1;
extern asn_per_constraints_t asn_PER_type_AngleConfidence_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AngleConfidence;
asn_struct_free_f AngleConfidence_free;
asn_struct_print_f AngleConfidence_print;
asn_constr_check_f AngleConfidence_constraint;
ber_type_decoder_f AngleConfidence_decode_ber;
der_type_encoder_f AngleConfidence_encode_der;
xer_type_decoder_f AngleConfidence_decode_xer;
xer_type_encoder_f AngleConfidence_encode_xer;
jer_type_encoder_f AngleConfidence_encode_jer;
oer_type_decoder_f AngleConfidence_decode_oer;
oer_type_encoder_f AngleConfidence_encode_oer;
per_type_decoder_f AngleConfidence_decode_uper;
per_type_encoder_f AngleConfidence_encode_uper;
per_type_decoder_f AngleConfidence_decode_aper;
per_type_encoder_f AngleConfidence_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AngleConfidence_H_ */
#include "asn_internal.h"
@@ -0,0 +1,141 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AnimalSubclass.h"
static int asn_DFL_2_cmp_0(const void *sptr) {
const AnimalSubclassType_t *st = sptr;
if(!st) {
return -1; /* No value is not a default value */
}
/* Test default value 0 */
return (*st != 0);
}
static int asn_DFL_2_set_0(void **sptr) {
AnimalSubclassType_t *st = *sptr;
if(!st) {
st = (*sptr = CALLOC(1, sizeof(*st)));
if(!st) return -1;
}
/* Install default value 0 */
*st = 0;
return 0;
}
static int asn_DFL_3_cmp_0(const void *sptr) {
const ClassConfidence_t *st = sptr;
if(!st) {
return -1; /* No value is not a default value */
}
/* Test default value 0 */
return (*st != 0);
}
static int asn_DFL_3_set_0(void **sptr) {
ClassConfidence_t *st = *sptr;
if(!st) {
st = (*sptr = CALLOC(1, sizeof(*st)));
if(!st) return -1;
}
/* Install default value 0 */
*st = 0;
return 0;
}
asn_TYPE_member_t asn_MBR_AnimalSubclass_1[] = {
{ ATF_NOFLAGS, 2, offsetof(struct AnimalSubclass, type),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_AnimalSubclassType,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
&asn_DFL_2_cmp_0, /* Compare DEFAULT 0 */
&asn_DFL_2_set_0, /* Set DEFAULT 0 */
"type"
},
{ ATF_NOFLAGS, 1, offsetof(struct AnimalSubclass, confidence),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_ClassConfidence,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
&asn_DFL_3_cmp_0, /* Compare DEFAULT 0 */
&asn_DFL_3_set_0, /* Set DEFAULT 0 */
"confidence"
},
};
static const int asn_MAP_AnimalSubclass_oms_1[] = { 0, 1 };
static const ber_tlv_tag_t asn_DEF_AnimalSubclass_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AnimalSubclass_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */
};
asn_SEQUENCE_specifics_t asn_SPC_AnimalSubclass_specs_1 = {
sizeof(struct AnimalSubclass),
offsetof(struct AnimalSubclass, _asn_ctx),
asn_MAP_AnimalSubclass_tag2el_1,
2, /* Count of tags in the map */
asn_MAP_AnimalSubclass_oms_1, /* Optional members */
2, 0, /* Root/Additions */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AnimalSubclass = {
"AnimalSubclass",
"AnimalSubclass",
&asn_OP_SEQUENCE,
asn_DEF_AnimalSubclass_tags_1,
sizeof(asn_DEF_AnimalSubclass_tags_1)
/sizeof(asn_DEF_AnimalSubclass_tags_1[0]), /* 1 */
asn_DEF_AnimalSubclass_tags_1, /* Same as above */
sizeof(asn_DEF_AnimalSubclass_tags_1)
/sizeof(asn_DEF_AnimalSubclass_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AnimalSubclass_1,
2, /* Elements count */
&asn_SPC_AnimalSubclass_specs_1 /* Additional specs */
};
@@ -0,0 +1,42 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AnimalSubclass_H_
#define _AnimalSubclass_H_
#include "asn_application.h"
/* Including external dependencies */
#include "AnimalSubclassType.h"
#include "ClassConfidence.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* AnimalSubclass */
typedef struct AnimalSubclass {
AnimalSubclassType_t type; /* DEFAULT 0 */
ClassConfidence_t confidence; /* DEFAULT 0 */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AnimalSubclass_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AnimalSubclass;
extern asn_SEQUENCE_specifics_t asn_SPC_AnimalSubclass_specs_1;
extern asn_TYPE_member_t asn_MBR_AnimalSubclass_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _AnimalSubclass_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AnimalSubclassType.h"
int
AnimalSubclassType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 255L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_AnimalSubclassType_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..255) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_AnimalSubclassType_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_AnimalSubclassType_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_AnimalSubclassType = {
"AnimalSubclassType",
"AnimalSubclassType",
&asn_OP_NativeInteger,
asn_DEF_AnimalSubclassType_tags_1,
sizeof(asn_DEF_AnimalSubclassType_tags_1)
/sizeof(asn_DEF_AnimalSubclassType_tags_1[0]), /* 1 */
asn_DEF_AnimalSubclassType_tags_1, /* Same as above */
sizeof(asn_DEF_AnimalSubclassType_tags_1)
/sizeof(asn_DEF_AnimalSubclassType_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_AnimalSubclassType_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_AnimalSubclassType_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
AnimalSubclassType_constraint
},
0, 0, /* Defined elsewhere */
0 /* No specifics */
};
@@ -0,0 +1,53 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AnimalSubclassType_H_
#define _AnimalSubclassType_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum AnimalSubclassType {
AnimalSubclassType_unknown = 0
} e_AnimalSubclassType;
/* AnimalSubclassType */
typedef long AnimalSubclassType_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_AnimalSubclassType_constr_1;
extern asn_per_constraints_t asn_PER_type_AnimalSubclassType_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_AnimalSubclassType;
asn_struct_free_f AnimalSubclassType_free;
asn_struct_print_f AnimalSubclassType_print;
asn_constr_check_f AnimalSubclassType_constraint;
ber_type_decoder_f AnimalSubclassType_decode_ber;
der_type_encoder_f AnimalSubclassType_encode_der;
xer_type_decoder_f AnimalSubclassType_decode_xer;
xer_type_encoder_f AnimalSubclassType_encode_xer;
jer_type_encoder_f AnimalSubclassType_encode_jer;
oer_type_decoder_f AnimalSubclassType_decode_oer;
oer_type_encoder_f AnimalSubclassType_encode_oer;
per_type_decoder_f AnimalSubclassType_decode_uper;
per_type_encoder_f AnimalSubclassType_encode_uper;
per_type_decoder_f AnimalSubclassType_decode_aper;
per_type_encoder_f AnimalSubclassType_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _AnimalSubclassType_H_ */
#include "asn_internal.h"
@@ -0,0 +1,114 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AntennaOffsetSet.h"
asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetX),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Offset_B12,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"antOffsetX"
},
{ ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetY),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Offset_B09,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"antOffsetY"
},
{ ATF_NOFLAGS, 0, offsetof(struct AntennaOffsetSet, antOffsetZ),
(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Offset_B10,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"antOffsetZ"
},
};
static const ber_tlv_tag_t asn_DEF_AntennaOffsetSet_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AntennaOffsetSet_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */
{ (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */
};
asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1 = {
sizeof(struct AntennaOffsetSet),
offsetof(struct AntennaOffsetSet, _asn_ctx),
asn_MAP_AntennaOffsetSet_tag2el_1,
3, /* Count of tags in the map */
0, 0, 0, /* Optional elements (not needed) */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet = {
"AntennaOffsetSet",
"AntennaOffsetSet",
&asn_OP_SEQUENCE,
asn_DEF_AntennaOffsetSet_tags_1,
sizeof(asn_DEF_AntennaOffsetSet_tags_1)
/sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */
asn_DEF_AntennaOffsetSet_tags_1, /* Same as above */
sizeof(asn_DEF_AntennaOffsetSet_tags_1)
/sizeof(asn_DEF_AntennaOffsetSet_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AntennaOffsetSet_1,
3, /* Elements count */
&asn_SPC_AntennaOffsetSet_specs_1 /* Additional specs */
};
@@ -0,0 +1,44 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AntennaOffsetSet_H_
#define _AntennaOffsetSet_H_
#include "asn_application.h"
/* Including external dependencies */
#include "Offset-B12.h"
#include "Offset-B09.h"
#include "Offset-B10.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* AntennaOffsetSet */
typedef struct AntennaOffsetSet {
Offset_B12_t antOffsetX;
Offset_B09_t antOffsetY;
Offset_B10_t antOffsetZ;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AntennaOffsetSet_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AntennaOffsetSet;
extern asn_SEQUENCE_specifics_t asn_SPC_AntennaOffsetSet_specs_1;
extern asn_TYPE_member_t asn_MBR_AntennaOffsetSet_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _AntennaOffsetSet_H_ */
#include "asn_internal.h"
@@ -0,0 +1,290 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AnyCatalogue.h"
static int
memb_version_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 255L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
static int
memb_pictogramCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 65535L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
static int
memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 65535L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_memb_version_constr_3 CC_NOTUSED = {
{ 1, 1 } /* (0..255) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_memb_version_constr_3 CC_NOTUSED = {
{ APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_memb_pictogramCode_constr_4 CC_NOTUSED = {
{ 2, 1 } /* (0..65535) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_memb_pictogramCode_constr_4 CC_NOTUSED = {
{ APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
static asn_oer_constraints_t asn_OER_memb_value_constr_5 CC_NOTUSED = {
{ 2, 1 } /* (0..65535) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
static asn_per_constraints_t asn_PER_memb_value_constr_5 CC_NOTUSED = {
{ APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
asn_TYPE_member_t asn_MBR_AnyCatalogue_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct AnyCatalogue, owner),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Provider,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"owner"
},
{ ATF_NOFLAGS, 0, offsetof(struct AnyCatalogue, version),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_NativeInteger,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_memb_version_constr_3,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_memb_version_constr_3,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
memb_version_constraint_1
},
0, 0, /* No default value */
"version"
},
{ ATF_NOFLAGS, 0, offsetof(struct AnyCatalogue, pictogramCode),
(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_NativeInteger,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_memb_pictogramCode_constr_4,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_memb_pictogramCode_constr_4,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
memb_pictogramCode_constraint_1
},
0, 0, /* No default value */
"pictogramCode"
},
{ ATF_POINTER, 3, offsetof(struct AnyCatalogue, value),
(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_NativeInteger,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_memb_value_constr_5,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_memb_value_constr_5,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
memb_value_constraint_1
},
0, 0, /* No default value */
"value"
},
{ ATF_POINTER, 2, offsetof(struct AnyCatalogue, unit),
(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_RSCUnit,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"unit"
},
{ ATF_POINTER, 1, offsetof(struct AnyCatalogue, attributes),
(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_ISO14823Attributes,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"attributes"
},
};
static const int asn_MAP_AnyCatalogue_oms_1[] = { 3, 4, 5 };
static const ber_tlv_tag_t asn_DEF_AnyCatalogue_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AnyCatalogue_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* owner */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* version */
{ (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pictogramCode */
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* value */
{ (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* unit */
{ (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* attributes */
};
asn_SEQUENCE_specifics_t asn_SPC_AnyCatalogue_specs_1 = {
sizeof(struct AnyCatalogue),
offsetof(struct AnyCatalogue, _asn_ctx),
asn_MAP_AnyCatalogue_tag2el_1,
6, /* Count of tags in the map */
asn_MAP_AnyCatalogue_oms_1, /* Optional members */
3, 0, /* Root/Additions */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AnyCatalogue = {
"AnyCatalogue",
"AnyCatalogue",
&asn_OP_SEQUENCE,
asn_DEF_AnyCatalogue_tags_1,
sizeof(asn_DEF_AnyCatalogue_tags_1)
/sizeof(asn_DEF_AnyCatalogue_tags_1[0]), /* 1 */
asn_DEF_AnyCatalogue_tags_1, /* Same as above */
sizeof(asn_DEF_AnyCatalogue_tags_1)
/sizeof(asn_DEF_AnyCatalogue_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AnyCatalogue_1,
6, /* Elements count */
&asn_SPC_AnyCatalogue_specs_1 /* Additional specs */
};
@@ -0,0 +1,53 @@
/*
* Generated by asn1c
* From ASN.1 module "IVI"
* found in "ISO19321.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AnyCatalogue_H_
#define _AnyCatalogue_H_
#include "asn_application.h"
/* Including external dependencies */
#include "Provider.h"
#include "NativeInteger.h"
#include "RSCUnit.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ISO14823Attributes;
/* AnyCatalogue */
typedef struct AnyCatalogue {
Provider_t owner;
long version;
long pictogramCode;
long *value; /* OPTIONAL */
RSCUnit_t *unit; /* OPTIONAL */
struct ISO14823Attributes *attributes; /* OPTIONAL */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AnyCatalogue_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AnyCatalogue;
extern asn_SEQUENCE_specifics_t asn_SPC_AnyCatalogue_specs_1;
extern asn_TYPE_member_t asn_MBR_AnyCatalogue_1[6];
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include "ISO14823Attributes.h"
#endif /* _AnyCatalogue_H_ */
#include "asn_internal.h"
@@ -0,0 +1,79 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "ApproachID.h"
int
ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0L && value <= 15L)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
#if !defined(ASN_DISABLE_OER_SUPPORT)
asn_oer_constraints_t asn_OER_type_ApproachID_constr_1 CC_NOTUSED = {
{ 1, 1 } /* (0..15) */,
-1};
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
asn_per_constraints_t asn_PER_type_ApproachID_constr_1 CC_NOTUSED = {
{ APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
static const ber_tlv_tag_t asn_DEF_ApproachID_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_ApproachID = {
"ApproachID",
"ApproachID",
&asn_OP_NativeInteger,
asn_DEF_ApproachID_tags_1,
sizeof(asn_DEF_ApproachID_tags_1)
/sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */
asn_DEF_ApproachID_tags_1, /* Same as above */
sizeof(asn_DEF_ApproachID_tags_1)
/sizeof(asn_DEF_ApproachID_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
&asn_OER_type_ApproachID_constr_1,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
&asn_PER_type_ApproachID_constr_1,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
ApproachID_constraint
},
0, 0, /* No members */
0 /* No specifics */
};
@@ -0,0 +1,48 @@
/*
* Generated by asn1c
* From ASN.1 module "DSRC"
* found in "ISO19091.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _ApproachID_H_
#define _ApproachID_H_
#include "asn_application.h"
/* Including external dependencies */
#include "NativeInteger.h"
#ifdef __cplusplus
extern "C" {
#endif
/* ApproachID */
typedef long ApproachID_t;
/* Implementation */
extern asn_oer_constraints_t asn_OER_type_ApproachID_constr_1;
extern asn_per_constraints_t asn_PER_type_ApproachID_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_ApproachID;
asn_struct_free_f ApproachID_free;
asn_struct_print_f ApproachID_print;
asn_constr_check_f ApproachID_constraint;
ber_type_decoder_f ApproachID_decode_ber;
der_type_encoder_f ApproachID_encode_der;
xer_type_decoder_f ApproachID_decode_xer;
xer_type_encoder_f ApproachID_encode_xer;
jer_type_encoder_f ApproachID_encode_jer;
oer_type_decoder_f ApproachID_decode_oer;
oer_type_encoder_f ApproachID_encode_oer;
per_type_decoder_f ApproachID_decode_uper;
per_type_encoder_f ApproachID_encode_uper;
per_type_decoder_f ApproachID_decode_aper;
per_type_encoder_f ApproachID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _ApproachID_H_ */
#include "asn_internal.h"
@@ -0,0 +1,95 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AreaCircular.h"
asn_TYPE_member_t asn_MBR_AreaCircular_1[] = {
{ ATF_POINTER, 1, offsetof(struct AreaCircular, nodeCenterPoint),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_OffsetPoint,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"nodeCenterPoint"
},
{ ATF_NOFLAGS, 0, offsetof(struct AreaCircular, radius),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_Radius,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"radius"
},
};
static const int asn_MAP_AreaCircular_oms_1[] = { 0 };
static const ber_tlv_tag_t asn_DEF_AreaCircular_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AreaCircular_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeCenterPoint */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* radius */
};
asn_SEQUENCE_specifics_t asn_SPC_AreaCircular_specs_1 = {
sizeof(struct AreaCircular),
offsetof(struct AreaCircular, _asn_ctx),
asn_MAP_AreaCircular_tag2el_1,
2, /* Count of tags in the map */
asn_MAP_AreaCircular_oms_1, /* Optional members */
1, 0, /* Root/Additions */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AreaCircular = {
"AreaCircular",
"AreaCircular",
&asn_OP_SEQUENCE,
asn_DEF_AreaCircular_tags_1,
sizeof(asn_DEF_AreaCircular_tags_1)
/sizeof(asn_DEF_AreaCircular_tags_1[0]), /* 1 */
asn_DEF_AreaCircular_tags_1, /* Same as above */
sizeof(asn_DEF_AreaCircular_tags_1)
/sizeof(asn_DEF_AreaCircular_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AreaCircular_1,
2, /* Elements count */
&asn_SPC_AreaCircular_specs_1 /* Additional specs */
};
@@ -0,0 +1,47 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#ifndef _AreaCircular_H_
#define _AreaCircular_H_
#include "asn_application.h"
/* Including external dependencies */
#include "Radius.h"
#include "constr_SEQUENCE.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct OffsetPoint;
/* AreaCircular */
typedef struct AreaCircular {
struct OffsetPoint *nodeCenterPoint; /* OPTIONAL */
Radius_t radius;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} AreaCircular_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_AreaCircular;
extern asn_SEQUENCE_specifics_t asn_SPC_AreaCircular_specs_1;
extern asn_TYPE_member_t asn_MBR_AreaCircular_1[2];
#ifdef __cplusplus
}
#endif
/* Referred external types */
#include "OffsetPoint.h"
#endif /* _AreaCircular_H_ */
#include "asn_internal.h"
@@ -0,0 +1,158 @@
/*
* Generated by asn1c
* From ASN.1 module "CPM-PDU-Descriptions"
* found in "TR103562v211-CPM.asn"
* `asn1c -fcompound-names -fincludes-quoted -no-gen-example -R`
*/
#include "AreaEllipse.h"
asn_TYPE_member_t asn_MBR_AreaEllipse_1[] = {
{ ATF_POINTER, 1, offsetof(struct AreaEllipse, nodeCenterPoint),
(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_OffsetPoint,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"nodeCenterPoint"
},
{ ATF_NOFLAGS, 0, offsetof(struct AreaEllipse, semiMinorRangeLength),
(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_SemiRangeLength,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"semiMinorRangeLength"
},
{ ATF_NOFLAGS, 0, offsetof(struct AreaEllipse, semiMajorRangeLength),
(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_SemiRangeLength,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"semiMajorRangeLength"
},
{ ATF_NOFLAGS, 0, offsetof(struct AreaEllipse, semiMajorRangeOrientation),
(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_WGS84AngleValue,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"semiMajorRangeOrientation"
},
{ ATF_POINTER, 1, offsetof(struct AreaEllipse, semiHeight),
(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_SemiRangeLength,
0,
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
0
},
0, 0, /* No default value */
"semiHeight"
},
};
static const int asn_MAP_AreaEllipse_oms_1[] = { 0, 4 };
static const ber_tlv_tag_t asn_DEF_AreaEllipse_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_AreaEllipse_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeCenterPoint */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorRangeLength */
{ (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiMajorRangeLength */
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* semiMajorRangeOrientation */
{ (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* semiHeight */
};
asn_SEQUENCE_specifics_t asn_SPC_AreaEllipse_specs_1 = {
sizeof(struct AreaEllipse),
offsetof(struct AreaEllipse, _asn_ctx),
asn_MAP_AreaEllipse_tag2el_1,
5, /* Count of tags in the map */
asn_MAP_AreaEllipse_oms_1, /* Optional members */
2, 0, /* Root/Additions */
-1, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_AreaEllipse = {
"AreaEllipse",
"AreaEllipse",
&asn_OP_SEQUENCE,
asn_DEF_AreaEllipse_tags_1,
sizeof(asn_DEF_AreaEllipse_tags_1)
/sizeof(asn_DEF_AreaEllipse_tags_1[0]), /* 1 */
asn_DEF_AreaEllipse_tags_1, /* Same as above */
sizeof(asn_DEF_AreaEllipse_tags_1)
/sizeof(asn_DEF_AreaEllipse_tags_1[0]), /* 1 */
{
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
SEQUENCE_constraint
},
asn_MBR_AreaEllipse_1,
5, /* Elements count */
&asn_SPC_AreaEllipse_specs_1 /* Additional specs */
};

Some files were not shown because too many files have changed in this diff Show More