diff --git a/.github/workflows/codegen.yml b/.github/workflows/codegen.yml index 294660307..4467e9091 100644 --- a/.github/workflows/codegen.yml +++ b/.github/workflows/codegen.yml @@ -66,6 +66,8 @@ jobs: include: - message: cam script: ./utils/codegen/asn1ToC.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_coding/etsi_its_cam_coding -di asn1c:ci + - message: cam_ts + script: ./utils/codegen/asn1ToC.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_coding/etsi_its_cam_ts_coding -di asn1c:ci - message: denm script: ./utils/codegen/asn1ToC.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_coding/etsi_its_denm_coding -di asn1c:ci - message: cpm_ts @@ -107,6 +109,8 @@ jobs: include: - message: cam script: ./utils/codegen/codegen-rust/asn1ToRosMsg.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -o etsi_its_msgs/etsi_its_cam_msgs/msg -di rgen:ci + - message: cam_ts + script: ./utils/codegen/codegen-rust/asn1ToRosMsg.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -o etsi_its_msgs/etsi_its_cam_ts_msgs/msg -di rgen:ci - message: denm script: ./utils/codegen/codegen-rust/asn1ToRosMsg.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -o etsi_its_msgs/etsi_its_denm_msgs/msg -di rgen:ci - message: cpm_ts @@ -147,6 +151,8 @@ jobs: include: - message: cam script: ./utils/codegen/codegen-rust/asn1ToConversionHeader.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion -di rgen:ci + - message: cam_ts + script: ./utils/codegen/codegen-rust/asn1ToConversionHeader.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion -di rgen:ci - message: denm script: ./utils/codegen/codegen-rust/asn1ToConversionHeader.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion -di rgen:ci - message: cpm_ts diff --git a/.gitlab-ci.codegen.yml b/.gitlab-ci.codegen.yml index 95a362305..9a5de4e04 100644 --- a/.gitlab-ci.codegen.yml +++ b/.gitlab-ci.codegen.yml @@ -66,6 +66,21 @@ etsi_its_cam_coding: - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi +etsi_its_cam_ts_coding: + stage: asn1c + needs: ["asn1c-docker"] + script: + - > + ./utils/codegen/asn1ToC.py + asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn + asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn + -t cam_ts + -o etsi_its_coding/etsi_its_cam_ts_coding + -td /builds/$CI_PROJECT_PATH/tmp + -di ${_ASN1C_CI_IMAGE} + - rm -rf /builds/$CI_PROJECT_PATH/tmp + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + etsi_its_denm_coding: stage: asn1c needs: ["asn1c-docker"] @@ -114,6 +129,20 @@ etsi_its_cam_msgs: - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi +etsi_its_cam_ts_msgs: + stage: ROS Messages + needs: ["rgen-docker"] + script: + - > + ./utils/codegen/codegen-rust/asn1ToRosMsg.py + asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn + asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn + -o etsi_its_msgs/etsi_its_cam_ts_msgs/msg + -td /builds/$CI_PROJECT_PATH/tmp + -di ${_RGEN_CI_IMAGE} + - rm -rf /builds/$CI_PROJECT_PATH/tmp + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + etsi_its_denm_msgs: stage: ROS Messages needs: ["rgen-docker"] @@ -161,6 +190,21 @@ etsi_its_cam_conversion: - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi +etsi_its_cam_ts_conversion: + stage: Conversion Headers + needs: ["rgen-docker"] + script: + - > + ./utils/codegen/codegen-rust/asn1ToConversionHeader.py + asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn + asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn + -t cam_ts + -o etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion + -td /builds/$CI_PROJECT_PATH/tmp + -di ${_RGEN_CI_IMAGE} + - rm -rf /builds/$CI_PROJECT_PATH/tmp + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + etsi_its_denm_conversion: stage: Conversion Headers needs: ["rgen-docker"] diff --git a/.gitmodules b/.gitmodules index 44365a071..81335a605 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,9 @@ [submodule "cam_en302637_2"] path = asn1/raw/cam_en302637_2 url = https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2 +[submodule "asn1/raw/cam_ts103900"] + path = asn1/raw/cam_ts103900 + url = https://forge.etsi.org/rep/ITS/asn1/cam_ts103900.git [submodule "denm_en302637_3"] path = asn1/raw/denm_en302637_3 url = https://forge.etsi.org/rep/ITS/asn1/denm_en302637_3.git diff --git a/.vscode/launch.json b/.vscode/launch.json index 868eca719..4f5000a31 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -50,6 +50,55 @@ "console": "integratedTerminal", "justMyCode": true }, + { + "name": "CAM TS (coding)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/asn1ToC.py", + "args": [ + "asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn", + "asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn", + "-t", + "cam_ts", + "-o", + "etsi_its_coding/etsi_its_cam_ts_coding" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "CAM TS (msgs)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/codegen-rust/asn1ToRosMsg.py", + "args": [ + "asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn", + "asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn", + "-o", + "etsi_its_msgs/etsi_its_cam_ts_msgs/msg" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "CAM TS (conversion)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/codegen-rust/asn1ToConversionHeader.py", + "args": [ + "asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn", + "asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn", + "-t", + "cam_ts", + "-o", + "etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion" + ], + "console": "integratedTerminal", + "justMyCode": true + }, { "name": "DENM (coding)", "preLaunchTask": "Patch ASN.1 files", diff --git a/README.md b/README.md index 95428dbfa..996f08273 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ During runtime, the `etsi_its_conversion` ROS node converts incoming UDP payload | Status | Acronym | Name | EN Specification | TS Specification | | --- | --- | --- | --- | --- | -| :white_check_mark: | CAM | Cooperative Awareness Message | [EN 302 637-2 V1.4.1](https://www.etsi.org/deliver/etsi_en/302600_302699/30263702/01.04.01_60/en_30263702v010401p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2)) | - | +| :white_check_mark: | CAM | Cooperative Awareness Message | [EN 302 637-2 V1.4.1](https://www.etsi.org/deliver/etsi_en/302600_302699/30263702/01.04.01_60/en_30263702v010401p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2)) | [ETSI TS 103 900 V2.1.1](https://www.etsi.org/deliver/etsi_ts/103900_103999/103900/02.01.01_60/ts_103900v020101p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/cam_ts103900)) | | :white_check_mark: | DENM | Decentralized Environmental Notification Message | [EN 302 637-3 V1.3.1](https://www.etsi.org/deliver/etsi_en/302600_302699/30263703/01.03.01_60/en_30263703v010301p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/denm_en302637_3)) | - | | :white_check_mark: | CPM | Collective Perception Message | - | [TS 103 324 V2.1.1](https://www.etsi.org/deliver/etsi_ts/103300_103399/103324/02.01.01_60/ts_103324v020101p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/cpm_ts103324)) | | :soon: | MAPEM | Map Extended Message | - | - | - | @@ -69,11 +69,13 @@ etsi_its_messages ├── etsi_its_coding │ ├── etsi_its_coding # metapackage including all coding packages │ ├── etsi_its_cam_coding +│ ├── etsi_its_cam_ts_coding │ ├── etsi_its_cpm_ts_coding │ └── etsi_its_denm_coding ├── etsi_its_conversion │ ├── etsi_its_conversion # conversion node depending on all conversion packages │ ├── etsi_its_cam_conversion +│ ├── etsi_its_cam_ts_conversion │ ├── etsi_its_cpm_ts_conversion │ ├── etsi_its_denm_conversion │ └── etsi_its_primitives_conversion @@ -81,6 +83,7 @@ etsi_its_messages ├── etsi_its_msgs │ ├── etsi_its_msgs # metapackage including all msg packages │ ├── etsi_its_cam_msgs +│ ├── etsi_its_cam_ts_msgs │ ├── etsi_its_cpm_ts_msgs │ └── etsi_its_denm_msgs ├── etsi_its_msgs_utils @@ -155,6 +158,7 @@ rosrun nodelet nodelet standalone etsi_its_conversion/Converter _etsi_types:=[ca | --- | --- | --- | | `~/udp/in` | `udp_msgs/msg/UdpPacket` | UDP payload for conversion to ROS | | `~/cam/in` | `etsi_its_cam_msgs/msg/CAM` | CAM for conversion to UDP | +| `~/cam_ts/in` | `etsi_its_cam_ts_msgs/msg/CAM` | CAM (TS) for conversion to UDP | | `~/cpm_ts/in` | `etsi_its_cpm_ts_msgs/msg/CollectivePerceptionMessage` | CPM for conversion to UDP | | `~/denm/in` | `etsi_its_denm_msgs/msg/DENM` | DENM for conversion to UDP | @@ -164,6 +168,7 @@ rosrun nodelet nodelet standalone etsi_its_conversion/Converter _etsi_types:=[ca | --- | --- | --- | | `~/udp/out` | `udp_msgs/msg/UdpPacket` | UDP payload converted from ROS message | | `~/cam/out` | `etsi_its_cam_msgs/msg/CAM` | CAM converted from UDP payload | +| `~/cam_ts/out` | `etsi_its_cam_ts_msgs/msg/CAM` | CAM (TS) converted from UDP payload | | `~/cpm_ts/out` | `etsi_its_cpm_ts_msgs/msg/CollectivePerceptionMessage` | CPM converted from UDP payload | | `~/denm/out` | `etsi_its_denm_msgs/msg/DENM` | DENM converted from UDP payload | @@ -174,7 +179,8 @@ rosrun nodelet nodelet standalone etsi_its_conversion/Converter _etsi_types:=[ca | `has_btp_destination_port` | `bool` | whether incoming/outgoing UDP messages include a [2-byte BTP destination port](https://www.etsi.org/deliver/etsi_en/302600_302699/3026360501/02.01.00_20/en_3026360501v020100a.pdf) | | `btp_destination_port_offset` | `int` | number of bytes before an optional 2-byte BTP destination port, see `has_btp_destination_port` (always `0` in outgoing UDP payload) | | `etsi_message_payload_offset` | `int` | number of bytes before actual ETSI message payload (always `0` or `4` (if `has_btp_destination_port`) in outgoing UDP payload) | -| `etsi_types` | `string[]` | list of ETSI types to convert | `cam`, `cpm_ts`, `denm` | +| `ros2udp_etsi_types` | `string[]` | list of ETSI types to convert from `etsi_its_msgs` to `udp_msgs` (defaults to all norms and specifications of all possible ETSI types) | `cam`, `cam_ts`, `cpm_ts`, `denm` | +| `udp2ros_etsi_types` | `string[]` | list of ETSI types to convert from `udp_msgs` to `etsi_its_msgs` (defaults only to the norm or specification of all possible ETSI types) | `cam`, `cam_ts`, `cpm_ts`, `denm` | | `subscriber_queue_size` | `int` | queue size for incoming ROS messages | | `publisher_queue_size` | `int` | queue size for outgoing ROS messages | diff --git a/asn1/patches/cam_ts103900/cdd/ETSI-ITS-CDD.asn.patch b/asn1/patches/cam_ts103900/cdd/ETSI-ITS-CDD.asn.patch new file mode 100644 index 000000000..9a1760f2a --- /dev/null +++ b/asn1/patches/cam_ts103900/cdd/ETSI-ITS-CDD.asn.patch @@ -0,0 +1,46 @@ +diff --git a/ETSI-ITS-CDD.asn b/ETSI-ITS-CDD.asn +index d6f5faa..14f963f 100755 +--- a/ETSI-ITS-CDD.asn ++++ b/ETSI-ITS-CDD.asn +@@ -3058,16 +3058,6 @@ StationaryVehicleSubCauseCode ::= INTEGER { + */ + StationId ::= INTEGER(0..4294967295) + +-/** +- * This DE represents the identifier of an ITS-S. +- * The ITS-S ID may be a pseudonym. It may change over space and/or over time. +- * +- * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StationId instead. +- * @category: Basic information +- * @revision: V1.3.1 +- */ +-StationID ::= INTEGER(0..4294967295) +- + /** + * This DE represents the type of technical context the ITS-S is integrated in. + * The station type depends on the integration environment of ITS-S into vehicle, mobile devices or at infrastructure. +@@ -4182,24 +4172,6 @@ ActionId ::= SEQUENCE { + sequenceNumber SequenceNumber + } + +-/** +- * This DF represents an identifier used to describe a protocol action taken by an ITS-S. +- * +- * It shall include the following components: +- * +- * @field originatingStationId: Id of the ITS-S that takes the action. +- * +- * @field sequenceNumber: a sequence number. +- * +- * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref ActionId instead. +- * @category: Communication information +- * @revision: V1.3.1 +- */ +-ActionID ::= SEQUENCE { +- originatingStationId StationID, +- sequenceNumber SequenceNumber +-} +- + /** + * This DF shall contain a list of @ref ActionId. + diff --git a/asn1/raw/cam_ts103900 b/asn1/raw/cam_ts103900 new file mode 160000 index 000000000..b96bfef8b --- /dev/null +++ b/asn1/raw/cam_ts103900 @@ -0,0 +1 @@ +Subproject commit b96bfef8b798b9b1d901f0a07c3e72544badb44a diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/CMakeLists.txt b/etsi_its_coding/etsi_its_cam_ts_coding/CMakeLists.txt new file mode 100644 index 000000000..54253a73f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/CMakeLists.txt @@ -0,0 +1,69 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_cam_ts_coding) + +find_package(ros_environment REQUIRED QUIET) +set(ROS_VERSION $ENV{ROS_VERSION}) + +AUX_SOURCE_DIRECTORY(src SRC_FILES) + +# === ROS 2 (AMENT) ============================================================ +if(${ROS_VERSION} EQUAL 2) + + find_package(ament_cmake REQUIRED) + + add_library(${PROJECT_NAME} SHARED + ${SRC_FILES} + ) + + target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ + ) + + ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) + + install(DIRECTORY include/ + DESTINATION include + ) + + install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION lib + INCLUDES DESTINATION include + ) + + ament_package() + +# === ROS (CATKIN) ============================================================= +elseif(${ROS_VERSION} EQUAL 1) + + find_package(catkin REQUIRED) + + catkin_package( + INCLUDE_DIRS include + LIBRARIES ${PROJECT_NAME} + ) + + include_directories( + include + ${catkin_INCLUDE_DIRS} + ) + + add_library(${PROJECT_NAME} SHARED + ${SRC_FILES} + ) + + install(TARGETS ${PROJECT_NAME} + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + FILES_MATCHING PATTERN "*.h" + ) + +endif() diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ANY.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ANY.h new file mode 100644 index 000000000..dc72e64a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ANY.h @@ -0,0 +1,86 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_ANY_H +#define ASN_TYPE_ANY_H + +#include /* Implemented via OCTET STRING type */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ANY { + uint8_t *buf; /* BER-encoded ANY contents */ + int size; /* Size of the above buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} ANY_t; + +extern asn_TYPE_descriptor_t asn_DEF_ANY; +extern asn_TYPE_operation_t asn_OP_ANY; +extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; + +#define ANY_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define ANY_print OCTET_STRING_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define ANY_compare OCTET_STRING_compare +#define ANY_copy OCTET_STRING_copy + +#define ANY_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define ANY_decode_ber OCTET_STRING_decode_ber +#define ANY_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define ANY_decode_xer OCTET_STRING_decode_xer_hex +xer_type_encoder_f ANY_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f ANY_decode_jer; +jer_type_encoder_f ANY_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f ANY_decode_uper; +per_type_encoder_f ANY_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f ANY_decode_aper; +per_type_encoder_f ANY_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/****************************** + * Handy conversion routines. * + ******************************/ + +/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ +int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); +ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); +#if !defined(ASN_DISABLE_APER_SUPPORT) +int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); +ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/* Convert the contents of the ANY type into the specified type. */ +int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); +#if !defined(ASN_DISABLE_APER_SUPPORT) +int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) +#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ + &asn_DEF_ANY, (buf), (size)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_ANY_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/BIT_STRING.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/BIT_STRING.h new file mode 100644 index 000000000..3893c6d4d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/BIT_STRING.h @@ -0,0 +1,77 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BIT_STRING_H_ +#define _BIT_STRING_H_ + +#include /* Some help from OCTET STRING */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct BIT_STRING_s { + uint8_t *buf; /* BIT STRING body */ + size_t size; /* Size of the above buffer */ + + int bits_unused;/* Unused trailing bits in the last octet (0..7) */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} BIT_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; +extern asn_TYPE_operation_t asn_OP_BIT_STRING; +extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; + +#define BIT_STRING_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f BIT_STRING_print; /* Human-readable output */ +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f BIT_STRING_compare; +asn_struct_copy_f BIT_STRING_copy; + +asn_constr_check_f BIT_STRING_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define BIT_STRING_decode_ber OCTET_STRING_decode_ber +#define BIT_STRING_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary +xer_type_encoder_f BIT_STRING_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f BIT_STRING_decode_jer; +jer_type_encoder_f BIT_STRING_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f BIT_STRING_decode_oer; +oer_type_encoder_f BIT_STRING_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f BIT_STRING_decode_uper; +per_type_encoder_f BIT_STRING_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define BIT_STRING_decode_aper OCTET_STRING_decode_aper +#define BIT_STRING_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f BIT_STRING_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +const BIT_STRING_t *BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp); + +#ifdef __cplusplus +} +#endif + +#endif /* _BIT_STRING_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/BOOLEAN.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/BOOLEAN.h new file mode 100644 index 000000000..19f86c73d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/BOOLEAN.h @@ -0,0 +1,72 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BOOLEAN_H_ +#define _BOOLEAN_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The underlying integer may contain various values, but everything + * non-zero is capped to 0xff by the DER encoder. The BER decoder may + * yield non-zero values different from 1, beware. + */ +typedef unsigned BOOLEAN_t; + +extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN; +extern asn_TYPE_operation_t asn_OP_BOOLEAN; + +asn_struct_free_f BOOLEAN_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f BOOLEAN_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f BOOLEAN_compare; +asn_struct_copy_f BOOLEAN_copy; + +#define BOOLEAN_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f BOOLEAN_decode_ber; +der_type_encoder_f BOOLEAN_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f BOOLEAN_decode_xer; +xer_type_encoder_f BOOLEAN_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f BOOLEAN_decode_jer; +jer_type_encoder_f BOOLEAN_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f BOOLEAN_decode_oer; +oer_type_encoder_f BOOLEAN_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f BOOLEAN_decode_uper; +per_type_encoder_f BOOLEAN_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f BOOLEAN_decode_aper; +per_type_encoder_f BOOLEAN_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f BOOLEAN_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _BOOLEAN_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ENUMERATED.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ENUMERATED.h new file mode 100644 index 000000000..3ccc57e76 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ENUMERATED.h @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _ENUMERATED_H_ +#define _ENUMERATED_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef INTEGER_t ENUMERATED_t; /* Implemented via INTEGER */ + +extern asn_TYPE_descriptor_t asn_DEF_ENUMERATED; +extern asn_TYPE_operation_t asn_OP_ENUMERATED; + +#define ENUMERATED_free ASN__PRIMITIVE_TYPE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define ENUMERATED_print INTEGER_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define ENUMERATED_compare INTEGER_compare +#define ENUMERATED_copy INTEGER_copy + +#define ENUMERATED_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define ENUMERATED_decode_ber ber_decode_primitive +#define ENUMERATED_encode_der INTEGER_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define ENUMERATED_decode_xer INTEGER_decode_xer +#define ENUMERATED_encode_xer INTEGER_encode_xer +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f ENUMERATED_decode_jer; +#define ENUMERATED_encode_jer INTEGER_encode_jer +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f ENUMERATED_decode_oer; +oer_type_encoder_f ENUMERATED_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f ENUMERATED_decode_uper; +per_type_encoder_f ENUMERATED_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f ENUMERATED_decode_aper; +per_type_encoder_f ENUMERATED_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#define ENUMERATED_random_fill INTEGER_random_fill +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _ENUMERATED_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/GraphicString.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/GraphicString.h new file mode 100644 index 000000000..52fab7533 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/GraphicString.h @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _GraphicString_H_ +#define _GraphicString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t GraphicString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_GraphicString; +extern asn_TYPE_operation_t asn_OP_GraphicString; + +#define GraphicString_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define GraphicString_print OCTET_STRING_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define GraphicString_compare OCTET_STRING_compare +#define GraphicString_copy OCTET_STRING_copy + +#define GraphicString_constraint asn_generic_unknown_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define GraphicString_decode_ber OCTET_STRING_decode_ber +#define GraphicString_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define GraphicString_decode_xer OCTET_STRING_decode_xer_hex +#define GraphicString_encode_xer OCTET_STRING_encode_xer +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define GraphicString_decode_jer OCTET_STRING_decode_jer +#define GraphicString_encode_jer OCTET_STRING_encode_jer +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define GraphicString_decode_uper OCTET_STRING_decode_uper +#define GraphicString_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define GraphicString_decode_aper OCTET_STRING_decode_aper +#define GraphicString_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _GraphicString_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/IA5String.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/IA5String.h new file mode 100644 index 000000000..c25174f94 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/IA5String.h @@ -0,0 +1,61 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _IA5String_H_ +#define _IA5String_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t IA5String_t; /* Implemented via OCTET STRING */ + +/* + * IA5String ASN.1 type definition. + */ +extern asn_TYPE_descriptor_t asn_DEF_IA5String; +extern asn_TYPE_operation_t asn_OP_IA5String; + +#define IA5String_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define IA5String_print OCTET_STRING_print_utf8 +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define IA5String_compare OCTET_STRING_compare +#define IA5String_copy OCTET_STRING_copy + +asn_constr_check_f IA5String_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define IA5String_decode_ber OCTET_STRING_decode_ber +#define IA5String_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define IA5String_decode_xer OCTET_STRING_decode_xer_utf8 +#define IA5String_encode_xer OCTET_STRING_encode_xer_utf8 +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define IA5String_decode_jer OCTET_STRING_decode_jer_utf8 +#define IA5String_encode_jer OCTET_STRING_encode_jer_utf8 +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define IA5String_decode_uper OCTET_STRING_decode_uper +#define IA5String_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define IA5String_decode_aper OCTET_STRING_decode_aper +#define IA5String_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _IA5String_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/INTEGER.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/INTEGER.h new file mode 100644 index 000000000..eb8876150 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/INTEGER.h @@ -0,0 +1,143 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _INTEGER_H_ +#define _INTEGER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; + +extern asn_TYPE_descriptor_t asn_DEF_INTEGER; +extern asn_TYPE_operation_t asn_OP_INTEGER; + +/* Map with to integer value association */ +typedef struct asn_INTEGER_enum_map_s { + long nat_value; /* associated native integer value */ + size_t enum_len; /* strlen("tag") */ + const char *enum_name; /* "tag" */ +} asn_INTEGER_enum_map_t; + +/* This type describes an enumeration for INTEGER and ENUMERATED types */ +typedef struct asn_INTEGER_specifics_s { + const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ + const unsigned int *enum2value; /* "tag" => N; sorted by tag */ + int map_count; /* Elements in either map */ + int extension; /* This map is extensible */ + int strict_enumeration; /* Enumeration set is fixed */ + int field_width; /* Size of native integer */ + int field_unsigned; /* Signed=0, unsigned=1 */ +} asn_INTEGER_specifics_t; + +ssize_t INTEGER__dump(const asn_TYPE_descriptor_t *td, + const INTEGER_t *st, + asn_app_consume_bytes_f *cb, + void *app_key, int plainOrXER); + +#define INTEGER_free ASN__PRIMITIVE_TYPE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f INTEGER_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f INTEGER_compare; +asn_struct_copy_f INTEGER_copy; + +#define INTEGER_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define INTEGER_decode_ber ber_decode_primitive +der_type_encoder_f INTEGER_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f INTEGER_decode_xer; +xer_type_encoder_f INTEGER_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f INTEGER_decode_jer; +jer_type_encoder_f INTEGER_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f INTEGER_decode_oer; +oer_type_encoder_f INTEGER_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f INTEGER_decode_uper; +per_type_encoder_f INTEGER_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f INTEGER_decode_aper; +per_type_encoder_f INTEGER_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f INTEGER_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +/*********************************** + * Some handy conversion routines. * + ***********************************/ + +/* + * Natiwe size-independent conversion of native integers to/from INTEGER. + * (l_size) is in bytes. + * Returns 0 if it was possible to convert, -1 otherwise. + * -1/EINVAL: Mandatory argument missing + * -1/ERANGE: Value encoded is out of range for long representation + * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). + */ +int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); +int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); +int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); +int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); + +/* + * Size-specific conversion helpers. + */ +int asn_INTEGER2long(const INTEGER_t *i, long *l); +int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); +int asn_long2INTEGER(INTEGER_t *i, long l); +int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); +int asn_INTEGER2int64(const INTEGER_t *i, int64_t *l); +int asn_INTEGER2uint64(const INTEGER_t *i, uint64_t *l); +int asn_int642INTEGER(INTEGER_t *i, int64_t l); +int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); + +/* A version of strtol/strtoimax(3) with nicer error reporting. */ +enum asn_strtox_result_e { + ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ + ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ + ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ + ASN_STRTOX_OK = 0, /* Conversion succeeded, number ends at (*end) */ + ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeeded, but the string has extra stuff */ +}; +enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, + long *l); +enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, + unsigned long *l); +enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, + intmax_t *l); +enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, + uintmax_t *l); + +/* + * Convert the integer value into the corresponding enumeration map entry. + */ +const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( + const asn_INTEGER_specifics_t *specs, long value); + +#ifdef __cplusplus +} +#endif + +#endif /* _INTEGER_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NULL.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NULL.h new file mode 100644 index 000000000..4fd304cc7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NULL.h @@ -0,0 +1,71 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_NULL_H +#define ASN_TYPE_NULL_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The value of the NULL type is meaningless. + * Use the BOOLEAN type if you need to carry true/false semantics. + */ +typedef int NULL_t; + +extern asn_TYPE_descriptor_t asn_DEF_NULL; +extern asn_TYPE_operation_t asn_OP_NULL; + +asn_struct_free_f NULL_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f NULL_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f NULL_compare; +asn_struct_copy_f NULL_copy; + +#define NULL_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f NULL_decode_ber; +der_type_encoder_f NULL_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f NULL_decode_xer; +xer_type_encoder_f NULL_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f NULL_decode_jer; +jer_type_encoder_f NULL_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NULL_decode_oer; +oer_type_encoder_f NULL_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NULL_decode_uper; +per_type_encoder_f NULL_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NULL_decode_aper; +per_type_encoder_f NULL_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f NULL_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* NULL_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NativeEnumerated.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NativeEnumerated.h new file mode 100644 index 000000000..1ff5edde0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NativeEnumerated.h @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard ENUMERATED in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeEnumerated_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeEnumerated_H_ +#define _NativeEnumerated_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; +extern asn_TYPE_operation_t asn_OP_NativeEnumerated; + +#define NativeEnumerated_free NativeInteger_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define NativeEnumerated_print NativeInteger_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define NativeEnumerated_compare NativeInteger_compare +#define NativeEnumerated_copy NativeInteger_copy + +#define NativeEnumerated_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define NativeEnumerated_decode_ber NativeInteger_decode_ber +#define NativeEnumerated_encode_der NativeInteger_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define NativeEnumerated_decode_xer NativeInteger_decode_xer +xer_type_encoder_f NativeEnumerated_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f NativeEnumerated_decode_jer; +jer_type_encoder_f NativeEnumerated_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NativeEnumerated_decode_oer; +oer_type_encoder_f NativeEnumerated_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NativeEnumerated_decode_uper; +per_type_encoder_f NativeEnumerated_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NativeEnumerated_decode_aper; +per_type_encoder_f NativeEnumerated_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#define NativeEnumerated_random_fill NativeInteger_random_fill +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int NativeEnumerated__compar_value2enum( + const void *ap, + const void *bp); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeEnumerated_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NativeInteger.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NativeInteger.h new file mode 100644 index 000000000..98b8b16a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NativeInteger.h @@ -0,0 +1,73 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard INTEGER in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeInteger_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeInteger_H_ +#define _NativeInteger_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; +extern asn_TYPE_operation_t asn_OP_NativeInteger; + +asn_struct_free_f NativeInteger_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f NativeInteger_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f NativeInteger_compare; +asn_struct_copy_f NativeInteger_copy; + +#define NativeInteger_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f NativeInteger_decode_ber; +der_type_encoder_f NativeInteger_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f NativeInteger_decode_xer; +xer_type_encoder_f NativeInteger_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f NativeInteger_decode_jer; +jer_type_encoder_f NativeInteger_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f NativeInteger_decode_oer; +oer_type_encoder_f NativeInteger_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f NativeInteger_decode_uper; +per_type_encoder_f NativeInteger_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f NativeInteger_decode_aper; +per_type_encoder_f NativeInteger_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f NativeInteger_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeInteger_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NumericString.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NumericString.h new file mode 100644 index 000000000..def5d44ef --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/NumericString.h @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _NumericString_H_ +#define _NumericString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t NumericString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_NumericString; +extern asn_TYPE_operation_t asn_OP_NumericString; + +#define NumericString_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define NumericString_print OCTET_STRING_print_utf8 +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define NumericString_compare OCTET_STRING_compare +#define NumericString_copy OCTET_STRING_copy + +asn_constr_check_f NumericString_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define NumericString_decode_ber OCTET_STRING_decode_ber +#define NumericString_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define NumericString_decode_xer OCTET_STRING_decode_xer_utf8 +#define NumericString_encode_xer OCTET_STRING_encode_xer_utf8 +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define NumericString_decode_jer OCTET_STRING_decode_jer_utf8 +#define NumericString_encode_jer OCTET_STRING_encode_jer_utf8 +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#define NumericString_decode_oer OCTET_STRING_decode_oer +#define NumericString_encode_oer OCTET_STRING_encode_oer +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define NumericString_decode_uper OCTET_STRING_decode_uper +#define NumericString_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define NumericString_decode_aper OCTET_STRING_decode_aper +#define NumericString_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#define NumericString_random_fill OCTET_STRING_random_fill +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _NumericString_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OBJECT_IDENTIFIER.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OBJECT_IDENTIFIER.h new file mode 100644 index 000000000..f88b6693d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OBJECT_IDENTIFIER.h @@ -0,0 +1,186 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OBJECT_IDENTIFIER_H_ +#define _OBJECT_IDENTIFIER_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef uint32_t asn_oid_arc_t; +#define ASN_OID_ARC_MAX (~((asn_oid_arc_t)0)) + +typedef ASN__PRIMITIVE_TYPE_t OBJECT_IDENTIFIER_t; + +extern asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER; +extern asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER; + +ssize_t OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, + asn_app_consume_bytes_f *cb, + void *app_key); + +#define OBJECT_IDENTIFIER_free ASN__PRIMITIVE_TYPE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f OBJECT_IDENTIFIER_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define OBJECT_IDENTIFIER_compare OCTET_STRING_compare +#define OBJECT_IDENTIFIER_copy OCTET_STRING_copy + +asn_constr_check_f OBJECT_IDENTIFIER_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_ber ber_decode_primitive +#define OBJECT_IDENTIFIER_encode_der der_encode_primitive +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer; +xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f OBJECT_IDENTIFIER_decode_jer; +jer_type_encoder_f OBJECT_IDENTIFIER_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_oer oer_decode_primitive +#define OBJECT_IDENTIFIER_encode_oer oer_encode_primitive +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_uper OCTET_STRING_decode_uper +#define OBJECT_IDENTIFIER_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define OBJECT_IDENTIFIER_decode_aper OCTET_STRING_decode_aper +#define OBJECT_IDENTIFIER_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f OBJECT_IDENTIFIER_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +/********************************** + * Some handy conversion routines * + **********************************/ + +/* + * This function fills an (arcs) array with OBJECT IDENTIFIER arcs + * up to specified (arc_slots) elements. + * + * EXAMPLE: + * void print_arcs(OBJECT_IDENTIFIER_t *oid) { + * asn_oid_arc_t fixed_arcs[10]; // Try with fixed space first + * asn_oid_arc_t *arcs = fixed_arcs; + * size_t arc_slots = sizeof(fixed_arcs)/sizeof(fixed_arcs[0]); // 10 + * ssize_t count; // Real number of arcs. + * int i; + * + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * // If necessary, reallocate arcs array and try again. + * if(count > arc_slots) { + * arc_slots = count; + * arcs = malloc(sizeof(asn_oid_arc_t) * arc_slots); + * if(!arcs) return; + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * assert(count == arc_slots); + * } + * + * // Print the contents of the arcs array. + * for(i = 0; i < count; i++) + * printf("%"PRIu32"\n", arcs[i]); + * + * // Avoid memory leak. + * if(arcs != fixed_arcs) free(arcs); + * } + * + * RETURN VALUES: + * -1/EINVAL: Invalid arguments (oid is missing) + * -1/ERANGE: One or more arcs have value out of array cell type range. + * >=0: Number of arcs contained in the OBJECT IDENTIFIER + * + * WARNING: The function always returns the actual number of arcs, + * even if there is no sufficient (arc_slots) provided. + */ +ssize_t OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *oid, + asn_oid_arc_t *arcs, size_t arc_slots); + +/* + * This functions initializes the OBJECT IDENTIFIER object with + * the given set of arcs. + * The minimum of two arcs must be present; some restrictions apply. + * RETURN VALUES: + * -1/EINVAL: Invalid arguments + * -1/ERANGE: The first two arcs do not conform to ASN.1 restrictions. + * -1/ENOMEM: Memory allocation failed + * 0: The object was initialized with new arcs. + */ +int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, + const asn_oid_arc_t *arcs, size_t arcs_count); + + +/* + * Parse the OBJECT IDENTIFIER textual representation ("1.3.6.1.4.1.9363"). + * No arc can exceed the (0..ASN_OID_ARC_MAX, which is the same as UINT32_MAX). + * This function is not specific to OBJECT IDENTIFIER, it may be used to parse + * the RELATIVE-OID data, or any other data consisting of dot-separated + * series of numeric values. + * + * If (oid_txt_length == -1), the strlen() will be invoked to determine the + * size of the (oid_text) string. + * + * After return, the optional (opt_oid_text_end) is set to the character after + * the last parsed one. (opt_oid_text_end) is never less than (oid_text). + * + * RETURN VALUES: + * -1: Parse error. + * >= 0: Number of arcs contained in the OBJECT IDENTIFIER. + * + * WARNING: The function always returns the real number of arcs, + * even if there is no sufficient (arc_slots) provided. + * This is useful for (arc_slots) value estimation. + */ +ssize_t OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, + ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end); + +/* + * Internal functions. + * Used by RELATIVE-OID implementation in particular. + */ + +/* + * Retrieve a single arc of size from the (arcbuf) buffer. + * RETURN VALUES: + * -1: Failed to retrieve the value from the (arcbuf). + * >0: Number of bytes consumed from the (arcbuf), <= (arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, + size_t arcbuf_len, + asn_oid_arc_t *ret_value); + +/* + * Write the unterminated arc value into the (arcbuf) which has the size at + * least (arcbuf_len). + * RETURN VALUES: + * -1: (arcbuf_len) size is not sufficient to write the value. + * : Number of bytes appended to the arcbuf (<= arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t arc_value); + +#ifdef __cplusplus +} +#endif + +#endif /* _OBJECT_IDENTIFIER_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OCTET_STRING.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OCTET_STRING.h new file mode 100644 index 000000000..664d71770 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OCTET_STRING.h @@ -0,0 +1,168 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OCTET_STRING_H_ +#define _OCTET_STRING_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct OCTET_STRING { + uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ + size_t size; /* Size of the buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} OCTET_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; +extern asn_TYPE_operation_t asn_OP_OCTET_STRING; + +asn_struct_free_f OCTET_STRING_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f OCTET_STRING_print; +asn_struct_print_f OCTET_STRING_print_utf8; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f OCTET_STRING_compare; +asn_struct_copy_f OCTET_STRING_copy; + +#define OCTET_STRING_constraint asn_generic_no_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f OCTET_STRING_decode_ber; +der_type_encoder_f OCTET_STRING_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ +xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ +xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ +xer_type_encoder_f OCTET_STRING_encode_xer; +xer_type_encoder_f OCTET_STRING_encode_xer_utf8; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f OCTET_STRING_decode_jer_hex; /* Hexadecimal */ +jer_type_decoder_f OCTET_STRING_decode_jer_utf8; /* ASCII/UTF-8 */ +jer_type_encoder_f OCTET_STRING_encode_jer; +jer_type_encoder_f OCTET_STRING_encode_jer_utf8; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f OCTET_STRING_decode_oer; +oer_type_encoder_f OCTET_STRING_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f OCTET_STRING_decode_uper; +per_type_encoder_f OCTET_STRING_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f OCTET_STRING_decode_aper; +per_type_encoder_f OCTET_STRING_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f OCTET_STRING_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int OCTET_STRING_per_get_characters( + asn_per_data_t *po, + uint8_t *buf, + size_t units, + unsigned int bpc, + unsigned int unit_bits, + long lb, + long ub, + const asn_per_constraints_t *pc); + +int OCTET_STRING_per_put_characters( + asn_per_outp_t *po, + const uint8_t *buf, + size_t units, + unsigned int bpc, + unsigned int unit_bits, + long lb, + long ub, + const asn_per_constraints_t *pc); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +/****************************** + * Handy conversion routines. * + ******************************/ + +/* + * This function clears the previous value of the OCTET STRING (if any) + * and then allocates a new memory with the specified content (str/size). + * If size = -1, the size of the original string will be determined + * using strlen(str). + * If str equals to NULL, the function will silently clear the + * current contents of the OCTET STRING. + * Returns 0 if it was possible to perform operation, -1 otherwise. + */ +int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); + +/* Handy conversion from the C string into the OCTET STRING. */ +#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) + +/* + * Allocate and fill the new OCTET STRING and return a pointer to the newly + * allocated object. NULL is permitted in str: the function will just allocate + * empty OCTET STRING. + */ +OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, + const char *str, int size); + +/**************************** + * Internally useful stuff. * + ****************************/ + +typedef struct asn_OCTET_STRING_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the structure */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + enum asn_OS_Subvariant { + ASN_OSUBV_ANY, /* The open type (ANY) */ + ASN_OSUBV_BIT, /* BIT STRING */ + ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ + ASN_OSUBV_U16, /* 16-bit character (BMPString) */ + ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ + } subvariant; +} asn_OCTET_STRING_specifics_t; + +extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; + +size_t OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, + size_t max_length); + +#if !defined(ASN_DISABLE_BER_SUPPORT) +struct _stack_el { + ber_tlv_len_t left; /* What's left to read (or -1) */ + ber_tlv_len_t got; /* What was actually processed */ + unsigned cont_level; /* Depth of subcontainment */ + int want_nulls; /* Want null "end of content" octets? */ + int bits_chopped; /* Flag in BIT STRING mode */ + ber_tlv_tag_t tag; /* For debugging purposes */ + struct _stack_el *prev; + struct _stack_el *next; +}; +struct _stack { + struct _stack_el *tail; + struct _stack_el *cur_ptr; +}; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _OCTET_STRING_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OPEN_TYPE.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OPEN_TYPE.h new file mode 100644 index 000000000..41160790e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/OPEN_TYPE.h @@ -0,0 +1,128 @@ +/*- + * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_OPEN_TYPE_H +#define ASN_OPEN_TYPE_H + +#include +///////////#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Decode an Open Type which is potentially constraiend + * by the other members of the parent structure. + */ + +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#define OPEN_TYPE_free CHOICE_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define OPEN_TYPE_print CHOICE_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define OPEN_TYPE_compare CHOICE_compare +#define OPEN_TYPE_copy CHOICE_copy + +#define OPEN_TYPE_constraint CHOICE_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_ber_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); +#define OPEN_TYPE_decode_ber NULL +#define OPEN_TYPE_encode_der CHOICE_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_xer_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); +#define OPEN_TYPE_decode_xer NULL +#define OPEN_TYPE_encode_xer CHOICE_encode_xer +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_jer_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); +#define OPEN_TYPE_decode_jer NULL +#define OPEN_TYPE_encode_jer CHOICE_encode_jer +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_oer_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + asn_TYPE_member_t *element, const void *ptr, + size_t size); +#define OPEN_TYPE_decode_oer NULL +asn_enc_rval_t OPEN_TYPE_encode_oer( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_oer_constraints_t *constraints, const void *struct_ptr, + asn_app_consume_bytes_f *consume_bytes_cb, void *app_key); +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_uper_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); +#define OPEN_TYPE_decode_uper NULL +asn_enc_rval_t OPEN_TYPE_encode_uper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +asn_dec_rval_t OPEN_TYPE_aper_get( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); +#define OPEN_TYPE_decode_aper NULL +asn_enc_rval_t OPEN_TYPE_encode_aper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +int OPEN_TYPE_aper_is_unknown_type( + const asn_TYPE_descriptor_t *td, + void *sptr, + const asn_TYPE_member_t *elm); + +asn_dec_rval_t OPEN_TYPE_aper_unknown_type_discard_bytes( + asn_per_data_t *pd); +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_OPEN_TYPE_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ObjectDescriptor.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ObjectDescriptor.h new file mode 100644 index 000000000..070a6e7de --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ObjectDescriptor.h @@ -0,0 +1,55 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _ObjectDescriptor_H_ +#define _ObjectDescriptor_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef GraphicString_t ObjectDescriptor_t; /* Implemented via GraphicString */ + +extern asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor; +extern asn_TYPE_operation_t asn_OP_ObjectDescriptor; + +#define ObjectDescriptor_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define ObjectDescriptor_print OCTET_STRING_print_utf8 +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define ObjectDescriptor_constraint asn_generic_unknown_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define ObjectDescriptor_decode_ber OCTET_STRING_decode_ber +#define ObjectDescriptor_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define ObjectDescriptor_decode_xer OCTET_STRING_decode_xer_utf8 +#define ObjectDescriptor_encode_xer OCTET_STRING_encode_xer_utf8 +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define ObjectDescriptor_decode_jer OCTET_STRING_decode_jer_utf8 +#define ObjectDescriptor_encode_jer OCTET_STRING_encode_jer_utf8 +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define ObjectDescriptor_decode_uper OCTET_STRING_decode_uper +#define ObjectDescriptor_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define ObjectDescriptor_decode_aper OCTET_STRING_decode_aper +#define ObjectDescriptor_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _ObjectDescriptor_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/UTF8String.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/UTF8String.h new file mode 100644 index 000000000..5f599f110 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/UTF8String.h @@ -0,0 +1,86 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UTF8String_H_ +#define _UTF8String_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t UTF8String_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_UTF8String; +extern asn_TYPE_operation_t asn_OP_UTF8String; + +#define UTF8String_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f UTF8String_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define UTF8String_compare OCTET_STRING_compare +#define UTF8String_copy OCTET_STRING_copy + +asn_constr_check_f UTF8String_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define UTF8String_decode_ber OCTET_STRING_decode_ber +#define UTF8String_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define UTF8String_decode_xer OCTET_STRING_decode_xer_utf8 +#define UTF8String_encode_xer OCTET_STRING_encode_xer_utf8 +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define UTF8String_decode_jer OCTET_STRING_decode_jer_utf8 +#define UTF8String_encode_jer OCTET_STRING_encode_jer_utf8 +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define UTF8String_decode_uper OCTET_STRING_decode_uper +#define UTF8String_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define UTF8String_decode_aper OCTET_STRING_decode_aper +#define UTF8String_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f UTF8String_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +/* + * Returns length of the given UTF-8 string in characters, + * or a negative error code: + * -1: UTF-8 sequence truncated + * -2: Illegal UTF-8 sequence start + * -3: Continuation expectation failed + * -4: Not minimal length encoding + * -5: Invalid arguments + */ +ssize_t UTF8String_length(const UTF8String_t *st); + +/* + * Convert the UTF-8 string into a sequence of wide characters. + * Returns the number of characters necessary. + * Returned value might be greater than dstlen. + * In case of conversion error, 0 is returned. + * + * If st points to a valid UTF-8 string, calling + * UTF8String_to_wcs(st, 0, 0); + * is equivalent to + * UTF8String_length(const UTF8String_t *st); + */ +size_t UTF8String_to_wcs(const UTF8String_t *st, uint32_t *dst, size_t dstlen); + +#ifdef __cplusplus +} +#endif + +#endif /* _UTF8String_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_decoder.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_decoder.h new file mode 100644 index 000000000..0751dcbbc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_decoder.h @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_DECODER_H_ +#define _APER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Aligned PER decoder of a "complete encoding" as per X.691#10.1. + * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. + */ +asn_dec_rval_t aper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ + ); + +/* + * Aligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t aper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of data buffer */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ + ); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_DECODER_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_encoder.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_encoder.h new file mode 100644 index 000000000..4e2ca55c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_encoder.h @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_ENCODER_H_ +#define _APER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Aligned PER encoder of any ASN.1 type. May be invoked by the application. + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. Use the following formula to convert to bytes: + * bytes = ((.encoded + 7) / 8) + */ +asn_enc_rval_t aper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * A variant of aper_encode() which encodes data into the existing buffer + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. + */ +asn_enc_rval_t aper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); + +/* + * A variant of aper_encode_to_buffer() which allocates buffer itself. + * Returns the number of bytes in the buffer or -1 in case of failure. + * WARNING: This function produces a "Production of the complete encoding", + * with length of at least one octet. Contrast this to precise bit-packing + * encoding of aper_encode() and aper_encode_to_buffer(). + */ +ssize_t +aper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *td, + const asn_per_constraints_t *constraints, + const void *sptr, + void **buffer_r +); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_ENCODER_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_opentype.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_opentype.h new file mode 100644 index 000000000..88b2c0a61 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_opentype.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_OPENTYPE_H_ +#define _APER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + + +int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); + +int aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_OPENTYPE_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_support.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_support.h new file mode 100644 index 000000000..b52da03d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/aper_support.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _APER_SUPPORT_H_ +#define _APER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Get the length "n" from the Aligned PER stream. + */ +ssize_t aper_get_length(asn_per_data_t *pd, ssize_t lb, ssize_t ub, + int effective_bound_bits, int *repeat); + +/* + * Get the normally small length "n". + */ +ssize_t aper_get_nslength(asn_per_data_t *pd); + +/* + * Get the normally small non-negative whole number. + */ +ssize_t aper_get_nsnnwn(asn_per_data_t *pd); + +/* + * Get the constrained whole number. + */ +long aper_get_constrained_whole_number(asn_per_data_t *po, long lb, long ub); + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" to the Aligned PER stream. + * If (opt_need_eom) is given, it will be set to 1 if final 0-n is needed. + * In that case, invoke aper_put_length(po, -1, -1, 0, NULL) after encoding the + * last block. + * This function returns the number of units which may be flushed + * in the next units saving iteration. + */ +ssize_t aper_put_length(asn_per_outp_t *po, ssize_t lb, ssize_t ub, size_t n, + int *opt_need_eom); + +/* Align the current bit position to octet bundary */ +int aper_put_align(asn_per_outp_t *po); +int32_t aper_get_align(asn_per_data_t *pd); + +/* + * Put the normally small length "n" to the Unaligned PER stream. + * Returns 0 or -1. + */ +int aper_put_nslength(asn_per_outp_t *po, size_t length); + +/* + * Put the normally small non-negative whole number. + */ +int aper_put_nsnnwn(asn_per_outp_t *po, int number); + +/* + * Put the constrained whole number. + */ +int aper_put_constrained_whole_number(asn_per_outp_t *po, long lb, long ub, long number); + +#ifdef __cplusplus +} +#endif + +#endif /* _APER_SUPPORT_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_SEQUENCE_OF.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_SEQUENCE_OF.h new file mode 100644 index 000000000..5ad724d4d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_SEQUENCE_OF.h @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SEQUENCE_OF_H +#define ASN_SEQUENCE_OF_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * SEQUENCE OF is the same as SET OF with a tiny difference: + * the delete operation preserves the initial order of elements + * and thus MAY operate in non-constant time. + */ +#define A_SEQUENCE_OF(type) A_SET_OF(type) + +#define ASN_SEQUENCE_ADD(headptr, ptr) \ + asn_sequence_add((headptr), (ptr)) + +/*********************************************** + * Implementation of the SEQUENCE OF structure. + */ + +#define asn_sequence_add asn_set_add +#define asn_sequence_empty asn_set_empty + +/* + * Delete the element from the set by its number (base 0). + * This is NOT a constant-time operation. + * The order of elements is preserved. + * If _do_free is given AND the (*free) is initialized, the element + * will be freed using the custom (*free) function as well. + */ +void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); + +/* + * Cope with different conversions requirements to/from void in C and C++. + * This is mostly useful for support library. + */ +typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; +#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) +#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_SEQUENCE_OF_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_SET_OF.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_SET_OF.h new file mode 100644 index 000000000..882e1a47d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_SET_OF.h @@ -0,0 +1,72 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SET_OF_H +#define ASN_SET_OF_H + +#ifdef __cplusplus +#define A_SET_OF(type) \ + struct { \ + type **array; \ + int count; /* Meaningful size */ \ + int size; /* Allocated size */ \ + void (*free)(decltype(*array)); \ + } +#else /* C */ +#define A_SET_OF(type) \ + struct { \ + type **array; \ + int count; /* Meaningful size */ \ + int size; /* Allocated size */ \ + void (*free)(type *); \ + } +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define ASN_SET_ADD(headptr, ptr) \ + asn_set_add((headptr), (ptr)) + +/******************************************* + * Implementation of the SET OF structure. + */ + +/* + * Add another structure into the set by its pointer. + * RETURN VALUES: + * 0 for success and -1/errno for failure. + */ +int asn_set_add(void *asn_set_of_x, void *ptr); + +/* + * Delete the element from the set by its number (base 0). + * This is a constant-time operation. The order of elements before the + * deleted ones is guaranteed, the order of elements after the deleted + * one is NOT guaranteed. + * If _do_free is given AND the (*free) is initialized, the element + * will be freed using the custom (*free) function as well. + */ +void asn_set_del(void *asn_set_of_x, int number, int _do_free); + +/* + * Empty the contents of the set. Will free the elements, if (*free) is given. + * Will NOT free the set itself. + */ +void asn_set_empty(void *asn_set_of_x); + +/* + * Cope with different conversions requirements to/from void in C and C++. + * This is mostly useful for support library. + */ +typedef A_SET_OF(void) asn_anonymous_set_; +#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) +#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_SET_OF_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_application.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_application.h new file mode 100644 index 000000000..b96763cd4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_application.h @@ -0,0 +1,179 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Application-level ASN.1 callbacks. + */ +#ifndef ASN_APPLICATION_H +#define ASN_APPLICATION_H + +#include "etsi_its_cam_ts_coding/asn_system.h" /* for platform-dependent types */ +#include "etsi_its_cam_ts_coding/asn_codecs.h" /* for ASN.1 codecs specifics */ +#include "etsi_its_cam_ts_coding/asn_config.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A selection of ASN.1 Transfer Syntaxes to use with generalized + * encoders and decoders declared further in this .h file. + */ +enum asn_transfer_syntax { + /* Avoid appearance of a default transfer syntax. */ + ATS_INVALID = 0, + /* Plaintext output (not conforming to any standard), for debugging. */ + ATS_NONSTANDARD_PLAINTEXT, + /* Returns a randomly generated structure. */ + ATS_RANDOM, + /* + * X.690: + * BER: Basic Encoding Rules. + * DER: Distinguished Encoding Rules. + * CER: Canonical Encoding Rules. + * DER and CER are more strict variants of BER. + */ + ATS_BER, + ATS_DER, + ATS_CER, /* Only decoding is supported */ + /* + * X.696: + * OER: Octet Encoding Rules. + * CANONICAL-OER is a more strict variant of BASIC-OER. + */ + ATS_BASIC_OER, + ATS_CANONICAL_OER, + /* + * X.691: + * PER: Packed Encoding Rules. + * CANONICAL-PER is a more strict variant of BASIC-PER. + * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). + */ + ATS_UNALIGNED_BASIC_PER, + ATS_UNALIGNED_CANONICAL_PER, + ATS_ALIGNED_BASIC_PER, + ATS_ALIGNED_CANONICAL_PER, + /* + * X.693: + * XER: XML Encoding Rules. + * CANONICAL-XER is a more strict variant of BASIC-XER. + */ + ATS_BASIC_XER, + ATS_CANONICAL_XER, + /* + * X.697: + * JER: JSON Encoding Rules. + * MINIFIED produces a whitespace-free JSON. + */ + ATS_JER, + ATS_JER_MINIFIED, +}; + +/* + * A generic encoder for any supported transfer syntax. + * RETURN VALUES: + * The (.encoded) field of the return value is REDEFINED to mean the following: + * >=0: The computed size of the encoded data. Can exceed the (buffer_size). + * -1: Error encoding the structure. See the error code in (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate + * values at the place of failure, if at all possible. + * WARNING: The (.encoded) field of the return value can exceed the buffer_size. + * This is similar to snprintf(3) contract which might return values + * greater than the buffer size. + */ +asn_enc_rval_t asn_encode_to_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, void *buffer, size_t buffer_size); + +/* + * A variant of asn_encode_to_buffer() with automatically allocated buffer. + * RETURN VALUES: + * On success, returns a newly allocated (.buffer) containing the whole message. + * The message size is returned in (.result.encoded). + * On failure: + * (.buffer) is NULL, + * (.result.encoded) as in asn_encode_to_buffer(), + * The errno codes as in asn_encode_to_buffer(), plus the following: + * ENOMEM: Memory allocation failed due to system or internal limits. + * The user is responsible for freeing the (.buffer). + */ +typedef struct asn_encode_to_new_buffer_result_s { + void *buffer; /* NULL if failed to encode. */ + asn_enc_rval_t result; +} asn_encode_to_new_buffer_result_t; +asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode); + + +/* + * Generic type of an application-defined callback to return various + * types of data to the application. + * EXPECTED RETURN VALUES: + * -1: Failed to consume bytes. Abort the mission. + * Non-negative return values indicate success, and ignored. + */ +typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, + void *application_specific_key); + + +/* + * A generic encoder for any supported transfer syntax. + * Returns the comprehensive encoding result descriptor (see asn_codecs.h). + * RETURN VALUES: + * The negative (.encoded) field of the return values is accompanied with the + * following error codes (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * EIO: The (callback) has returned negative value during encoding. + */ +asn_enc_rval_t asn_encode( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, + asn_app_consume_bytes_f *callback, void *callback_key); + + +/* + * A generic decoder for any supported transfer syntax. + */ +asn_dec_rval_t asn_decode( + const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_decode, + void **structure_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ +); + + +/* + * A callback of this type is called whenever constraint validation fails + * on some ASN.1 type. See "constraints.h" for more details on constraint + * validation. + * This callback specifies a descriptor of the ASN.1 type which failed + * the constraint check, as well as human readable message on what + * particular constraint has failed. + */ +typedef void (asn_app_constraint_failed_f)(void *application_specific_key, + const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, + const void *structure_which_failed_ptr, + const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); + + +#ifdef __cplusplus +} +#endif + +#include "etsi_its_cam_ts_coding/constr_TYPE.h" /* for asn_TYPE_descriptor_t */ + +#endif /* ASN_APPLICATION_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_bit_data.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_bit_data.h new file mode 100644 index 000000000..970fc0677 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_bit_data.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_BIT_DATA +#define ASN_BIT_DATA + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This structure describes a position inside an incoming PER bit stream. + */ +typedef struct asn_bit_data_s { + const uint8_t *buffer; /* Pointer to the octet stream */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits in the stream */ + size_t moved; /* Number of bits moved through this bit stream */ + int (*refill)(struct asn_bit_data_s *); + void *refill_key; +} asn_bit_data_t; + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); + +/* Undo the immediately preceding "get_few_bits" operation */ +void asn_get_undo(asn_bit_data_t *, int get_nbits); + +/* + * Extract a large number of bits from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, + int get_nbits); + +/* Non-thread-safe debugging function, don't use it */ +char *asn_bit_data_string(asn_bit_data_t *); + +/* + * This structure supports forming bit output. + */ +typedef struct asn_bit_outp_s { + uint8_t *buffer; /* Pointer into the (tmpspace) */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits left in (tmpspace) */ + uint8_t tmpspace[32]; /* Preliminary storage to hold data */ + int (*output)(const void *data, size_t size, void *op_key); + void *op_key; /* Key for (output) data callback */ + size_t flushed_bytes; /* Bytes already flushed through (output) */ +} asn_bit_outp_t; + +/* Output a small number of bits (<= 31) */ +int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); + +/* Output a large number of bits */ +int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); + +/* + * Flush whole bytes (0 or more) through (outper) member. + * The least significant bits which are not used are guaranteed to be set to 0. + * Returns -1 if callback returns -1. Otherwise, 0. + */ +int asn_put_aligned_flush(asn_bit_outp_t *); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_BIT_DATA */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_codecs.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_codecs.h new file mode 100644 index 000000000..e75c2709c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_codecs.h @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_H +#define ASN_CODECS_H + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * This structure defines a set of parameters that may be passed + * to every ASN.1 encoder or decoder function. + * WARNING: if max_stack_size member is set, and you are calling the + * function pointers of the asn_TYPE_descriptor_t directly, + * this structure must be ALLOCATED ON THE STACK! + * If you can't always satisfy this requirement, use ber_decode(), + * xer_decode() and uper_decode() functions instead. + */ +typedef struct asn_codec_ctx_s { + /* + * Limit the decoder routines to use no (much) more stack than a given + * number of bytes. Most of decoders are stack-based, and this + * would protect against stack overflows if the number of nested + * encodings is high. + * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, + * and are safe from this kind of overflow. + * A value from getrlimit(RLIMIT_STACK) may be used to initialize + * this variable. Be careful in multithreaded environments, as the + * stack size is rather limited. + */ + size_t max_stack_size; /* 0 disables stack bounds checking */ +} asn_codec_ctx_t; + +/* + * Type of the return value of the encoding functions (der_encode, xer_encode). + */ +typedef struct asn_enc_rval_s { + /* + * Number of bytes encoded. + * -1 indicates failure to encode the structure. + * In this case, the members below this one are meaningful. + */ + ssize_t encoded; + + /* + * Members meaningful when (encoded == -1), for post mortem analysis. + */ + + /* Type which cannot be encoded */ + const struct asn_TYPE_descriptor_s *failed_type; + + /* Pointer to the structure of that type */ + const void *structure_ptr; +} asn_enc_rval_t; +#define ASN__ENCODE_FAILED do { \ + asn_enc_rval_t tmp_error; \ + tmp_error.encoded = -1; \ + tmp_error.failed_type = td; \ + tmp_error.structure_ptr = sptr; \ + ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ + return tmp_error; \ +} while(0) +#define ASN__ENCODED_OK(rval) do { \ + rval.structure_ptr = 0; \ + rval.failed_type = 0; \ + return rval; \ +} while(0) + +/* + * Type of the return value of the decoding functions (ber_decode, xer_decode) + * + * Please note that the number of consumed bytes is ALWAYS meaningful, + * even if code==RC_FAIL. This is to indicate the number of successfully + * decoded bytes, hence providing a possibility to fail with more diagnostics + * (i.e., print the offending remainder of the buffer). + */ +enum asn_dec_rval_code_e { + RC_OK, /* Decoded successfully */ + RC_WMORE, /* More data expected, call again */ + RC_FAIL /* Failure to decode data */ +}; +typedef struct asn_dec_rval_s { + enum asn_dec_rval_code_e code; /* Result code */ + size_t consumed; /* Number of bytes consumed */ +} asn_dec_rval_t; +#define ASN__DECODE_FAILED do { \ + asn_dec_rval_t tmp_error; \ + tmp_error.code = RC_FAIL; \ + tmp_error.consumed = 0; \ + ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ + return tmp_error; \ +} while(0) +#define ASN__DECODE_STARVED do { \ + asn_dec_rval_t tmp_error; \ + tmp_error.code = RC_WMORE; \ + tmp_error.consumed = 0; \ + return tmp_error; \ +} while(0) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_codecs_prim.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_codecs_prim.h new file mode 100644 index 000000000..1bec90093 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_codecs_prim.h @@ -0,0 +1,82 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_PRIM_H +#define ASN_CODECS_PRIM_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ASN__PRIMITIVE_TYPE_s { + uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ + size_t size; /* Size of the buffer */ +} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ + +asn_struct_free_f ASN__PRIMITIVE_TYPE_free; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f ber_decode_primitive; +der_type_encoder_f der_encode_primitive; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +/* + * A callback specification for the xer_decode_primitive() function below. + */ +enum xer_pbd_rval { + XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ + XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ + XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ + XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ + XPBD_BODY_CONSUMED /* Body is recognized and consumed */ +}; +typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( + const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, + size_t chunk_size); + +/* + * Specific function to decode simple primitive types. + * Also see xer_decode_general() in xer_decoder.h + */ +asn_dec_rval_t xer_decode_primitive( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder); +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +/* + * A callback specification for the jer_decode_primitive() function below. + */ +enum jer_pbd_rval { + JPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ + JPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ + JPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ + JPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ + JPBD_BODY_CONSUMED /* Body is recognized and consumed */ +}; +typedef enum jer_pbd_rval(jer_primitive_body_decoder_f)( + const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, + size_t chunk_size); + +/* + * Specific function to decode simple primitive types. + * Also see jer_decode_general() in jer_decoder.h + */ +asn_dec_rval_t jer_decode_primitive( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + size_t struct_size, const void *buf_ptr, size_t size, + jer_primitive_body_decoder_f *prim_body_decoder); +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_PRIM_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_config.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_config.h new file mode 100644 index 000000000..ddcac9026 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_config.h @@ -0,0 +1,6 @@ +// Generated automatically. Don't edit manually! + +#define ASN_DISABLE_BER_SUPPORT 1 +#define ASN_DISABLE_XER_SUPPORT 1 +#define ASN_DISABLE_OER_SUPPORT 1 +#define ASN_DISABLE_JER_SUPPORT 1 diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_internal.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_internal.h new file mode 100644 index 000000000..98b9c1605 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_internal.h @@ -0,0 +1,187 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Declarations internally useful for the ASN.1 support code. + */ +#ifndef ASN_INTERNAL_H +#define ASN_INTERNAL_H +#ifndef __EXTENSIONS__ +#define __EXTENSIONS__ /* for Sun */ +#endif + +#include "etsi_its_cam_ts_coding/asn_application.h" /* Application-visible API */ + +#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ +#include /* for assert() macro */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#include +#include +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#include +#include +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +/* Environment version might be used to avoid running with the old library */ +#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ +int get_asn1c_environment_version(void); /* Run-time version */ + +#define CALLOC(nmemb, size) calloc(nmemb, size) +#define MALLOC(size) malloc(size) +#define REALLOC(oldptr, size) realloc(oldptr, size) +#define FREEMEM(ptr) free(ptr) + +#define asn_debug_indent 0 +#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) + +#ifdef EMIT_ASN_DEBUG +#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" +#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG +#endif + +/* + * A macro for debugging the ASN.1 internals. + * You may enable or override it. + */ +#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ +#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ +#if __STDC_VERSION__ >= 199901L +#ifdef ASN_THREAD_SAFE +/* Thread safety requires sacrifice in output indentation: + * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ +#else /* !ASN_THREAD_SAFE */ +#undef ASN_DEBUG_INDENT_ADD +#undef asn_debug_indent +int asn_debug_indent; +#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) +#endif /* ASN_THREAD_SAFE */ +#define ASN_DEBUG(fmt, args...) do { \ + int adi = asn_debug_indent; \ + while(adi--) fprintf(stderr, " "); \ + fprintf(stderr, fmt, ##args); \ + fprintf(stderr, " (%s:%d)\n", \ + __FILE__, __LINE__); \ + } while(0) +#else /* !C99 */ +void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); +#define ASN_DEBUG ASN_DEBUG_f +#endif /* C99 */ +#else /* ASN_EMIT_DEBUG != 1 */ +#if __STDC_VERSION__ >= 199901L +#define ASN_DEBUG(...) do{}while(0) +#else /* not C99 */ +static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } +#endif /* C99 or better */ +#endif /* ASN_EMIT_DEBUG */ +#endif /* ASN_DEBUG */ + +/* + * Print to a callback. + * The callback is expected to return negative values on error. + * 0 and positive values are treated as success. + * RETURN VALUES: + * -1: Failed to format or invoke the callback. + * >0: Size of the data that got delivered to the callback. + */ +ssize_t CC_PRINTFLIKE(3, 4) +asn__format_to_callback( + int (*callback)(const void *, size_t, void *key), void *key, + const char *fmt, ...); + +/* + * Invoke the application-supplied callback and fail, if something is wrong. + */ +#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) +#define ASN__E_CALLBACK(size, foo) \ + do { \ + if(foo) goto cb_failed; \ + er.encoded += (size); \ + } while(0) +#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) +#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ + ASN__E_CALLBACK((size1) + (size2), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) +#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ + ASN__E_CALLBACK((size1) + (size2) + (size3), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ + || ASN__E_cbc(buf3, size3)) + +#define ASN__TEXT_INDENT(nl, level) \ + do { \ + int tmp_level = (level); \ + int tmp_nl = ((nl) != 0); \ + int tmp_i; \ + if(tmp_nl) ASN__CALLBACK("\n", 1); \ + if(tmp_level < 0) tmp_level = 0; \ + for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ + } while(0) + +#define _i_INDENT(nl) do { \ + int tmp_i; \ + if((nl) && cb("\n", 1, app_key) < 0) \ + return -1; \ + for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ + if(cb(" ", 4, app_key) < 0) \ + return -1; \ + } while(0) + +/* + * Check stack against overflow, if limit is set. + */ + +/* Since GCC 13, AddressSanitizer started defaulting to +* ASAN_OPTIONS="detect_stack_use_after_return=1", which makes this check +* fail due to apparently jumping stack pointers. +* Hence, disable this check if building with ASan, as documented in: +* GCC: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html +* Clang: https://clang.llvm.org/docs/AddressSanitizer.html#conditional-compilation-with-has-feature-address-sanitizer +*/ +#if defined(__SANITIZE_ADDRESS__) + #define ASN__SANITIZE_ENABLED 1 +#elif defined(__has_feature) +#if __has_feature(address_sanitizer) + #define ASN__SANITIZE_ENABLED 1 +#endif +#endif + +#define ASN__DEFAULT_STACK_MAX (30000) + +#if defined(ASN__SANITIZE_ENABLED) || defined(ASN_DISABLE_STACK_OVERFLOW_CHECK) +static int CC_NOTUSED +ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { + (void)ctx; + return 0; +} +#else +static int CC_NOTUSED +ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { + if(ctx && ctx->max_stack_size) { + + /* ctx MUST be allocated on the stack */ + ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); + if(usedstack > 0) usedstack = -usedstack; /* grows up! */ + + /* double negative required to avoid int wrap-around */ + if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { + ASN_DEBUG("Stack limit %ld reached", + (long)ctx->max_stack_size); + return -1; + } + } + return 0; +} +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_INTERNAL_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_ioc.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_ioc.h new file mode 100644 index 000000000..1ada747a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_ioc.h @@ -0,0 +1,51 @@ +/* + * Run-time support for Information Object Classes. + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_IOC_H +#define ASN_IOC_H + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; +struct asn_ioc_cell_s; + +/* + * X.681, #13 + */ +typedef struct asn_ioc_set_s { + size_t rows_count; + size_t columns_count; + const struct asn_ioc_cell_s *rows; +} asn_ioc_set_t; + + +typedef struct asn_ioc_cell_s { + const char *field_name; /* Is equal to corresponding column_name */ + enum { + aioc__undefined = 0, + aioc__value, + aioc__type, + aioc__open_type, + } cell_kind; + struct asn_TYPE_descriptor_s *type_descriptor; + const void *value_sptr; + struct { + size_t types_count; + struct { + unsigned choice_position; + } *types; + } open_type; +} asn_ioc_cell_t; + + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_IOC_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_random_fill.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_random_fill.h new file mode 100644 index 000000000..47f9b8af0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_random_fill.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_RANDOM_FILL +#define ASN_RANDOM_FILL + +/* Forward declarations */ +struct asn_TYPE_descriptor_s; +struct asn_encoding_constraints_s; + +/* + * Initialize a structure with random data according to the type specification + * and optional member constraints. + * ARGUMENTS: + * (max_length) - See (approx_max_length_limit). + * (memb_constraints) - Member constraints, if exist. + * The type can be constrained differently according + * to PER and OER specifications, so we find a value + * at the intersection of these constraints. + * In case the return differs from ARFILL_OK, the (struct_ptr) contents + * and (current_length) value remain in their original state. + */ +typedef struct asn_random_fill_result_s { + enum { + ARFILL_FAILED = -1, /* System error (memory?) */ + ARFILL_OK = 0, /* Initialization succeeded */ + ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ + } code; + size_t length; /* Approximate number of bytes created. */ +} asn_random_fill_result_t; +typedef asn_random_fill_result_t(asn_random_fill_f)( + const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + const struct asn_encoding_constraints_s *memb_constraints, + size_t max_length); + +/* + * Returns 0 if the structure was properly initialized, -1 otherwise. + * The (approx_max_length_limit) specifies the approximate limit of the + * resulting structure in units closely resembling bytes. The actual result + * might be several times larger or smaller than the length limit. + */ +int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t approx_max_length_limit); + +/* + * Returns a random number between min and max. + */ +intmax_t asn_random_between(intmax_t min, intmax_t max); + +#endif /* ASN_RANDOM_FILL */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_system.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_system.h new file mode 100644 index 000000000..194f96a5f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/asn_system.h @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Miscellaneous system-dependent types. + */ +#ifndef ASN_SYSTEM_H +#define ASN_SYSTEM_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE 1 +#endif + +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* for snprintf() on some linux systems */ +#endif + +#include /* For snprintf(3) */ +#include /* For *alloc(3) */ +#include /* For memcpy(3) */ +#include /* For size_t */ +#include /* For LONG_MAX */ +#include /* For va_start */ +#include /* for offsetof and ptrdiff_t */ +#include /* for PRIdMAX */ + +#ifdef _WIN32 + +#include +#ifndef __MINGW32__ +#define snprintf _snprintf +#define vsnprintf _vsnprintf +#endif + +/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ +#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ + | (((l) << 8) & 0xff0000) \ + | (((l) >> 8) & 0xff00) \ + | ((l >> 24) & 0xff)) + +#ifdef _MSC_VER /* MSVS.Net */ +#ifndef __cplusplus +#define inline __inline +#endif +#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ +#define ssize_t SSIZE_T +#if _MSC_VER < 1600 +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#else /* _MSC_VER >= 1600 */ +#include +#endif /* _MSC_VER < 1600 */ +#endif /* ASSUMESTDTYPES */ +#define WIN32_LEAN_AND_MEAN +#include +#include +#define isnan _isnan +#define finite _finite +#define copysign _copysign +#define ilogb _logb +#else /* !_MSC_VER */ +#include +#endif /* _MSC_VER */ + +#else /* !_WIN32 */ + +#if defined(__vxworks) +#include +#else /* !defined(__vxworks) */ + +#include /* C99 specifies this file */ +#ifdef HAVE_ARPA_INET_H +#include /* for ntohl() */ +#define sys_ntohl(foo) ntohl(foo) +#else /* !_HAVE_ARPA_INET_H */ +#ifdef HAVE_NETINET_IN_H +#include /* for ntohl() */ +#define sys_ntohl(foo) ntohl(foo) +#else /* !_HAVE_NETINET_IN_H */ +/* Here's the definition of ntohl() */ +#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ + | (((l) << 8) & 0xff0000) \ + | (((l) >> 8) & 0xff00) \ + | ((l >> 24) & 0xff)) +#endif /* HAVE_NETINET_IN_H */ +#endif /* HAVE_ARPA_INET_H */ +#endif /* defined(__vxworks) */ + + +#endif /* _WIN32 */ + +#if __GNUC__ >= 3 || defined(__clang__) +#define CC_ATTRIBUTE(attr) __attribute__((attr)) +#else +#define CC_ATTRIBUTE(attr) +#endif +#if defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__>= 4) || __GNUC__ > 4) +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(gnu_printf, fmt, var)) +#elif defined(__GNUC__) +#if defined(ANDROID) +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(__format__(__printf__, fmt, var)) +#else +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) +#endif +#else +#define CC_PRINTFLIKE(fmt, var) +#endif +#define CC_NOTUSED CC_ATTRIBUTE(unused) +#ifndef CC_ATTR_NO_SANITIZE +#if __GNUC__ < 8 +#define CC_ATTR_NO_SANITIZE(what) +#else +#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) +#endif +#endif + +/* Figure out if thread safety is requested */ +#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) +#define ASN_THREAD_SAFE +#endif /* Thread safety */ + +#ifndef offsetof /* If not defined by */ +#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) +#endif /* offsetof */ + +#ifndef MIN /* Suitable for comparing primitive types (integers) */ +#if defined(__GNUC__) +#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ + ((_a)<(_b)?(_a):(_b)); }) +#else /* !__GNUC__ */ +#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ +#endif /* __GNUC__ */ +#endif /* MIN */ + +#if __STDC_VERSION__ >= 199901L +#ifndef SIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#endif + +#ifndef RSIZE_MAX /* C11, Annex K */ +#define RSIZE_MAX (SIZE_MAX >> 1) +#endif +#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif +#else /* Old compiler */ +#undef SIZE_MAX +#undef RSIZE_MAX +#undef RSSIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#define RSIZE_MAX (SIZE_MAX >> 1) +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif + +#if __STDC_VERSION__ >= 199901L +#define ASN_PRI_SIZE "zu" +#define ASN_PRI_SSIZE "zd" +#define ASN_PRIuMAX PRIuMAX +#define ASN_PRIdMAX PRIdMAX +#define ASN_PRIu64 PRIu64 +#define ASN_PRId64 PRId64 +#else +#define ASN_PRI_SIZE "lu" +#define ASN_PRI_SSIZE "ld" +#define ASN_PRIu64 "llu" +#define ASN_PRId64 "lld" +#if LLONG_MAX > LONG_MAX +#define ASN_PRIuMAX "llu" +#define ASN_PRIdMAX "lld" +#else +#define ASN_PRIuMAX "lu" +#define ASN_PRIdMAX "ld" +#endif +#endif + +#endif /* ASN_SYSTEM_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ber_tlv_length.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ber_tlv_length.h new file mode 100644 index 000000000..d1e4d48dd --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ber_tlv_length.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_TLV_LENGTH_H_ +#define _BER_TLV_LENGTH_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ssize_t ber_tlv_len_t; + +/* + * This function tries to fetch the length of the BER TLV value and place it + * in *len_r. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + * On return with >0, len_r is constrained as -1..MAX, where -1 mean + * that the value is of indefinite length. + */ +ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, + ber_tlv_len_t *len_r); + +/* + * This function expects bufptr to be positioned over L in TLV. + * It returns number of bytes occupied by L and V together, suitable + * for skipping. The function properly handles indefinite length. + * RETURN VALUES: + * Standard {-1,0,>0} convention. + */ +ssize_t ber_skip_length( + const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ + int _is_constructed, const void *bufptr, size_t size); + +/* + * This function serializes the length (L from TLV) in DER format. + * It always returns number of bytes necessary to represent the length, + * it is a caller's responsibility to check the return value + * against the supplied buffer's size. + */ +size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ber_tlv_tag.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ber_tlv_tag.h new file mode 100644 index 000000000..ce227add6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/ber_tlv_tag.h @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_TLV_TAG_H_ +#define _BER_TLV_TAG_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +enum asn_tag_class { + ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ + ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ + ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ + ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ +}; +typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ + +/* + * Tag class is encoded together with tag value for optimization purposes. + */ +#define BER_TAG_CLASS(tag) ((tag) & 0x3) +#define BER_TAG_VALUE(tag) ((tag) >> 2) +#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) + +#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) + +/* + * Several functions for printing the TAG in the canonical form + * (i.e. "[PRIVATE 0]"). + * Return values correspond to their libc counterparts (if any). + */ +ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); +ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); +char *ber_tlv_tag_string(ber_tlv_tag_t tag); + + +/* + * This function tries to fetch the tag from the input stream. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering tag. + * >0: Number of bytes used from bufptr. tag_r will contain the tag. + */ +ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); + +/* + * This function serializes the tag (T from TLV) in BER format. + * It always returns number of bytes necessary to represent the tag, + * it is a caller's responsibility to check the return value + * against the supplied buffer's size. + */ +size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_TLV_TAG_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Acceleration3dWithConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Acceleration3dWithConfidence.h new file mode 100644 index 000000000..a1d8162d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Acceleration3dWithConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Acceleration3dWithConfidence_H_ +#define _cam_ts_Acceleration3dWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationPolarWithZ.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationCartesian.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Acceleration3dWithConfidence_PR { + cam_ts_Acceleration3dWithConfidence_PR_NOTHING, /* No components present */ + cam_ts_Acceleration3dWithConfidence_PR_polarAcceleration, + cam_ts_Acceleration3dWithConfidence_PR_cartesianAcceleration +} cam_ts_Acceleration3dWithConfidence_PR; + +/* cam_ts_Acceleration3dWithConfidence */ +typedef struct cam_ts_Acceleration3dWithConfidence { + cam_ts_Acceleration3dWithConfidence_PR present; + union cam_ts_Acceleration3dWithConfidence_u { + cam_ts_AccelerationPolarWithZ_t polarAcceleration; + cam_ts_AccelerationCartesian_t cartesianAcceleration; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Acceleration3dWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Acceleration3dWithConfidence; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_Acceleration3dWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Acceleration3dWithConfidence_1[2]; +extern asn_per_constraints_t asn_PER_type_cam_ts_Acceleration3dWithConfidence_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Acceleration3dWithConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationCartesian.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationCartesian.h new file mode 100644 index 000000000..79d389abb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationCartesian.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationCartesian_H_ +#define _cam_ts_AccelerationCartesian_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_AccelerationComponent; + +/* cam_ts_AccelerationCartesian */ +typedef struct cam_ts_AccelerationCartesian { + cam_ts_AccelerationComponent_t xAcceleration; + cam_ts_AccelerationComponent_t yAcceleration; + struct cam_ts_AccelerationComponent *zAcceleration; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_AccelerationCartesian_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationCartesian; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationCartesian_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_AccelerationCartesian_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h" + +#endif /* _cam_ts_AccelerationCartesian_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationChange.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationChange.h new file mode 100644 index 000000000..aab0d53fa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationChange.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationChange_H_ +#define _cam_ts_AccelerationChange_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AccelerationChange { + cam_ts_AccelerationChange_accelerate = 0, + cam_ts_AccelerationChange_decelerate = 1 +} e_cam_ts_AccelerationChange; + +/* cam_ts_AccelerationChange */ +typedef long cam_ts_AccelerationChange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AccelerationChange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationChange; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_AccelerationChange_specs_1; +asn_struct_free_f cam_ts_AccelerationChange_free; +asn_struct_print_f cam_ts_AccelerationChange_print; +asn_constr_check_f cam_ts_AccelerationChange_constraint; +per_type_decoder_f cam_ts_AccelerationChange_decode_uper; +per_type_encoder_f cam_ts_AccelerationChange_encode_uper; +per_type_decoder_f cam_ts_AccelerationChange_decode_aper; +per_type_encoder_f cam_ts_AccelerationChange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccelerationChange_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationChangeIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationChangeIndication.h new file mode 100644 index 000000000..fa709a65b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationChangeIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationChangeIndication_H_ +#define _cam_ts_AccelerationChangeIndication_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationChange.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_AccelerationChangeIndication */ +typedef struct cam_ts_AccelerationChangeIndication { + cam_ts_AccelerationChange_t accelOrDecel; + cam_ts_DeltaTimeTenthOfSecond_t actionDeltaTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_AccelerationChangeIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationChangeIndication; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccelerationChangeIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h new file mode 100644 index 000000000..86a6b89ed --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationComponent_H_ +#define _cam_ts_AccelerationComponent_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_AccelerationComponent */ +typedef struct cam_ts_AccelerationComponent { + cam_ts_AccelerationValue_t value; + cam_ts_AccelerationConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_AccelerationComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationComponent; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationComponent_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_AccelerationComponent_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccelerationComponent_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h new file mode 100644 index 000000000..aff19be38 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationConfidence_H_ +#define _cam_ts_AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AccelerationConfidence { + cam_ts_AccelerationConfidence_outOfRange = 101, + cam_ts_AccelerationConfidence_unavailable = 102 +} e_cam_ts_AccelerationConfidence; + +/* cam_ts_AccelerationConfidence */ +typedef long cam_ts_AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationConfidence; +asn_struct_free_f cam_ts_AccelerationConfidence_free; +asn_struct_print_f cam_ts_AccelerationConfidence_print; +asn_constr_check_f cam_ts_AccelerationConfidence_constraint; +per_type_decoder_f cam_ts_AccelerationConfidence_decode_uper; +per_type_encoder_f cam_ts_AccelerationConfidence_encode_uper; +per_type_decoder_f cam_ts_AccelerationConfidence_decode_aper; +per_type_encoder_f cam_ts_AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccelerationConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationControl.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationControl.h new file mode 100644 index 000000000..8ea078ae6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationControl.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationControl_H_ +#define _cam_ts_AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AccelerationControl { + cam_ts_AccelerationControl_brakePedalEngaged = 0, + cam_ts_AccelerationControl_gasPedalEngaged = 1, + cam_ts_AccelerationControl_emergencyBrakeEngaged = 2, + cam_ts_AccelerationControl_collisionWarningEngaged = 3, + cam_ts_AccelerationControl_accEngaged = 4, + cam_ts_AccelerationControl_cruiseControlEngaged = 5, + cam_ts_AccelerationControl_speedLimiterEngaged = 6 +} e_cam_ts_AccelerationControl; + +/* cam_ts_AccelerationControl */ +typedef BIT_STRING_t cam_ts_AccelerationControl_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AccelerationControl_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationControl; +asn_struct_free_f cam_ts_AccelerationControl_free; +asn_struct_print_f cam_ts_AccelerationControl_print; +asn_constr_check_f cam_ts_AccelerationControl_constraint; +per_type_decoder_f cam_ts_AccelerationControl_decode_uper; +per_type_encoder_f cam_ts_AccelerationControl_encode_uper; +per_type_decoder_f cam_ts_AccelerationControl_decode_aper; +per_type_encoder_f cam_ts_AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccelerationControl_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitude.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitude.h new file mode 100644 index 000000000..b12209913 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationMagnitude_H_ +#define _cam_ts_AccelerationMagnitude_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitudeValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_AccelerationMagnitude */ +typedef struct cam_ts_AccelerationMagnitude { + cam_ts_AccelerationMagnitudeValue_t accelerationMagnitudeValue; + cam_ts_AccelerationConfidence_t accelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_AccelerationMagnitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationMagnitude; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationMagnitude_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_AccelerationMagnitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccelerationMagnitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitudeValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitudeValue.h new file mode 100644 index 000000000..cb5bb1d00 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitudeValue.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationMagnitudeValue_H_ +#define _cam_ts_AccelerationMagnitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AccelerationMagnitudeValue { + cam_ts_AccelerationMagnitudeValue_positiveOutOfRange = 160, + cam_ts_AccelerationMagnitudeValue_unavailable = 161 +} e_cam_ts_AccelerationMagnitudeValue; + +/* cam_ts_AccelerationMagnitudeValue */ +typedef long cam_ts_AccelerationMagnitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AccelerationMagnitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationMagnitudeValue; +asn_struct_free_f cam_ts_AccelerationMagnitudeValue_free; +asn_struct_print_f cam_ts_AccelerationMagnitudeValue_print; +asn_constr_check_f cam_ts_AccelerationMagnitudeValue_constraint; +per_type_decoder_f cam_ts_AccelerationMagnitudeValue_decode_uper; +per_type_encoder_f cam_ts_AccelerationMagnitudeValue_encode_uper; +per_type_decoder_f cam_ts_AccelerationMagnitudeValue_decode_aper; +per_type_encoder_f cam_ts_AccelerationMagnitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccelerationMagnitudeValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationPolarWithZ.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationPolarWithZ.h new file mode 100644 index 000000000..c00a5c45f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationPolarWithZ.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationPolarWithZ_H_ +#define _cam_ts_AccelerationPolarWithZ_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_AccelerationComponent; + +/* cam_ts_AccelerationPolarWithZ */ +typedef struct cam_ts_AccelerationPolarWithZ { + cam_ts_AccelerationMagnitude_t accelerationMagnitude; + cam_ts_CartesianAngle_t accelerationDirection; + struct cam_ts_AccelerationComponent *zAcceleration; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_AccelerationPolarWithZ_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationPolarWithZ; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationPolarWithZ_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_AccelerationPolarWithZ_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h" + +#endif /* _cam_ts_AccelerationPolarWithZ_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationValue.h new file mode 100644 index 000000000..8a91b3916 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccelerationValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccelerationValue_H_ +#define _cam_ts_AccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AccelerationValue { + cam_ts_AccelerationValue_negativeOutOfRange = -160, + cam_ts_AccelerationValue_positiveOutOfRange = 160, + cam_ts_AccelerationValue_unavailable = 161 +} e_cam_ts_AccelerationValue; + +/* cam_ts_AccelerationValue */ +typedef long cam_ts_AccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationValue; +asn_struct_free_f cam_ts_AccelerationValue_free; +asn_struct_print_f cam_ts_AccelerationValue_print; +asn_constr_check_f cam_ts_AccelerationValue_constraint; +per_type_decoder_f cam_ts_AccelerationValue_decode_uper; +per_type_encoder_f cam_ts_AccelerationValue_encode_uper; +per_type_decoder_f cam_ts_AccelerationValue_decode_aper; +per_type_encoder_f cam_ts_AccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccessTechnologyClass.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccessTechnologyClass.h new file mode 100644 index 000000000..d0d4cb081 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccessTechnologyClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccessTechnologyClass_H_ +#define _cam_ts_AccessTechnologyClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AccessTechnologyClass { + cam_ts_AccessTechnologyClass_any = 0, + cam_ts_AccessTechnologyClass_itsg5Class = 1, + cam_ts_AccessTechnologyClass_ltev2xClass = 2, + cam_ts_AccessTechnologyClass_nrv2xClass = 3 + /* + * Enumeration is extensible + */ +} e_cam_ts_AccessTechnologyClass; + +/* cam_ts_AccessTechnologyClass */ +typedef long cam_ts_AccessTechnologyClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AccessTechnologyClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccessTechnologyClass; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_AccessTechnologyClass_specs_1; +asn_struct_free_f cam_ts_AccessTechnologyClass_free; +asn_struct_print_f cam_ts_AccessTechnologyClass_print; +asn_constr_check_f cam_ts_AccessTechnologyClass_constraint; +per_type_decoder_f cam_ts_AccessTechnologyClass_decode_uper; +per_type_encoder_f cam_ts_AccessTechnologyClass_encode_uper; +per_type_decoder_f cam_ts_AccessTechnologyClass_decode_aper; +per_type_encoder_f cam_ts_AccessTechnologyClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccessTechnologyClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccidentSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccidentSubCauseCode.h new file mode 100644 index 000000000..e1427268d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AccidentSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AccidentSubCauseCode_H_ +#define _cam_ts_AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AccidentSubCauseCode { + cam_ts_AccidentSubCauseCode_unavailable = 0, + cam_ts_AccidentSubCauseCode_multiVehicleAccident = 1, + cam_ts_AccidentSubCauseCode_heavyAccident = 2, + cam_ts_AccidentSubCauseCode_accidentInvolvingLorry = 3, + cam_ts_AccidentSubCauseCode_accidentInvolvingBus = 4, + cam_ts_AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + cam_ts_AccidentSubCauseCode_accidentOnOppositeLane = 6, + cam_ts_AccidentSubCauseCode_unsecuredAccident = 7, + cam_ts_AccidentSubCauseCode_assistanceRequested = 8 +} e_cam_ts_AccidentSubCauseCode; + +/* cam_ts_AccidentSubCauseCode */ +typedef long cam_ts_AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AccidentSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AccidentSubCauseCode; +asn_struct_free_f cam_ts_AccidentSubCauseCode_free; +asn_struct_print_f cam_ts_AccidentSubCauseCode_print; +asn_constr_check_f cam_ts_AccidentSubCauseCode_constraint; +per_type_decoder_f cam_ts_AccidentSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_AccidentSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_AccidentSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AccidentSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ActionId.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ActionId.h new file mode 100644 index 000000000..254e91105 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ActionId.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ActionId_H_ +#define _cam_ts_ActionId_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StationId.h" +#include "etsi_its_cam_ts_coding/cam_ts_SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ActionId */ +typedef struct cam_ts_ActionId { + cam_ts_StationId_t originatingStationId; + cam_ts_SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ActionId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ActionId; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ActionId_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ActionId_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ActionId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ActionIdList.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ActionIdList.h new file mode 100644 index 000000000..e4f8b2133 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ActionIdList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ActionIdList_H_ +#define _cam_ts_ActionIdList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_ActionId; + +/* cam_ts_ActionIdList */ +typedef struct cam_ts_ActionIdList { + A_SEQUENCE_OF(struct cam_ts_ActionId) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ActionIdList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ActionIdList; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_ActionId.h" + +#endif /* _cam_ts_ActionIdList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 000000000..1800041bc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode { + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +per_type_decoder_f cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 000000000..e2a2978b0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +per_type_decoder_f cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 000000000..835b135d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode { + cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +per_type_decoder_f cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 000000000..b6df8568f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode { + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +per_type_decoder_f cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AirHumidity.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AirHumidity.h new file mode 100644 index 000000000..a7a4d279b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AirHumidity.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AirHumidity_H_ +#define _cam_ts_AirHumidity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AirHumidity { + cam_ts_AirHumidity_oneHundredPercent = 1000, + cam_ts_AirHumidity_unavailable = 1001 +} e_cam_ts_AirHumidity; + +/* cam_ts_AirHumidity */ +typedef long cam_ts_AirHumidity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AirHumidity; +asn_struct_free_f cam_ts_AirHumidity_free; +asn_struct_print_f cam_ts_AirHumidity_print; +asn_constr_check_f cam_ts_AirHumidity_constraint; +per_type_decoder_f cam_ts_AirHumidity_decode_uper; +per_type_encoder_f cam_ts_AirHumidity_encode_uper; +per_type_decoder_f cam_ts_AirHumidity_decode_aper; +per_type_encoder_f cam_ts_AirHumidity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AirHumidity_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Altitude.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Altitude.h new file mode 100644 index 000000000..ec1c09e6e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Altitude_H_ +#define _cam_ts_Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_AltitudeValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Altitude */ +typedef struct cam_ts_Altitude { + cam_ts_AltitudeValue_t altitudeValue; + cam_ts_AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Altitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AltitudeConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AltitudeConfidence.h new file mode 100644 index 000000000..09aad034b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AltitudeConfidence.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AltitudeConfidence_H_ +#define _cam_ts_AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AltitudeConfidence { + cam_ts_AltitudeConfidence_alt_000_01 = 0, + cam_ts_AltitudeConfidence_alt_000_02 = 1, + cam_ts_AltitudeConfidence_alt_000_05 = 2, + cam_ts_AltitudeConfidence_alt_000_10 = 3, + cam_ts_AltitudeConfidence_alt_000_20 = 4, + cam_ts_AltitudeConfidence_alt_000_50 = 5, + cam_ts_AltitudeConfidence_alt_001_00 = 6, + cam_ts_AltitudeConfidence_alt_002_00 = 7, + cam_ts_AltitudeConfidence_alt_005_00 = 8, + cam_ts_AltitudeConfidence_alt_010_00 = 9, + cam_ts_AltitudeConfidence_alt_020_00 = 10, + cam_ts_AltitudeConfidence_alt_050_00 = 11, + cam_ts_AltitudeConfidence_alt_100_00 = 12, + cam_ts_AltitudeConfidence_alt_200_00 = 13, + cam_ts_AltitudeConfidence_outOfRange = 14, + cam_ts_AltitudeConfidence_unavailable = 15 +} e_cam_ts_AltitudeConfidence; + +/* cam_ts_AltitudeConfidence */ +typedef long cam_ts_AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_AltitudeConfidence_specs_1; +asn_struct_free_f cam_ts_AltitudeConfidence_free; +asn_struct_print_f cam_ts_AltitudeConfidence_print; +asn_constr_check_f cam_ts_AltitudeConfidence_constraint; +per_type_decoder_f cam_ts_AltitudeConfidence_decode_uper; +per_type_encoder_f cam_ts_AltitudeConfidence_encode_uper; +per_type_decoder_f cam_ts_AltitudeConfidence_decode_aper; +per_type_encoder_f cam_ts_AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AltitudeConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AltitudeValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AltitudeValue.h new file mode 100644 index 000000000..54da31c1c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AltitudeValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AltitudeValue_H_ +#define _cam_ts_AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AltitudeValue { + cam_ts_AltitudeValue_negativeOutOfRange = -100000, + cam_ts_AltitudeValue_postiveOutOfRange = 800000, + cam_ts_AltitudeValue_unavailable = 800001 +} e_cam_ts_AltitudeValue; + +/* cam_ts_AltitudeValue */ +typedef long cam_ts_AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AltitudeValue; +asn_struct_free_f cam_ts_AltitudeValue_free; +asn_struct_print_f cam_ts_AltitudeValue_print; +asn_constr_check_f cam_ts_AltitudeValue_constraint; +per_type_decoder_f cam_ts_AltitudeValue_decode_uper; +per_type_encoder_f cam_ts_AltitudeValue_encode_uper; +per_type_decoder_f cam_ts_AltitudeValue_decode_aper; +per_type_encoder_f cam_ts_AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AltitudeValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngleConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngleConfidence.h new file mode 100644 index 000000000..ee3e7f410 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngleConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AngleConfidence_H_ +#define _cam_ts_AngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AngleConfidence { + cam_ts_AngleConfidence_outOfRange = 126, + cam_ts_AngleConfidence_unavailable = 127 +} e_cam_ts_AngleConfidence; + +/* cam_ts_AngleConfidence */ +typedef long cam_ts_AngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AngleConfidence; +asn_struct_free_f cam_ts_AngleConfidence_free; +asn_struct_print_f cam_ts_AngleConfidence_print; +asn_constr_check_f cam_ts_AngleConfidence_constraint; +per_type_decoder_f cam_ts_AngleConfidence_decode_uper; +per_type_encoder_f cam_ts_AngleConfidence_encode_uper; +per_type_decoder_f cam_ts_AngleConfidence_decode_aper; +per_type_encoder_f cam_ts_AngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AngleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngularAccelerationConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngularAccelerationConfidence.h new file mode 100644 index 000000000..0b608599e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngularAccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AngularAccelerationConfidence_H_ +#define _cam_ts_AngularAccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AngularAccelerationConfidence { + cam_ts_AngularAccelerationConfidence_degSecSquared_01 = 0, + cam_ts_AngularAccelerationConfidence_degSecSquared_02 = 1, + cam_ts_AngularAccelerationConfidence_degSecSquared_05 = 2, + cam_ts_AngularAccelerationConfidence_degSecSquared_10 = 3, + cam_ts_AngularAccelerationConfidence_degSecSquared_20 = 4, + cam_ts_AngularAccelerationConfidence_degSecSquared_50 = 5, + cam_ts_AngularAccelerationConfidence_outOfRange = 6, + cam_ts_AngularAccelerationConfidence_unavailable = 7 +} e_cam_ts_AngularAccelerationConfidence; + +/* cam_ts_AngularAccelerationConfidence */ +typedef long cam_ts_AngularAccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AngularAccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AngularAccelerationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_AngularAccelerationConfidence_specs_1; +asn_struct_free_f cam_ts_AngularAccelerationConfidence_free; +asn_struct_print_f cam_ts_AngularAccelerationConfidence_print; +asn_constr_check_f cam_ts_AngularAccelerationConfidence_constraint; +per_type_decoder_f cam_ts_AngularAccelerationConfidence_decode_uper; +per_type_encoder_f cam_ts_AngularAccelerationConfidence_encode_uper; +per_type_decoder_f cam_ts_AngularAccelerationConfidence_decode_aper; +per_type_encoder_f cam_ts_AngularAccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AngularAccelerationConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngularSpeedConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngularSpeedConfidence.h new file mode 100644 index 000000000..cef196899 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AngularSpeedConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AngularSpeedConfidence_H_ +#define _cam_ts_AngularSpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AngularSpeedConfidence { + cam_ts_AngularSpeedConfidence_degSec_01 = 0, + cam_ts_AngularSpeedConfidence_degSec_02 = 1, + cam_ts_AngularSpeedConfidence_degSec_05 = 2, + cam_ts_AngularSpeedConfidence_degSec_10 = 3, + cam_ts_AngularSpeedConfidence_degSec_20 = 4, + cam_ts_AngularSpeedConfidence_degSec_50 = 5, + cam_ts_AngularSpeedConfidence_outOfRange = 6, + cam_ts_AngularSpeedConfidence_unavailable = 7 +} e_cam_ts_AngularSpeedConfidence; + +/* cam_ts_AngularSpeedConfidence */ +typedef long cam_ts_AngularSpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_AngularSpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AngularSpeedConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_AngularSpeedConfidence_specs_1; +asn_struct_free_f cam_ts_AngularSpeedConfidence_free; +asn_struct_print_f cam_ts_AngularSpeedConfidence_print; +asn_constr_check_f cam_ts_AngularSpeedConfidence_constraint; +per_type_decoder_f cam_ts_AngularSpeedConfidence_decode_uper; +per_type_encoder_f cam_ts_AngularSpeedConfidence_encode_uper; +per_type_decoder_f cam_ts_AngularSpeedConfidence_decode_aper; +per_type_encoder_f cam_ts_AngularSpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AngularSpeedConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AxlesCount.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AxlesCount.h new file mode 100644 index 000000000..97250e158 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_AxlesCount.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_AxlesCount_H_ +#define _cam_ts_AxlesCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_AxlesCount { + cam_ts_AxlesCount_outOfRange = 1001, + cam_ts_AxlesCount_unavailable = 1002 +} e_cam_ts_AxlesCount; + +/* cam_ts_AxlesCount */ +typedef long cam_ts_AxlesCount_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_AxlesCount; +asn_struct_free_f cam_ts_AxlesCount_free; +asn_struct_print_f cam_ts_AxlesCount_print; +asn_constr_check_f cam_ts_AxlesCount_constraint; +per_type_decoder_f cam_ts_AxlesCount_decode_uper; +per_type_encoder_f cam_ts_AxlesCount_encode_uper; +per_type_decoder_f cam_ts_AxlesCount_decode_aper; +per_type_encoder_f cam_ts_AxlesCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_AxlesCount_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BarometricPressure.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BarometricPressure.h new file mode 100644 index 000000000..73defcec0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BarometricPressure.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_BarometricPressure_H_ +#define _cam_ts_BarometricPressure_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_BarometricPressure { + cam_ts_BarometricPressure_outOfRangelower = 2999, + cam_ts_BarometricPressure_outOfRangeUpper = 12001, + cam_ts_BarometricPressure_unavailable = 12002 +} e_cam_ts_BarometricPressure; + +/* cam_ts_BarometricPressure */ +typedef long cam_ts_BarometricPressure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_BarometricPressure; +asn_struct_free_f cam_ts_BarometricPressure_free; +asn_struct_print_f cam_ts_BarometricPressure_print; +asn_constr_check_f cam_ts_BarometricPressure_constraint; +per_type_decoder_f cam_ts_BarometricPressure_decode_uper; +per_type_encoder_f cam_ts_BarometricPressure_encode_uper; +per_type_decoder_f cam_ts_BarometricPressure_decode_aper; +per_type_encoder_f cam_ts_BarometricPressure_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_BarometricPressure_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicContainer.h new file mode 100644 index 000000000..5cc28da86 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_BasicContainer_H_ +#define _cam_ts_BasicContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_TrafficParticipantType.h" +#include "etsi_its_cam_ts_coding/cam_ts_ReferencePositionWithConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_BasicContainer */ +typedef struct cam_ts_BasicContainer { + cam_ts_TrafficParticipantType_t stationType; + cam_ts_ReferencePositionWithConfidence_t referencePosition; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_BasicContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_BasicContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_BasicContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_BasicContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicLaneConfiguration.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicLaneConfiguration.h new file mode 100644 index 000000000..061489d99 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicLaneConfiguration.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_BasicLaneConfiguration_H_ +#define _cam_ts_BasicLaneConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_BasicLaneInformation; + +/* cam_ts_BasicLaneConfiguration */ +typedef struct cam_ts_BasicLaneConfiguration { + A_SEQUENCE_OF(struct cam_ts_BasicLaneInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_BasicLaneConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicLaneConfiguration; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_BasicLaneConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_BasicLaneConfiguration_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_BasicLaneConfiguration_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_BasicLaneInformation.h" + +#endif /* _cam_ts_BasicLaneConfiguration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicLaneInformation.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicLaneInformation.h new file mode 100644 index 000000000..01bcbe0c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicLaneInformation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_BasicLaneInformation_H_ +#define _cam_ts_BasicLaneInformation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LanePosition.h" +#include "etsi_its_cam_ts_coding/cam_ts_Direction.h" +#include "etsi_its_cam_ts_coding/cam_ts_LaneWidth.h" +#include "etsi_its_cam_ts_coding/cam_ts_RoadSectionId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_BasicLaneInformation */ +typedef struct cam_ts_BasicLaneInformation { + cam_ts_LanePosition_t laneNumber; + cam_ts_Direction_t direction; + cam_ts_LaneWidth_t *laneWidth; /* OPTIONAL */ + cam_ts_LanePosition_t *connectingLane; /* OPTIONAL */ + cam_ts_RoadSectionId_t *connectingRoadSection; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_BasicLaneInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicLaneInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_BasicLaneInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_BasicLaneInformation_1[5]; +extern asn_per_constraints_t asn_PER_type_cam_ts_BasicLaneInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_BasicLaneInformation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerHighFrequency.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerHighFrequency.h new file mode 100644 index 000000000..42fb0d0d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerHighFrequency.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_BasicVehicleContainerHighFrequency_H_ +#define _cam_ts_BasicVehicleContainerHighFrequency_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Heading.h" +#include "etsi_its_cam_ts_coding/cam_ts_Speed.h" +#include "etsi_its_cam_ts_coding/cam_ts_DriveDirection.h" +#include "etsi_its_cam_ts_coding/cam_ts_VehicleLength.h" +#include "etsi_its_cam_ts_coding/cam_ts_VehicleWidth.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h" +#include "etsi_its_cam_ts_coding/cam_ts_Curvature.h" +#include "etsi_its_cam_ts_coding/cam_ts_CurvatureCalculationMode.h" +#include "etsi_its_cam_ts_coding/cam_ts_YawRate.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationControl.h" +#include "etsi_its_cam_ts_coding/cam_ts_LanePosition.h" +#include "etsi_its_cam_ts_coding/cam_ts_PerformanceClass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_SteeringWheelAngle; +struct cam_ts_AccelerationComponent; +struct cam_ts_CenDsrcTollingZone; + +/* cam_ts_BasicVehicleContainerHighFrequency */ +typedef struct cam_ts_BasicVehicleContainerHighFrequency { + cam_ts_Heading_t heading; + cam_ts_Speed_t speed; + cam_ts_DriveDirection_t driveDirection; + cam_ts_VehicleLength_t vehicleLength; + cam_ts_VehicleWidth_t vehicleWidth; + cam_ts_AccelerationComponent_t longitudinalAcceleration; + cam_ts_Curvature_t curvature; + cam_ts_CurvatureCalculationMode_t curvatureCalculationMode; + cam_ts_YawRate_t yawRate; + cam_ts_AccelerationControl_t *accelerationControl; /* OPTIONAL */ + cam_ts_LanePosition_t *lanePosition; /* OPTIONAL */ + struct cam_ts_SteeringWheelAngle *steeringWheelAngle; /* OPTIONAL */ + struct cam_ts_AccelerationComponent *lateralAcceleration; /* OPTIONAL */ + struct cam_ts_AccelerationComponent *verticalAcceleration; /* OPTIONAL */ + cam_ts_PerformanceClass_t *performanceClass; /* OPTIONAL */ + struct cam_ts_CenDsrcTollingZone *cenDsrcTollingZone; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_BasicVehicleContainerHighFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicVehicleContainerHighFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_BasicVehicleContainerHighFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_BasicVehicleContainerHighFrequency_1[16]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngle.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h" +#include "etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZone.h" + +#endif /* _cam_ts_BasicVehicleContainerHighFrequency_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerLowFrequency.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerLowFrequency.h new file mode 100644 index 000000000..37a1222bb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerLowFrequency.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_BasicVehicleContainerLowFrequency_H_ +#define _cam_ts_BasicVehicleContainerLowFrequency_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_VehicleRole.h" +#include "etsi_its_cam_ts_coding/cam_ts_ExteriorLights.h" +#include "etsi_its_cam_ts_coding/cam_ts_Path.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_BasicVehicleContainerLowFrequency */ +typedef struct cam_ts_BasicVehicleContainerLowFrequency { + cam_ts_VehicleRole_t vehicleRole; + cam_ts_ExteriorLights_t exteriorLights; + cam_ts_Path_t pathHistory; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_BasicVehicleContainerLowFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicVehicleContainerLowFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_BasicVehicleContainerLowFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_BasicVehicleContainerLowFrequency_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_BasicVehicleContainerLowFrequency_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BogiesCount.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BogiesCount.h new file mode 100644 index 000000000..65d1268bd --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_BogiesCount.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_BogiesCount_H_ +#define _cam_ts_BogiesCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_BogiesCount { + cam_ts_BogiesCount_outOfRange = 100, + cam_ts_BogiesCount_unavailable = 101 +} e_cam_ts_BogiesCount; + +/* cam_ts_BogiesCount */ +typedef long cam_ts_BogiesCount_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_BogiesCount; +asn_struct_free_f cam_ts_BogiesCount_free; +asn_struct_print_f cam_ts_BogiesCount_print; +asn_constr_check_f cam_ts_BogiesCount_constraint; +per_type_decoder_f cam_ts_BogiesCount_decode_uper; +per_type_encoder_f cam_ts_BogiesCount_encode_uper; +per_type_decoder_f cam_ts_BogiesCount_decode_aper; +per_type_encoder_f cam_ts_BogiesCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_BogiesCount_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CAM.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CAM.h new file mode 100644 index 000000000..32932a23b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CAM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CAM_H_ +#define _cam_ts_CAM_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_ItsPduHeader.h" +#include "etsi_its_cam_ts_coding/cam_ts_CamPayload.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CAM */ +typedef struct cam_ts_CAM { + cam_ts_ItsPduHeader_t header; + cam_ts_CamPayload_t cam; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CAM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CAM; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CAM_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CamParameters.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CamParameters.h new file mode 100644 index 000000000..f04bdff44 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CamParameters.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CamParameters_H_ +#define _cam_ts_CamParameters_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_BasicContainer.h" +#include "etsi_its_cam_ts_coding/cam_ts_HighFrequencyContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_LowFrequencyContainer; +struct cam_ts_SpecialVehicleContainer; + +/* cam_ts_CamParameters */ +typedef struct cam_ts_CamParameters { + cam_ts_BasicContainer_t basicContainer; + cam_ts_HighFrequencyContainer_t highFrequencyContainer; + struct cam_ts_LowFrequencyContainer *lowFrequencyContainer; /* OPTIONAL */ + struct cam_ts_SpecialVehicleContainer *specialVehicleContainer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CamParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CamParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CamParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CamParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_LowFrequencyContainer.h" +#include "etsi_its_cam_ts_coding/cam_ts_SpecialVehicleContainer.h" + +#endif /* _cam_ts_CamParameters_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CamPayload.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CamPayload.h new file mode 100644 index 000000000..fb34c23ba --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CamPayload.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CamPayload_H_ +#define _cam_ts_CamPayload_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_GenerationDeltaTime.h" +#include "etsi_its_cam_ts_coding/cam_ts_CamParameters.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CamPayload */ +typedef struct cam_ts_CamPayload { + cam_ts_GenerationDeltaTime_t generationDeltaTime; + cam_ts_CamParameters_t camParameters; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CamPayload_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CamPayload; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CamPayload_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CamPayload_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CamPayload_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CardinalNumber1B.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CardinalNumber1B.h new file mode 100644 index 000000000..46f13ec76 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CardinalNumber1B.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CardinalNumber1B_H_ +#define _cam_ts_CardinalNumber1B_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CardinalNumber1B */ +typedef long cam_ts_CardinalNumber1B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CardinalNumber1B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CardinalNumber1B; +asn_struct_free_f cam_ts_CardinalNumber1B_free; +asn_struct_print_f cam_ts_CardinalNumber1B_print; +asn_constr_check_f cam_ts_CardinalNumber1B_constraint; +per_type_decoder_f cam_ts_CardinalNumber1B_decode_uper; +per_type_encoder_f cam_ts_CardinalNumber1B_encode_uper; +per_type_decoder_f cam_ts_CardinalNumber1B_decode_aper; +per_type_encoder_f cam_ts_CardinalNumber1B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CardinalNumber1B_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CardinalNumber3b.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CardinalNumber3b.h new file mode 100644 index 000000000..0f7f7d6b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CardinalNumber3b.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CardinalNumber3b_H_ +#define _cam_ts_CardinalNumber3b_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CardinalNumber3b */ +typedef long cam_ts_CardinalNumber3b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CardinalNumber3b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CardinalNumber3b; +asn_struct_free_f cam_ts_CardinalNumber3b_free; +asn_struct_print_f cam_ts_CardinalNumber3b_print; +asn_constr_check_f cam_ts_CardinalNumber3b_constraint; +per_type_decoder_f cam_ts_CardinalNumber3b_decode_uper; +per_type_encoder_f cam_ts_CardinalNumber3b_encode_uper; +per_type_decoder_f cam_ts_CardinalNumber3b_decode_aper; +per_type_encoder_f cam_ts_CardinalNumber3b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CardinalNumber3b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h new file mode 100644 index 000000000..8d1a0049a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianAngle_H_ +#define _cam_ts_CartesianAngle_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CartesianAngle */ +typedef struct cam_ts_CartesianAngle { + cam_ts_CartesianAngleValue_t value; + cam_ts_AngleConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CartesianAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngle; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianAngle_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CartesianAngle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h new file mode 100644 index 000000000..909886ed9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianAngleValue_H_ +#define _cam_ts_CartesianAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CartesianAngleValue { + cam_ts_CartesianAngleValue_valueNotUsed = 3600, + cam_ts_CartesianAngleValue_unavailable = 3601 +} e_cam_ts_CartesianAngleValue; + +/* cam_ts_CartesianAngleValue */ +typedef long cam_ts_CartesianAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CartesianAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngleValue; +asn_struct_free_f cam_ts_CartesianAngleValue_free; +asn_struct_print_f cam_ts_CartesianAngleValue_print; +asn_constr_check_f cam_ts_CartesianAngleValue_constraint; +per_type_decoder_f cam_ts_CartesianAngleValue_decode_uper; +per_type_encoder_f cam_ts_CartesianAngleValue_encode_uper; +per_type_decoder_f cam_ts_CartesianAngleValue_decode_aper; +per_type_encoder_f cam_ts_CartesianAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianAngleValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponent.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponent.h new file mode 100644 index 000000000..24f22ba6c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponent.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianAngularAccelerationComponent_H_ +#define _cam_ts_CartesianAngularAccelerationComponent_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponentValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AngularAccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CartesianAngularAccelerationComponent */ +typedef struct cam_ts_CartesianAngularAccelerationComponent { + cam_ts_CartesianAngularAccelerationComponentValue_t value; + cam_ts_AngularAccelerationConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CartesianAngularAccelerationComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngularAccelerationComponent; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianAngularAccelerationComponent_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponentValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponentValue.h new file mode 100644 index 000000000..18d7490da --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponentValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianAngularAccelerationComponentValue_H_ +#define _cam_ts_CartesianAngularAccelerationComponentValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CartesianAngularAccelerationComponentValue { + cam_ts_CartesianAngularAccelerationComponentValue_negativeOutOfRange = -255, + cam_ts_CartesianAngularAccelerationComponentValue_positiveOutOfRange = 255, + cam_ts_CartesianAngularAccelerationComponentValue_unavailable = 256 +} e_cam_ts_CartesianAngularAccelerationComponentValue; + +/* cam_ts_CartesianAngularAccelerationComponentValue */ +typedef long cam_ts_CartesianAngularAccelerationComponentValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CartesianAngularAccelerationComponentValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue; +asn_struct_free_f cam_ts_CartesianAngularAccelerationComponentValue_free; +asn_struct_print_f cam_ts_CartesianAngularAccelerationComponentValue_print; +asn_constr_check_f cam_ts_CartesianAngularAccelerationComponentValue_constraint; +per_type_decoder_f cam_ts_CartesianAngularAccelerationComponentValue_decode_uper; +per_type_encoder_f cam_ts_CartesianAngularAccelerationComponentValue_encode_uper; +per_type_decoder_f cam_ts_CartesianAngularAccelerationComponentValue_decode_aper; +per_type_encoder_f cam_ts_CartesianAngularAccelerationComponentValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianAngularAccelerationComponentValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponent.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponent.h new file mode 100644 index 000000000..f6f2495bc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponent.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianAngularVelocityComponent_H_ +#define _cam_ts_CartesianAngularVelocityComponent_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponentValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AngularSpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CartesianAngularVelocityComponent */ +typedef struct cam_ts_CartesianAngularVelocityComponent { + cam_ts_CartesianAngularVelocityComponentValue_t value; + cam_ts_AngularSpeedConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CartesianAngularVelocityComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngularVelocityComponent; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianAngularVelocityComponent_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CartesianAngularVelocityComponent_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianAngularVelocityComponent_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponentValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponentValue.h new file mode 100644 index 000000000..e8d438ada --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponentValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianAngularVelocityComponentValue_H_ +#define _cam_ts_CartesianAngularVelocityComponentValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CartesianAngularVelocityComponentValue { + cam_ts_CartesianAngularVelocityComponentValue_negativeOutofRange = -255, + cam_ts_CartesianAngularVelocityComponentValue_positiveOutOfRange = 255, + cam_ts_CartesianAngularVelocityComponentValue_unavailable = 256 +} e_cam_ts_CartesianAngularVelocityComponentValue; + +/* cam_ts_CartesianAngularVelocityComponentValue */ +typedef long cam_ts_CartesianAngularVelocityComponentValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CartesianAngularVelocityComponentValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngularVelocityComponentValue; +asn_struct_free_f cam_ts_CartesianAngularVelocityComponentValue_free; +asn_struct_print_f cam_ts_CartesianAngularVelocityComponentValue_print; +asn_constr_check_f cam_ts_CartesianAngularVelocityComponentValue_constraint; +per_type_decoder_f cam_ts_CartesianAngularVelocityComponentValue_decode_uper; +per_type_encoder_f cam_ts_CartesianAngularVelocityComponentValue_encode_uper; +per_type_decoder_f cam_ts_CartesianAngularVelocityComponentValue_decode_aper; +per_type_encoder_f cam_ts_CartesianAngularVelocityComponentValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianAngularVelocityComponentValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinate.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinate.h new file mode 100644 index 000000000..734af2103 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinate.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianCoordinate_H_ +#define _cam_ts_CartesianCoordinate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CartesianCoordinate { + cam_ts_CartesianCoordinate_negativeOutOfRange = -32768, + cam_ts_CartesianCoordinate_positiveOutOfRange = 32767 +} e_cam_ts_CartesianCoordinate; + +/* cam_ts_CartesianCoordinate */ +typedef long cam_ts_CartesianCoordinate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CartesianCoordinate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianCoordinate; +asn_struct_free_f cam_ts_CartesianCoordinate_free; +asn_struct_print_f cam_ts_CartesianCoordinate_print; +asn_constr_check_f cam_ts_CartesianCoordinate_constraint; +per_type_decoder_f cam_ts_CartesianCoordinate_decode_uper; +per_type_encoder_f cam_ts_CartesianCoordinate_encode_uper; +per_type_decoder_f cam_ts_CartesianCoordinate_decode_aper; +per_type_encoder_f cam_ts_CartesianCoordinate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianCoordinate_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateLarge.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateLarge.h new file mode 100644 index 000000000..5896b700f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateLarge.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianCoordinateLarge_H_ +#define _cam_ts_CartesianCoordinateLarge_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CartesianCoordinateLarge { + cam_ts_CartesianCoordinateLarge_negativeOutOfRange = -131072, + cam_ts_CartesianCoordinateLarge_positiveOutOfRange = 131071 +} e_cam_ts_CartesianCoordinateLarge; + +/* cam_ts_CartesianCoordinateLarge */ +typedef long cam_ts_CartesianCoordinateLarge_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CartesianCoordinateLarge_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianCoordinateLarge; +asn_struct_free_f cam_ts_CartesianCoordinateLarge_free; +asn_struct_print_f cam_ts_CartesianCoordinateLarge_print; +asn_constr_check_f cam_ts_CartesianCoordinateLarge_constraint; +per_type_decoder_f cam_ts_CartesianCoordinateLarge_decode_uper; +per_type_encoder_f cam_ts_CartesianCoordinateLarge_encode_uper; +per_type_decoder_f cam_ts_CartesianCoordinateLarge_decode_aper; +per_type_encoder_f cam_ts_CartesianCoordinateLarge_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianCoordinateLarge_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateSmall.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateSmall.h new file mode 100644 index 000000000..8749bc16b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateSmall.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianCoordinateSmall_H_ +#define _cam_ts_CartesianCoordinateSmall_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CartesianCoordinateSmall { + cam_ts_CartesianCoordinateSmall_negativeOutOfRange = -3094, + cam_ts_CartesianCoordinateSmall_positiveOutOfRange = 1001 +} e_cam_ts_CartesianCoordinateSmall; + +/* cam_ts_CartesianCoordinateSmall */ +typedef long cam_ts_CartesianCoordinateSmall_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CartesianCoordinateSmall_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianCoordinateSmall; +asn_struct_free_f cam_ts_CartesianCoordinateSmall_free; +asn_struct_print_f cam_ts_CartesianCoordinateSmall_print; +asn_constr_check_f cam_ts_CartesianCoordinateSmall_constraint; +per_type_decoder_f cam_ts_CartesianCoordinateSmall_decode_uper; +per_type_encoder_f cam_ts_CartesianCoordinateSmall_encode_uper; +per_type_decoder_f cam_ts_CartesianCoordinateSmall_decode_aper; +per_type_encoder_f cam_ts_CartesianCoordinateSmall_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianCoordinateSmall_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateWithConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateWithConfidence.h new file mode 100644 index 000000000..0fee0ade9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateWithConfidence.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianCoordinateWithConfidence_H_ +#define _cam_ts_CartesianCoordinateWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateLarge.h" +#include "etsi_its_cam_ts_coding/cam_ts_CoordinateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CartesianCoordinateWithConfidence */ +typedef struct cam_ts_CartesianCoordinateWithConfidence { + cam_ts_CartesianCoordinateLarge_t value; + cam_ts_CoordinateConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CartesianCoordinateWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianCoordinateWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianCoordinateWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CartesianCoordinateWithConfidence_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianCoordinateWithConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h new file mode 100644 index 000000000..ee46880c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianPosition3d_H_ +#define _cam_ts_CartesianPosition3d_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CartesianPosition3d */ +typedef struct cam_ts_CartesianPosition3d { + cam_ts_CartesianCoordinate_t xCoordinate; + cam_ts_CartesianCoordinate_t yCoordinate; + cam_ts_CartesianCoordinate_t *zCoordinate; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CartesianPosition3d_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianPosition3d; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianPosition3d_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CartesianPosition3d_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CartesianPosition3d_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianPosition3dWithConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianPosition3dWithConfidence.h new file mode 100644 index 000000000..c00ce4dde --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CartesianPosition3dWithConfidence.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CartesianPosition3dWithConfidence_H_ +#define _cam_ts_CartesianPosition3dWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateWithConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CartesianCoordinateWithConfidence; + +/* cam_ts_CartesianPosition3dWithConfidence */ +typedef struct cam_ts_CartesianPosition3dWithConfidence { + cam_ts_CartesianCoordinateWithConfidence_t xCoordinate; + cam_ts_CartesianCoordinateWithConfidence_t yCoordinate; + struct cam_ts_CartesianCoordinateWithConfidence *zCoordinate; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CartesianPosition3dWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianPosition3dWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianPosition3dWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CartesianPosition3dWithConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateWithConfidence.h" + +#endif /* _cam_ts_CartesianPosition3dWithConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCode.h new file mode 100644 index 000000000..3dd9d50da --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CauseCode_H_ +#define _cam_ts_CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CauseCodeType.h" +#include "etsi_its_cam_ts_coding/cam_ts_SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CauseCode */ +typedef struct cam_ts_CauseCode { + cam_ts_CauseCodeType_t causeCode; + cam_ts_SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeChoice.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeChoice.h new file mode 100644 index 000000000..06d40988d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeChoice.h @@ -0,0 +1,332 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CauseCodeChoice_H_ +#define _cam_ts_CauseCodeChoice_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_SubCauseCodeType.h" +#include "etsi_its_cam_ts_coding/cam_ts_TrafficConditionSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccidentSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_RoadworksSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_ImpassabilitySubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_HazardousLocation-SurfaceConditionSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_HumanPresenceOnTheRoadSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_WrongWayDrivingSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_SlowVehicleSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_DangerousEndOfQueueSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_VehicleBreakdownSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_PostCrashSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_HumanProblemSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_StationaryVehicleSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_EmergencyVehicleApproachingSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_HazardousLocation-DangerousCurveSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_CollisionRiskSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_SignalViolationSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_DangerousSituationSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_RailwayLevelCrossingSubCauseCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CauseCodeChoice_PR { + cam_ts_CauseCodeChoice_PR_NOTHING, /* No components present */ + cam_ts_CauseCodeChoice_PR_reserved0, + cam_ts_CauseCodeChoice_PR_trafficCondition1, + cam_ts_CauseCodeChoice_PR_accident2, + cam_ts_CauseCodeChoice_PR_roadworks3, + cam_ts_CauseCodeChoice_PR_reserved4, + cam_ts_CauseCodeChoice_PR_impassability5, + cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Adhesion6, + cam_ts_CauseCodeChoice_PR_aquaplaning7, + cam_ts_CauseCodeChoice_PR_reserved8, + cam_ts_CauseCodeChoice_PR_hazardousLocation_SurfaceCondition9, + cam_ts_CauseCodeChoice_PR_hazardousLocation_ObstacleOnTheRoad10, + cam_ts_CauseCodeChoice_PR_hazardousLocation_AnimalOnTheRoad11, + cam_ts_CauseCodeChoice_PR_humanPresenceOnTheRoad12, + cam_ts_CauseCodeChoice_PR_reserved13, + cam_ts_CauseCodeChoice_PR_wrongWayDriving14, + cam_ts_CauseCodeChoice_PR_rescueAndRecoveryWorkInProgress15, + cam_ts_CauseCodeChoice_PR_reserved16, + cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_ExtremeWeatherCondition17, + cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Visibility18, + cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Precipitation19, + cam_ts_CauseCodeChoice_PR_violence20, + cam_ts_CauseCodeChoice_PR_reserved21, + cam_ts_CauseCodeChoice_PR_reserved22, + cam_ts_CauseCodeChoice_PR_reserved23, + cam_ts_CauseCodeChoice_PR_reserved24, + cam_ts_CauseCodeChoice_PR_reserved25, + cam_ts_CauseCodeChoice_PR_slowVehicle26, + cam_ts_CauseCodeChoice_PR_dangerousEndOfQueue27, + cam_ts_CauseCodeChoice_PR_publicTransportVehicleApproaching28, + cam_ts_CauseCodeChoice_PR_reserved29, + cam_ts_CauseCodeChoice_PR_reserved30, + cam_ts_CauseCodeChoice_PR_reserved31, + cam_ts_CauseCodeChoice_PR_reserved32, + cam_ts_CauseCodeChoice_PR_reserved33, + cam_ts_CauseCodeChoice_PR_reserved34, + cam_ts_CauseCodeChoice_PR_reserved35, + cam_ts_CauseCodeChoice_PR_reserved36, + cam_ts_CauseCodeChoice_PR_reserved37, + cam_ts_CauseCodeChoice_PR_reserved38, + cam_ts_CauseCodeChoice_PR_reserved39, + cam_ts_CauseCodeChoice_PR_reserved40, + cam_ts_CauseCodeChoice_PR_reserved41, + cam_ts_CauseCodeChoice_PR_reserved42, + cam_ts_CauseCodeChoice_PR_reserved43, + cam_ts_CauseCodeChoice_PR_reserved44, + cam_ts_CauseCodeChoice_PR_reserved45, + cam_ts_CauseCodeChoice_PR_reserved46, + cam_ts_CauseCodeChoice_PR_reserved47, + cam_ts_CauseCodeChoice_PR_reserved48, + cam_ts_CauseCodeChoice_PR_reserved49, + cam_ts_CauseCodeChoice_PR_reserved50, + cam_ts_CauseCodeChoice_PR_reserved51, + cam_ts_CauseCodeChoice_PR_reserved52, + cam_ts_CauseCodeChoice_PR_reserved53, + cam_ts_CauseCodeChoice_PR_reserved54, + cam_ts_CauseCodeChoice_PR_reserved55, + cam_ts_CauseCodeChoice_PR_reserved56, + cam_ts_CauseCodeChoice_PR_reserved57, + cam_ts_CauseCodeChoice_PR_reserved58, + cam_ts_CauseCodeChoice_PR_reserved59, + cam_ts_CauseCodeChoice_PR_reserved60, + cam_ts_CauseCodeChoice_PR_reserved61, + cam_ts_CauseCodeChoice_PR_reserved62, + cam_ts_CauseCodeChoice_PR_reserved63, + cam_ts_CauseCodeChoice_PR_reserved64, + cam_ts_CauseCodeChoice_PR_reserved65, + cam_ts_CauseCodeChoice_PR_reserved66, + cam_ts_CauseCodeChoice_PR_reserved67, + cam_ts_CauseCodeChoice_PR_reserved68, + cam_ts_CauseCodeChoice_PR_reserved69, + cam_ts_CauseCodeChoice_PR_reserved70, + cam_ts_CauseCodeChoice_PR_reserved71, + cam_ts_CauseCodeChoice_PR_reserved72, + cam_ts_CauseCodeChoice_PR_reserved73, + cam_ts_CauseCodeChoice_PR_reserved74, + cam_ts_CauseCodeChoice_PR_reserved75, + cam_ts_CauseCodeChoice_PR_reserved76, + cam_ts_CauseCodeChoice_PR_reserved77, + cam_ts_CauseCodeChoice_PR_reserved78, + cam_ts_CauseCodeChoice_PR_reserved79, + cam_ts_CauseCodeChoice_PR_reserved80, + cam_ts_CauseCodeChoice_PR_reserved81, + cam_ts_CauseCodeChoice_PR_reserved82, + cam_ts_CauseCodeChoice_PR_reserved83, + cam_ts_CauseCodeChoice_PR_reserved84, + cam_ts_CauseCodeChoice_PR_reserved85, + cam_ts_CauseCodeChoice_PR_reserved86, + cam_ts_CauseCodeChoice_PR_reserved87, + cam_ts_CauseCodeChoice_PR_reserved88, + cam_ts_CauseCodeChoice_PR_reserved89, + cam_ts_CauseCodeChoice_PR_reserved90, + cam_ts_CauseCodeChoice_PR_vehicleBreakdown91, + cam_ts_CauseCodeChoice_PR_postCrash92, + cam_ts_CauseCodeChoice_PR_humanProblem93, + cam_ts_CauseCodeChoice_PR_stationaryVehicle94, + cam_ts_CauseCodeChoice_PR_emergencyVehicleApproaching95, + cam_ts_CauseCodeChoice_PR_hazardousLocation_DangerousCurve96, + cam_ts_CauseCodeChoice_PR_collisionRisk97, + cam_ts_CauseCodeChoice_PR_signalViolation98, + cam_ts_CauseCodeChoice_PR_dangerousSituation99, + cam_ts_CauseCodeChoice_PR_railwayLevelCrossing100, + cam_ts_CauseCodeChoice_PR_reserved101, + cam_ts_CauseCodeChoice_PR_reserved102, + cam_ts_CauseCodeChoice_PR_reserved103, + cam_ts_CauseCodeChoice_PR_reserved104, + cam_ts_CauseCodeChoice_PR_reserved105, + cam_ts_CauseCodeChoice_PR_reserved106, + cam_ts_CauseCodeChoice_PR_reserved107, + cam_ts_CauseCodeChoice_PR_reserved108, + cam_ts_CauseCodeChoice_PR_reserved109, + cam_ts_CauseCodeChoice_PR_reserved110, + cam_ts_CauseCodeChoice_PR_reserved111, + cam_ts_CauseCodeChoice_PR_reserved112, + cam_ts_CauseCodeChoice_PR_reserved113, + cam_ts_CauseCodeChoice_PR_reserved114, + cam_ts_CauseCodeChoice_PR_reserved115, + cam_ts_CauseCodeChoice_PR_reserved116, + cam_ts_CauseCodeChoice_PR_reserved117, + cam_ts_CauseCodeChoice_PR_reserved118, + cam_ts_CauseCodeChoice_PR_reserved119, + cam_ts_CauseCodeChoice_PR_reserved120, + cam_ts_CauseCodeChoice_PR_reserved121, + cam_ts_CauseCodeChoice_PR_reserved122, + cam_ts_CauseCodeChoice_PR_reserved123, + cam_ts_CauseCodeChoice_PR_reserved124, + cam_ts_CauseCodeChoice_PR_reserved125, + cam_ts_CauseCodeChoice_PR_reserved126, + cam_ts_CauseCodeChoice_PR_reserved127, + cam_ts_CauseCodeChoice_PR_reserved128 +} cam_ts_CauseCodeChoice_PR; + +/* cam_ts_CauseCodeChoice */ +typedef struct cam_ts_CauseCodeChoice { + cam_ts_CauseCodeChoice_PR present; + union cam_ts_CauseCodeChoice_u { + cam_ts_SubCauseCodeType_t reserved0; + cam_ts_TrafficConditionSubCauseCode_t trafficCondition1; + cam_ts_AccidentSubCauseCode_t accident2; + cam_ts_RoadworksSubCauseCode_t roadworks3; + cam_ts_SubCauseCodeType_t reserved4; + cam_ts_ImpassabilitySubCauseCode_t impassability5; + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_t adverseWeatherCondition_Adhesion6; + cam_ts_SubCauseCodeType_t aquaplaning7; + cam_ts_SubCauseCodeType_t reserved8; + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_t hazardousLocation_SurfaceCondition9; + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t hazardousLocation_ObstacleOnTheRoad10; + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_t hazardousLocation_AnimalOnTheRoad11; + cam_ts_HumanPresenceOnTheRoadSubCauseCode_t humanPresenceOnTheRoad12; + cam_ts_SubCauseCodeType_t reserved13; + cam_ts_WrongWayDrivingSubCauseCode_t wrongWayDriving14; + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_t rescueAndRecoveryWorkInProgress15; + cam_ts_SubCauseCodeType_t reserved16; + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t adverseWeatherCondition_ExtremeWeatherCondition17; + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_t adverseWeatherCondition_Visibility18; + cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_t adverseWeatherCondition_Precipitation19; + cam_ts_SubCauseCodeType_t violence20; + cam_ts_SubCauseCodeType_t reserved21; + cam_ts_SubCauseCodeType_t reserved22; + cam_ts_SubCauseCodeType_t reserved23; + cam_ts_SubCauseCodeType_t reserved24; + cam_ts_SubCauseCodeType_t reserved25; + cam_ts_SlowVehicleSubCauseCode_t slowVehicle26; + cam_ts_DangerousEndOfQueueSubCauseCode_t dangerousEndOfQueue27; + cam_ts_SubCauseCodeType_t publicTransportVehicleApproaching28; + cam_ts_SubCauseCodeType_t reserved29; + cam_ts_SubCauseCodeType_t reserved30; + cam_ts_SubCauseCodeType_t reserved31; + cam_ts_SubCauseCodeType_t reserved32; + cam_ts_SubCauseCodeType_t reserved33; + cam_ts_SubCauseCodeType_t reserved34; + cam_ts_SubCauseCodeType_t reserved35; + cam_ts_SubCauseCodeType_t reserved36; + cam_ts_SubCauseCodeType_t reserved37; + cam_ts_SubCauseCodeType_t reserved38; + cam_ts_SubCauseCodeType_t reserved39; + cam_ts_SubCauseCodeType_t reserved40; + cam_ts_SubCauseCodeType_t reserved41; + cam_ts_SubCauseCodeType_t reserved42; + cam_ts_SubCauseCodeType_t reserved43; + cam_ts_SubCauseCodeType_t reserved44; + cam_ts_SubCauseCodeType_t reserved45; + cam_ts_SubCauseCodeType_t reserved46; + cam_ts_SubCauseCodeType_t reserved47; + cam_ts_SubCauseCodeType_t reserved48; + cam_ts_SubCauseCodeType_t reserved49; + cam_ts_SubCauseCodeType_t reserved50; + cam_ts_SubCauseCodeType_t reserved51; + cam_ts_SubCauseCodeType_t reserved52; + cam_ts_SubCauseCodeType_t reserved53; + cam_ts_SubCauseCodeType_t reserved54; + cam_ts_SubCauseCodeType_t reserved55; + cam_ts_SubCauseCodeType_t reserved56; + cam_ts_SubCauseCodeType_t reserved57; + cam_ts_SubCauseCodeType_t reserved58; + cam_ts_SubCauseCodeType_t reserved59; + cam_ts_SubCauseCodeType_t reserved60; + cam_ts_SubCauseCodeType_t reserved61; + cam_ts_SubCauseCodeType_t reserved62; + cam_ts_SubCauseCodeType_t reserved63; + cam_ts_SubCauseCodeType_t reserved64; + cam_ts_SubCauseCodeType_t reserved65; + cam_ts_SubCauseCodeType_t reserved66; + cam_ts_SubCauseCodeType_t reserved67; + cam_ts_SubCauseCodeType_t reserved68; + cam_ts_SubCauseCodeType_t reserved69; + cam_ts_SubCauseCodeType_t reserved70; + cam_ts_SubCauseCodeType_t reserved71; + cam_ts_SubCauseCodeType_t reserved72; + cam_ts_SubCauseCodeType_t reserved73; + cam_ts_SubCauseCodeType_t reserved74; + cam_ts_SubCauseCodeType_t reserved75; + cam_ts_SubCauseCodeType_t reserved76; + cam_ts_SubCauseCodeType_t reserved77; + cam_ts_SubCauseCodeType_t reserved78; + cam_ts_SubCauseCodeType_t reserved79; + cam_ts_SubCauseCodeType_t reserved80; + cam_ts_SubCauseCodeType_t reserved81; + cam_ts_SubCauseCodeType_t reserved82; + cam_ts_SubCauseCodeType_t reserved83; + cam_ts_SubCauseCodeType_t reserved84; + cam_ts_SubCauseCodeType_t reserved85; + cam_ts_SubCauseCodeType_t reserved86; + cam_ts_SubCauseCodeType_t reserved87; + cam_ts_SubCauseCodeType_t reserved88; + cam_ts_SubCauseCodeType_t reserved89; + cam_ts_SubCauseCodeType_t reserved90; + cam_ts_VehicleBreakdownSubCauseCode_t vehicleBreakdown91; + cam_ts_PostCrashSubCauseCode_t postCrash92; + cam_ts_HumanProblemSubCauseCode_t humanProblem93; + cam_ts_StationaryVehicleSubCauseCode_t stationaryVehicle94; + cam_ts_EmergencyVehicleApproachingSubCauseCode_t emergencyVehicleApproaching95; + cam_ts_HazardousLocation_DangerousCurveSubCauseCode_t hazardousLocation_DangerousCurve96; + cam_ts_CollisionRiskSubCauseCode_t collisionRisk97; + cam_ts_SignalViolationSubCauseCode_t signalViolation98; + cam_ts_DangerousSituationSubCauseCode_t dangerousSituation99; + cam_ts_RailwayLevelCrossingSubCauseCode_t railwayLevelCrossing100; + cam_ts_SubCauseCodeType_t reserved101; + cam_ts_SubCauseCodeType_t reserved102; + cam_ts_SubCauseCodeType_t reserved103; + cam_ts_SubCauseCodeType_t reserved104; + cam_ts_SubCauseCodeType_t reserved105; + cam_ts_SubCauseCodeType_t reserved106; + cam_ts_SubCauseCodeType_t reserved107; + cam_ts_SubCauseCodeType_t reserved108; + cam_ts_SubCauseCodeType_t reserved109; + cam_ts_SubCauseCodeType_t reserved110; + cam_ts_SubCauseCodeType_t reserved111; + cam_ts_SubCauseCodeType_t reserved112; + cam_ts_SubCauseCodeType_t reserved113; + cam_ts_SubCauseCodeType_t reserved114; + cam_ts_SubCauseCodeType_t reserved115; + cam_ts_SubCauseCodeType_t reserved116; + cam_ts_SubCauseCodeType_t reserved117; + cam_ts_SubCauseCodeType_t reserved118; + cam_ts_SubCauseCodeType_t reserved119; + cam_ts_SubCauseCodeType_t reserved120; + cam_ts_SubCauseCodeType_t reserved121; + cam_ts_SubCauseCodeType_t reserved122; + cam_ts_SubCauseCodeType_t reserved123; + cam_ts_SubCauseCodeType_t reserved124; + cam_ts_SubCauseCodeType_t reserved125; + cam_ts_SubCauseCodeType_t reserved126; + cam_ts_SubCauseCodeType_t reserved127; + cam_ts_SubCauseCodeType_t reserved128; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CauseCodeChoice_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CauseCodeChoice; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_CauseCodeChoice_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CauseCodeChoice_1[129]; +extern asn_per_constraints_t asn_PER_type_cam_ts_CauseCodeChoice_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CauseCodeChoice_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeType.h new file mode 100644 index 000000000..ac498af09 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeType.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CauseCodeType_H_ +#define _cam_ts_CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CauseCodeType { + cam_ts_CauseCodeType_trafficCondition = 1, + cam_ts_CauseCodeType_accident = 2, + cam_ts_CauseCodeType_roadworks = 3, + cam_ts_CauseCodeType_impassability = 5, + cam_ts_CauseCodeType_adverseWeatherCondition_Adhesion = 6, + cam_ts_CauseCodeType_aquaplaning = 7, + cam_ts_CauseCodeType_hazardousLocation_SurfaceCondition = 9, + cam_ts_CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + cam_ts_CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + cam_ts_CauseCodeType_humanPresenceOnTheRoad = 12, + cam_ts_CauseCodeType_wrongWayDriving = 14, + cam_ts_CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + cam_ts_CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + cam_ts_CauseCodeType_adverseWeatherCondition_Visibility = 18, + cam_ts_CauseCodeType_adverseWeatherCondition_Precipitation = 19, + cam_ts_CauseCodeType_violence = 20, + cam_ts_CauseCodeType_slowVehicle = 26, + cam_ts_CauseCodeType_dangerousEndOfQueue = 27, + cam_ts_CauseCodeType_publicTransportVehicleApproaching = 28, + cam_ts_CauseCodeType_vehicleBreakdown = 91, + cam_ts_CauseCodeType_postCrash = 92, + cam_ts_CauseCodeType_humanProblem = 93, + cam_ts_CauseCodeType_stationaryVehicle = 94, + cam_ts_CauseCodeType_emergencyVehicleApproaching = 95, + cam_ts_CauseCodeType_hazardousLocation_DangerousCurve = 96, + cam_ts_CauseCodeType_collisionRisk = 97, + cam_ts_CauseCodeType_signalViolation = 98, + cam_ts_CauseCodeType_dangerousSituation = 99, + cam_ts_CauseCodeType_railwayLevelCrossing = 100 +} e_cam_ts_CauseCodeType; + +/* cam_ts_CauseCodeType */ +typedef long cam_ts_CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CauseCodeType; +asn_struct_free_f cam_ts_CauseCodeType_free; +asn_struct_print_f cam_ts_CauseCodeType_print; +asn_constr_check_f cam_ts_CauseCodeType_constraint; +per_type_decoder_f cam_ts_CauseCodeType_decode_uper; +per_type_encoder_f cam_ts_CauseCodeType_encode_uper; +per_type_decoder_f cam_ts_CauseCodeType_decode_aper; +per_type_encoder_f cam_ts_CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CauseCodeType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeV2.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeV2.h new file mode 100644 index 000000000..dd5836fa8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CauseCodeV2.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CauseCodeV2_H_ +#define _cam_ts_CauseCodeV2_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CauseCodeChoice.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CauseCodeV2 */ +typedef struct cam_ts_CauseCodeV2 { + cam_ts_CauseCodeChoice_t ccAndScc; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CauseCodeV2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CauseCodeV2; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CauseCodeV2_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CauseCodeV2_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CauseCodeV2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZone.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZone.h new file mode 100644 index 000000000..5b0ec364f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZone.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CenDsrcTollingZone_H_ +#define _cam_ts_CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Latitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_Longitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CenDsrcTollingZone */ +typedef struct cam_ts_CenDsrcTollingZone { + cam_ts_Latitude_t protectedZoneLatitude; + cam_ts_Longitude_t protectedZoneLongitude; + cam_ts_ProtectedZoneId_t *cenDsrcTollingZoneId; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CenDsrcTollingZone; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CenDsrcTollingZone_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CenDsrcTollingZone_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CenDsrcTollingZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZoneID.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZoneID.h new file mode 100644 index 000000000..a2ff5911c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZoneID.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CenDsrcTollingZoneID_H_ +#define _cam_ts_CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneId.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CenDsrcTollingZoneID */ +typedef cam_ts_ProtectedZoneId_t cam_ts_CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CenDsrcTollingZoneID; +asn_struct_free_f cam_ts_CenDsrcTollingZoneID_free; +asn_struct_print_f cam_ts_CenDsrcTollingZoneID_print; +asn_constr_check_f cam_ts_CenDsrcTollingZoneID_constraint; +per_type_decoder_f cam_ts_CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f cam_ts_CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f cam_ts_CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f cam_ts_CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CenDsrcTollingZoneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CircularShape.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CircularShape.h new file mode 100644 index 000000000..dd54d9b62 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CircularShape.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CircularShape_H_ +#define _cam_ts_CircularShape_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CartesianPosition3d; + +/* cam_ts_CircularShape */ +typedef struct cam_ts_CircularShape { + struct cam_ts_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + cam_ts_StandardLength12b_t radius; + cam_ts_StandardLength12b_t *height; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CircularShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CircularShape; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CircularShape_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CircularShape_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h" + +#endif /* _cam_ts_CircularShape_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClosedLanes.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClosedLanes.h new file mode 100644 index 000000000..c9e290ba8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClosedLanes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ClosedLanes_H_ +#define _cam_ts_ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_HardShoulderStatus.h" +#include "etsi_its_cam_ts_coding/cam_ts_DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ClosedLanes */ +typedef struct cam_ts_ClosedLanes { + cam_ts_HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + cam_ts_HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + cam_ts_DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ClosedLanes; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ClosedLanes_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ClosedLanes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ClosedLanes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterBreakupInfo.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterBreakupInfo.h new file mode 100644 index 000000000..78325c34d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterBreakupInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ClusterBreakupInfo_H_ +#define _cam_ts_ClusterBreakupInfo_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_ClusterBreakupReason.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeQuarterSecond.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ClusterBreakupInfo */ +typedef struct cam_ts_ClusterBreakupInfo { + cam_ts_ClusterBreakupReason_t clusterBreakupReason; + cam_ts_DeltaTimeQuarterSecond_t breakupTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ClusterBreakupInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterBreakupInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ClusterBreakupInfo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterBreakupReason.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterBreakupReason.h new file mode 100644 index 000000000..4c5add4f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterBreakupReason.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ClusterBreakupReason_H_ +#define _cam_ts_ClusterBreakupReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ClusterBreakupReason { + cam_ts_ClusterBreakupReason_notProvided = 0, + cam_ts_ClusterBreakupReason_clusteringPurposeCompleted = 1, + cam_ts_ClusterBreakupReason_leaderMovedOutOfClusterBoundingBox = 2, + cam_ts_ClusterBreakupReason_joiningAnotherCluster = 3, + cam_ts_ClusterBreakupReason_enteringLowRiskAreaBasedOnMaps = 4, + cam_ts_ClusterBreakupReason_receptionOfCpmContainingCluster = 5 +} e_cam_ts_ClusterBreakupReason; + +/* cam_ts_ClusterBreakupReason */ +typedef long cam_ts_ClusterBreakupReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ClusterBreakupReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterBreakupReason; +asn_struct_free_f cam_ts_ClusterBreakupReason_free; +asn_struct_print_f cam_ts_ClusterBreakupReason_print; +asn_constr_check_f cam_ts_ClusterBreakupReason_constraint; +per_type_decoder_f cam_ts_ClusterBreakupReason_decode_uper; +per_type_encoder_f cam_ts_ClusterBreakupReason_encode_uper; +per_type_decoder_f cam_ts_ClusterBreakupReason_decode_aper; +per_type_encoder_f cam_ts_ClusterBreakupReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ClusterBreakupReason_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterJoinInfo.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterJoinInfo.h new file mode 100644 index 000000000..7e6f46661 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterJoinInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ClusterJoinInfo_H_ +#define _cam_ts_ClusterJoinInfo_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeQuarterSecond.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ClusterJoinInfo */ +typedef struct cam_ts_ClusterJoinInfo { + cam_ts_Identifier1B_t clusterId; + cam_ts_DeltaTimeQuarterSecond_t joinTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ClusterJoinInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterJoinInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ClusterJoinInfo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterLeaveInfo.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterLeaveInfo.h new file mode 100644 index 000000000..a387a1a76 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterLeaveInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ClusterLeaveInfo_H_ +#define _cam_ts_ClusterLeaveInfo_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_ClusterLeaveReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ClusterLeaveInfo */ +typedef struct cam_ts_ClusterLeaveInfo { + cam_ts_Identifier1B_t clusterId; + cam_ts_ClusterLeaveReason_t clusterLeaveReason; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ClusterLeaveInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterLeaveInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ClusterLeaveInfo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterLeaveReason.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterLeaveReason.h new file mode 100644 index 000000000..0ac098a3d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ClusterLeaveReason.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ClusterLeaveReason_H_ +#define _cam_ts_ClusterLeaveReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ClusterLeaveReason { + cam_ts_ClusterLeaveReason_notProvided = 0, + cam_ts_ClusterLeaveReason_clusterLeaderLost = 1, + cam_ts_ClusterLeaveReason_clusterDisbandedByLeader = 2, + cam_ts_ClusterLeaveReason_outOfClusterBoundingBox = 3, + cam_ts_ClusterLeaveReason_outOfClusterSpeedRange = 4, + cam_ts_ClusterLeaveReason_joiningAnotherCluster = 5, + cam_ts_ClusterLeaveReason_cancelledJoin = 6, + cam_ts_ClusterLeaveReason_failedJoin = 7, + cam_ts_ClusterLeaveReason_safetyCondition = 8 +} e_cam_ts_ClusterLeaveReason; + +/* cam_ts_ClusterLeaveReason */ +typedef long cam_ts_ClusterLeaveReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ClusterLeaveReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterLeaveReason; +asn_struct_free_f cam_ts_ClusterLeaveReason_free; +asn_struct_print_f cam_ts_ClusterLeaveReason_print; +asn_constr_check_f cam_ts_ClusterLeaveReason_constraint; +per_type_decoder_f cam_ts_ClusterLeaveReason_decode_uper; +per_type_encoder_f cam_ts_ClusterLeaveReason_encode_uper; +per_type_decoder_f cam_ts_ClusterLeaveReason_decode_aper; +per_type_encoder_f cam_ts_ClusterLeaveReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ClusterLeaveReason_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CollisionRiskSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CollisionRiskSubCauseCode.h new file mode 100644 index 000000000..4a98405db --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CollisionRiskSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CollisionRiskSubCauseCode_H_ +#define _cam_ts_CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CollisionRiskSubCauseCode { + cam_ts_CollisionRiskSubCauseCode_unavailable = 0, + cam_ts_CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + cam_ts_CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + cam_ts_CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + cam_ts_CollisionRiskSubCauseCode_vulnerableRoadUser = 4, + cam_ts_CollisionRiskSubCauseCode_collisionRiskWithPedestrian = 5, + cam_ts_CollisionRiskSubCauseCode_collisionRiskWithCyclist = 6, + cam_ts_CollisionRiskSubCauseCode_collisionRiskWithMotorVehicle = 7 +} e_cam_ts_CollisionRiskSubCauseCode; + +/* cam_ts_CollisionRiskSubCauseCode */ +typedef long cam_ts_CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CollisionRiskSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CollisionRiskSubCauseCode; +asn_struct_free_f cam_ts_CollisionRiskSubCauseCode_free; +asn_struct_print_f cam_ts_CollisionRiskSubCauseCode_print; +asn_constr_check_f cam_ts_CollisionRiskSubCauseCode_constraint; +per_type_decoder_f cam_ts_CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CollisionRiskSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ConfidenceLevel.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ConfidenceLevel.h new file mode 100644 index 000000000..279b204ea --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ConfidenceLevel.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ConfidenceLevel_H_ +#define _cam_ts_ConfidenceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ConfidenceLevel { + cam_ts_ConfidenceLevel_unavailable = 101 +} e_cam_ts_ConfidenceLevel; + +/* cam_ts_ConfidenceLevel */ +typedef long cam_ts_ConfidenceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ConfidenceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ConfidenceLevel; +asn_struct_free_f cam_ts_ConfidenceLevel_free; +asn_struct_print_f cam_ts_ConfidenceLevel_print; +asn_constr_check_f cam_ts_ConfidenceLevel_constraint; +per_type_decoder_f cam_ts_ConfidenceLevel_decode_uper; +per_type_encoder_f cam_ts_ConfidenceLevel_encode_uper; +per_type_decoder_f cam_ts_ConfidenceLevel_decode_aper; +per_type_encoder_f cam_ts_ConfidenceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ConfidenceLevel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CoordinateConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CoordinateConfidence.h new file mode 100644 index 000000000..a86e9b40f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CoordinateConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CoordinateConfidence_H_ +#define _cam_ts_CoordinateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CoordinateConfidence { + cam_ts_CoordinateConfidence_outOfRange = 4095, + cam_ts_CoordinateConfidence_unavailable = 4096 +} e_cam_ts_CoordinateConfidence; + +/* cam_ts_CoordinateConfidence */ +typedef long cam_ts_CoordinateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CoordinateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CoordinateConfidence; +asn_struct_free_f cam_ts_CoordinateConfidence_free; +asn_struct_print_f cam_ts_CoordinateConfidence_print; +asn_constr_check_f cam_ts_CoordinateConfidence_constraint; +per_type_decoder_f cam_ts_CoordinateConfidence_decode_uper; +per_type_encoder_f cam_ts_CoordinateConfidence_encode_uper; +per_type_decoder_f cam_ts_CoordinateConfidence_decode_aper; +per_type_encoder_f cam_ts_CoordinateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CoordinateConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CorrelationCellValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CorrelationCellValue.h new file mode 100644 index 000000000..f8ac8354a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CorrelationCellValue.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CorrelationCellValue_H_ +#define _cam_ts_CorrelationCellValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CorrelationCellValue { + cam_ts_CorrelationCellValue_full_negative_correlation = -100, + cam_ts_CorrelationCellValue_no_correlation = 0, + cam_ts_CorrelationCellValue_full_positive_correlation = 100, + cam_ts_CorrelationCellValue_unavailable = 101 +} e_cam_ts_CorrelationCellValue; + +/* cam_ts_CorrelationCellValue */ +typedef long cam_ts_CorrelationCellValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CorrelationCellValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CorrelationCellValue; +asn_struct_free_f cam_ts_CorrelationCellValue_free; +asn_struct_print_f cam_ts_CorrelationCellValue_print; +asn_constr_check_f cam_ts_CorrelationCellValue_constraint; +per_type_decoder_f cam_ts_CorrelationCellValue_decode_uper; +per_type_encoder_f cam_ts_CorrelationCellValue_encode_uper; +per_type_decoder_f cam_ts_CorrelationCellValue_decode_aper; +per_type_encoder_f cam_ts_CorrelationCellValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CorrelationCellValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CorrelationColumn.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CorrelationColumn.h new file mode 100644 index 000000000..e2a2ab15e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CorrelationColumn.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CorrelationColumn_H_ +#define _cam_ts_CorrelationColumn_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CorrelationCellValue.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CorrelationColumn */ +typedef struct cam_ts_CorrelationColumn { + A_SEQUENCE_OF(cam_ts_CorrelationCellValue_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_CorrelationColumn_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CorrelationColumn; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_CorrelationColumn_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_CorrelationColumn_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_CorrelationColumn_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CorrelationColumn_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CountryCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CountryCode.h new file mode 100644 index 000000000..b529c4c00 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CountryCode.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CountryCode_H_ +#define _cam_ts_CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_CountryCode */ +typedef BIT_STRING_t cam_ts_CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CountryCode; +asn_struct_free_f cam_ts_CountryCode_free; +asn_struct_print_f cam_ts_CountryCode_print; +asn_constr_check_f cam_ts_CountryCode_constraint; +per_type_decoder_f cam_ts_CountryCode_decode_uper; +per_type_encoder_f cam_ts_CountryCode_encode_uper; +per_type_decoder_f cam_ts_CountryCode_decode_aper; +per_type_encoder_f cam_ts_CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CountryCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Curvature.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Curvature.h new file mode 100644 index 000000000..e1d577237 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Curvature.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Curvature_H_ +#define _cam_ts_Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CurvatureValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Curvature */ +typedef struct cam_ts_Curvature { + cam_ts_CurvatureValue_t curvatureValue; + cam_ts_CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Curvature; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Curvature_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Curvature_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Curvature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureCalculationMode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureCalculationMode.h new file mode 100644 index 000000000..556395088 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureCalculationMode.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CurvatureCalculationMode_H_ +#define _cam_ts_CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CurvatureCalculationMode { + cam_ts_CurvatureCalculationMode_yawRateUsed = 0, + cam_ts_CurvatureCalculationMode_yawRateNotUsed = 1, + cam_ts_CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_cam_ts_CurvatureCalculationMode; + +/* cam_ts_CurvatureCalculationMode */ +typedef long cam_ts_CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CurvatureCalculationMode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CurvatureCalculationMode; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_CurvatureCalculationMode_specs_1; +asn_struct_free_f cam_ts_CurvatureCalculationMode_free; +asn_struct_print_f cam_ts_CurvatureCalculationMode_print; +asn_constr_check_f cam_ts_CurvatureCalculationMode_constraint; +per_type_decoder_f cam_ts_CurvatureCalculationMode_decode_uper; +per_type_encoder_f cam_ts_CurvatureCalculationMode_encode_uper; +per_type_decoder_f cam_ts_CurvatureCalculationMode_decode_aper; +per_type_encoder_f cam_ts_CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CurvatureCalculationMode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureConfidence.h new file mode 100644 index 000000000..1dd67d428 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CurvatureConfidence_H_ +#define _cam_ts_CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CurvatureConfidence { + cam_ts_CurvatureConfidence_onePerMeter_0_00002 = 0, + cam_ts_CurvatureConfidence_onePerMeter_0_0001 = 1, + cam_ts_CurvatureConfidence_onePerMeter_0_0005 = 2, + cam_ts_CurvatureConfidence_onePerMeter_0_002 = 3, + cam_ts_CurvatureConfidence_onePerMeter_0_01 = 4, + cam_ts_CurvatureConfidence_onePerMeter_0_1 = 5, + cam_ts_CurvatureConfidence_outOfRange = 6, + cam_ts_CurvatureConfidence_unavailable = 7 +} e_cam_ts_CurvatureConfidence; + +/* cam_ts_CurvatureConfidence */ +typedef long cam_ts_CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_CurvatureConfidence_specs_1; +asn_struct_free_f cam_ts_CurvatureConfidence_free; +asn_struct_print_f cam_ts_CurvatureConfidence_print; +asn_constr_check_f cam_ts_CurvatureConfidence_constraint; +per_type_decoder_f cam_ts_CurvatureConfidence_decode_uper; +per_type_encoder_f cam_ts_CurvatureConfidence_encode_uper; +per_type_decoder_f cam_ts_CurvatureConfidence_decode_aper; +per_type_encoder_f cam_ts_CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CurvatureConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureValue.h new file mode 100644 index 000000000..c47909b50 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_CurvatureValue.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_CurvatureValue_H_ +#define _cam_ts_CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_CurvatureValue { + cam_ts_CurvatureValue_outOfRangeNegative = -1023, + cam_ts_CurvatureValue_straight = 0, + cam_ts_CurvatureValue_outOfRangePositive = 1022, + cam_ts_CurvatureValue_unavailable = 1023 +} e_cam_ts_CurvatureValue; + +/* cam_ts_CurvatureValue */ +typedef long cam_ts_CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_CurvatureValue; +asn_struct_free_f cam_ts_CurvatureValue_free; +asn_struct_print_f cam_ts_CurvatureValue_print; +asn_constr_check_f cam_ts_CurvatureValue_constraint; +per_type_decoder_f cam_ts_CurvatureValue_decode_uper; +per_type_encoder_f cam_ts_CurvatureValue_encode_uper; +per_type_decoder_f cam_ts_CurvatureValue_decode_aper; +per_type_encoder_f cam_ts_CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_CurvatureValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousEndOfQueueSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 000000000..c74903921 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DangerousEndOfQueueSubCauseCode_H_ +#define _cam_ts_DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DangerousEndOfQueueSubCauseCode { + cam_ts_DangerousEndOfQueueSubCauseCode_unavailable = 0, + cam_ts_DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + cam_ts_DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + cam_ts_DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + cam_ts_DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_cam_ts_DangerousEndOfQueueSubCauseCode; + +/* cam_ts_DangerousEndOfQueueSubCauseCode */ +typedef long cam_ts_DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DangerousEndOfQueueSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f cam_ts_DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f cam_ts_DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f cam_ts_DangerousEndOfQueueSubCauseCode_constraint; +per_type_decoder_f cam_ts_DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsBasic.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsBasic.h new file mode 100644 index 000000000..35dd603f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsBasic.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DangerousGoodsBasic_H_ +#define _cam_ts_DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DangerousGoodsBasic { + cam_ts_DangerousGoodsBasic_explosives1 = 0, + cam_ts_DangerousGoodsBasic_explosives2 = 1, + cam_ts_DangerousGoodsBasic_explosives3 = 2, + cam_ts_DangerousGoodsBasic_explosives4 = 3, + cam_ts_DangerousGoodsBasic_explosives5 = 4, + cam_ts_DangerousGoodsBasic_explosives6 = 5, + cam_ts_DangerousGoodsBasic_flammableGases = 6, + cam_ts_DangerousGoodsBasic_nonFlammableGases = 7, + cam_ts_DangerousGoodsBasic_toxicGases = 8, + cam_ts_DangerousGoodsBasic_flammableLiquids = 9, + cam_ts_DangerousGoodsBasic_flammableSolids = 10, + cam_ts_DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + cam_ts_DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + cam_ts_DangerousGoodsBasic_oxidizingSubstances = 13, + cam_ts_DangerousGoodsBasic_organicPeroxides = 14, + cam_ts_DangerousGoodsBasic_toxicSubstances = 15, + cam_ts_DangerousGoodsBasic_infectiousSubstances = 16, + cam_ts_DangerousGoodsBasic_radioactiveMaterial = 17, + cam_ts_DangerousGoodsBasic_corrosiveSubstances = 18, + cam_ts_DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_cam_ts_DangerousGoodsBasic; + +/* cam_ts_DangerousGoodsBasic */ +typedef long cam_ts_DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_DangerousGoodsBasic_specs_1; +asn_struct_free_f cam_ts_DangerousGoodsBasic_free; +asn_struct_print_f cam_ts_DangerousGoodsBasic_print; +asn_constr_check_f cam_ts_DangerousGoodsBasic_constraint; +per_type_decoder_f cam_ts_DangerousGoodsBasic_decode_uper; +per_type_encoder_f cam_ts_DangerousGoodsBasic_encode_uper; +per_type_decoder_f cam_ts_DangerousGoodsBasic_decode_aper; +per_type_encoder_f cam_ts_DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DangerousGoodsBasic_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsContainer.h new file mode 100644 index 000000000..debcb53f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsContainer.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DangerousGoodsContainer_H_ +#define _cam_ts_DangerousGoodsContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_DangerousGoodsBasic.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_DangerousGoodsContainer */ +typedef struct cam_ts_DangerousGoodsContainer { + cam_ts_DangerousGoodsBasic_t dangerousGoodsBasic; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_DangerousGoodsContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousGoodsContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_DangerousGoodsContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_DangerousGoodsContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DangerousGoodsContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsExtended.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsExtended.h new file mode 100644 index 000000000..8c2b943c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DangerousGoodsExtended_H_ +#define _cam_ts_DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_DangerousGoodsBasic.h" +#include +#include +#include +#include "etsi_its_cam_ts_coding/cam_ts_PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_DangerousGoodsExtended */ +typedef struct cam_ts_DangerousGoodsExtended { + cam_ts_DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + cam_ts_PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DangerousGoodsExtended_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousSituationSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousSituationSubCauseCode.h new file mode 100644 index 000000000..0642f4ae1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DangerousSituationSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DangerousSituationSubCauseCode_H_ +#define _cam_ts_DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DangerousSituationSubCauseCode { + cam_ts_DangerousSituationSubCauseCode_unavailable = 0, + cam_ts_DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + cam_ts_DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + cam_ts_DangerousSituationSubCauseCode_espEngaged = 3, + cam_ts_DangerousSituationSubCauseCode_absEngaged = 4, + cam_ts_DangerousSituationSubCauseCode_ebEngaged = 5, + cam_ts_DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + cam_ts_DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_cam_ts_DangerousSituationSubCauseCode; + +/* cam_ts_DangerousSituationSubCauseCode */ +typedef long cam_ts_DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DangerousSituationSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousSituationSubCauseCode; +asn_struct_free_f cam_ts_DangerousSituationSubCauseCode_free; +asn_struct_print_f cam_ts_DangerousSituationSubCauseCode_print; +asn_constr_check_f cam_ts_DangerousSituationSubCauseCode_constraint; +per_type_decoder_f cam_ts_DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DangerousSituationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaAltitude.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaAltitude.h new file mode 100644 index 000000000..17a02c50b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaAltitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaAltitude_H_ +#define _cam_ts_DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DeltaAltitude { + cam_ts_DeltaAltitude_negativeOutOfRange = -12700, + cam_ts_DeltaAltitude_positiveOutOfRange = 12799, + cam_ts_DeltaAltitude_unavailable = 12800 +} e_cam_ts_DeltaAltitude; + +/* cam_ts_DeltaAltitude */ +typedef long cam_ts_DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaAltitude; +asn_struct_free_f cam_ts_DeltaAltitude_free; +asn_struct_print_f cam_ts_DeltaAltitude_print; +asn_constr_check_f cam_ts_DeltaAltitude_constraint; +per_type_decoder_f cam_ts_DeltaAltitude_decode_uper; +per_type_encoder_f cam_ts_DeltaAltitude_encode_uper; +per_type_decoder_f cam_ts_DeltaAltitude_decode_aper; +per_type_encoder_f cam_ts_DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaAltitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaLatitude.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaLatitude.h new file mode 100644 index 000000000..d89fd82be --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaLatitude.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaLatitude_H_ +#define _cam_ts_DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DeltaLatitude { + cam_ts_DeltaLatitude_unavailable = 131072 +} e_cam_ts_DeltaLatitude; + +/* cam_ts_DeltaLatitude */ +typedef long cam_ts_DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaLatitude; +asn_struct_free_f cam_ts_DeltaLatitude_free; +asn_struct_print_f cam_ts_DeltaLatitude_print; +asn_constr_check_f cam_ts_DeltaLatitude_constraint; +per_type_decoder_f cam_ts_DeltaLatitude_decode_uper; +per_type_encoder_f cam_ts_DeltaLatitude_encode_uper; +per_type_decoder_f cam_ts_DeltaLatitude_decode_aper; +per_type_encoder_f cam_ts_DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaLatitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaLongitude.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaLongitude.h new file mode 100644 index 000000000..0d4eb7624 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaLongitude.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaLongitude_H_ +#define _cam_ts_DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DeltaLongitude { + cam_ts_DeltaLongitude_unavailable = 131072 +} e_cam_ts_DeltaLongitude; + +/* cam_ts_DeltaLongitude */ +typedef long cam_ts_DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaLongitude; +asn_struct_free_f cam_ts_DeltaLongitude_free; +asn_struct_print_f cam_ts_DeltaLongitude_print; +asn_constr_check_f cam_ts_DeltaLongitude_constraint; +per_type_decoder_f cam_ts_DeltaLongitude_decode_uper; +per_type_encoder_f cam_ts_DeltaLongitude_encode_uper; +per_type_decoder_f cam_ts_DeltaLongitude_decode_aper; +per_type_encoder_f cam_ts_DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaLongitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaReferencePosition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaReferencePosition.h new file mode 100644 index 000000000..2e4ad8fa2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaReferencePosition_H_ +#define _cam_ts_DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_DeltaLatitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaLongitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_DeltaReferencePosition */ +typedef struct cam_ts_DeltaReferencePosition { + cam_ts_DeltaLatitude_t deltaLatitude; + cam_ts_DeltaLongitude_t deltaLongitude; + cam_ts_DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaReferencePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondPositive.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondPositive.h new file mode 100644 index 000000000..3068ceb25 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondPositive.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaTimeMilliSecondPositive_H_ +#define _cam_ts_DeltaTimeMilliSecondPositive_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_DeltaTimeMilliSecondPositive */ +typedef long cam_ts_DeltaTimeMilliSecondPositive_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeMilliSecondPositive; +asn_struct_free_f cam_ts_DeltaTimeMilliSecondPositive_free; +asn_struct_print_f cam_ts_DeltaTimeMilliSecondPositive_print; +asn_constr_check_f cam_ts_DeltaTimeMilliSecondPositive_constraint; +per_type_decoder_f cam_ts_DeltaTimeMilliSecondPositive_decode_uper; +per_type_encoder_f cam_ts_DeltaTimeMilliSecondPositive_encode_uper; +per_type_decoder_f cam_ts_DeltaTimeMilliSecondPositive_decode_aper; +per_type_encoder_f cam_ts_DeltaTimeMilliSecondPositive_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaTimeMilliSecondPositive_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondSigned.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondSigned.h new file mode 100644 index 000000000..288890c73 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondSigned.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaTimeMilliSecondSigned_H_ +#define _cam_ts_DeltaTimeMilliSecondSigned_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_DeltaTimeMilliSecondSigned */ +typedef long cam_ts_DeltaTimeMilliSecondSigned_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeMilliSecondSigned_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeMilliSecondSigned; +asn_struct_free_f cam_ts_DeltaTimeMilliSecondSigned_free; +asn_struct_print_f cam_ts_DeltaTimeMilliSecondSigned_print; +asn_constr_check_f cam_ts_DeltaTimeMilliSecondSigned_constraint; +per_type_decoder_f cam_ts_DeltaTimeMilliSecondSigned_decode_uper; +per_type_encoder_f cam_ts_DeltaTimeMilliSecondSigned_encode_uper; +per_type_decoder_f cam_ts_DeltaTimeMilliSecondSigned_decode_aper; +per_type_encoder_f cam_ts_DeltaTimeMilliSecondSigned_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaTimeMilliSecondSigned_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeQuarterSecond.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeQuarterSecond.h new file mode 100644 index 000000000..f8fae4b6a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeQuarterSecond.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaTimeQuarterSecond_H_ +#define _cam_ts_DeltaTimeQuarterSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DeltaTimeQuarterSecond { + cam_ts_DeltaTimeQuarterSecond_unavailable = 255 +} e_cam_ts_DeltaTimeQuarterSecond; + +/* cam_ts_DeltaTimeQuarterSecond */ +typedef long cam_ts_DeltaTimeQuarterSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeQuarterSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeQuarterSecond; +asn_struct_free_f cam_ts_DeltaTimeQuarterSecond_free; +asn_struct_print_f cam_ts_DeltaTimeQuarterSecond_print; +asn_constr_check_f cam_ts_DeltaTimeQuarterSecond_constraint; +per_type_decoder_f cam_ts_DeltaTimeQuarterSecond_decode_uper; +per_type_encoder_f cam_ts_DeltaTimeQuarterSecond_encode_uper; +per_type_decoder_f cam_ts_DeltaTimeQuarterSecond_decode_aper; +per_type_encoder_f cam_ts_DeltaTimeQuarterSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaTimeQuarterSecond_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeSecond.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeSecond.h new file mode 100644 index 000000000..1276f37ea --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeSecond.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaTimeSecond_H_ +#define _cam_ts_DeltaTimeSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_DeltaTimeSecond */ +typedef long cam_ts_DeltaTimeSecond_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeSecond; +asn_struct_free_f cam_ts_DeltaTimeSecond_free; +asn_struct_print_f cam_ts_DeltaTimeSecond_print; +asn_constr_check_f cam_ts_DeltaTimeSecond_constraint; +per_type_decoder_f cam_ts_DeltaTimeSecond_decode_uper; +per_type_encoder_f cam_ts_DeltaTimeSecond_encode_uper; +per_type_decoder_f cam_ts_DeltaTimeSecond_decode_aper; +per_type_encoder_f cam_ts_DeltaTimeSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaTimeSecond_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenSeconds.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenSeconds.h new file mode 100644 index 000000000..b764c510b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenSeconds.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaTimeTenSeconds_H_ +#define _cam_ts_DeltaTimeTenSeconds_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_DeltaTimeTenSeconds */ +typedef long cam_ts_DeltaTimeTenSeconds_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeTenSeconds_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeTenSeconds; +asn_struct_free_f cam_ts_DeltaTimeTenSeconds_free; +asn_struct_print_f cam_ts_DeltaTimeTenSeconds_print; +asn_constr_check_f cam_ts_DeltaTimeTenSeconds_constraint; +per_type_decoder_f cam_ts_DeltaTimeTenSeconds_decode_uper; +per_type_encoder_f cam_ts_DeltaTimeTenSeconds_encode_uper; +per_type_decoder_f cam_ts_DeltaTimeTenSeconds_decode_aper; +per_type_encoder_f cam_ts_DeltaTimeTenSeconds_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaTimeTenSeconds_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h new file mode 100644 index 000000000..3028a28b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DeltaTimeTenthOfSecond_H_ +#define _cam_ts_DeltaTimeTenthOfSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DeltaTimeTenthOfSecond { + cam_ts_DeltaTimeTenthOfSecond_unavailable = 127 +} e_cam_ts_DeltaTimeTenthOfSecond; + +/* cam_ts_DeltaTimeTenthOfSecond */ +typedef long cam_ts_DeltaTimeTenthOfSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeTenthOfSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeTenthOfSecond; +asn_struct_free_f cam_ts_DeltaTimeTenthOfSecond_free; +asn_struct_print_f cam_ts_DeltaTimeTenthOfSecond_print; +asn_constr_check_f cam_ts_DeltaTimeTenthOfSecond_constraint; +per_type_decoder_f cam_ts_DeltaTimeTenthOfSecond_decode_uper; +per_type_encoder_f cam_ts_DeltaTimeTenthOfSecond_encode_uper; +per_type_decoder_f cam_ts_DeltaTimeTenthOfSecond_decode_aper; +per_type_encoder_f cam_ts_DeltaTimeTenthOfSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DeltaTimeTenthOfSecond_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DigitalMap.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DigitalMap.h new file mode 100644 index 000000000..5757b7373 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DigitalMap.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DigitalMap_H_ +#define _cam_ts_DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_ReferencePosition; + +/* cam_ts_DigitalMap */ +typedef struct cam_ts_DigitalMap { + A_SEQUENCE_OF(struct cam_ts_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DigitalMap; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_ReferencePosition.h" + +#endif /* _cam_ts_DigitalMap_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Direction.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Direction.h new file mode 100644 index 000000000..b98235461 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Direction.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Direction_H_ +#define _cam_ts_Direction_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Direction { + cam_ts_Direction_sameDirection = 0, + cam_ts_Direction_oppositeDirection = 1, + cam_ts_Direction_bothDirections = 2, + cam_ts_Direction_unavailable = 3 +} e_cam_ts_Direction; + +/* cam_ts_Direction */ +typedef long cam_ts_Direction_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_Direction_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Direction; +asn_struct_free_f cam_ts_Direction_free; +asn_struct_print_f cam_ts_Direction_print; +asn_constr_check_f cam_ts_Direction_constraint; +per_type_decoder_f cam_ts_Direction_decode_uper; +per_type_encoder_f cam_ts_Direction_encode_uper; +per_type_decoder_f cam_ts_Direction_decode_aper; +per_type_encoder_f cam_ts_Direction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Direction_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DriveDirection.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DriveDirection.h new file mode 100644 index 000000000..253b5d286 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DriveDirection.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DriveDirection_H_ +#define _cam_ts_DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_DriveDirection { + cam_ts_DriveDirection_forward = 0, + cam_ts_DriveDirection_backward = 1, + cam_ts_DriveDirection_unavailable = 2 +} e_cam_ts_DriveDirection; + +/* cam_ts_DriveDirection */ +typedef long cam_ts_DriveDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DriveDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DriveDirection; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_DriveDirection_specs_1; +asn_struct_free_f cam_ts_DriveDirection_free; +asn_struct_print_f cam_ts_DriveDirection_print; +asn_constr_check_f cam_ts_DriveDirection_constraint; +per_type_decoder_f cam_ts_DriveDirection_decode_uper; +per_type_encoder_f cam_ts_DriveDirection_encode_uper; +per_type_decoder_f cam_ts_DriveDirection_decode_aper; +per_type_encoder_f cam_ts_DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DriveDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DrivingLaneStatus.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DrivingLaneStatus.h new file mode 100644 index 000000000..7a3023490 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_DrivingLaneStatus.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_DrivingLaneStatus_H_ +#define _cam_ts_DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_DrivingLaneStatus */ +typedef BIT_STRING_t cam_ts_DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_DrivingLaneStatus; +asn_struct_free_f cam_ts_DrivingLaneStatus_free; +asn_struct_print_f cam_ts_DrivingLaneStatus_print; +asn_constr_check_f cam_ts_DrivingLaneStatus_constraint; +per_type_decoder_f cam_ts_DrivingLaneStatus_decode_uper; +per_type_encoder_f cam_ts_DrivingLaneStatus_encode_uper; +per_type_decoder_f cam_ts_DrivingLaneStatus_decode_aper; +per_type_encoder_f cam_ts_DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_DrivingLaneStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EXTERNAL.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EXTERNAL.h new file mode 100644 index 000000000..60886b0b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EXTERNAL.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ASN1C-UsefulInformationObjectClasses" + * found in "/usr/local/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EXTERNAL_H_ +#define _cam_ts_EXTERNAL_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EXTERNAL__encoding_PR { + cam_ts_EXTERNAL__encoding_PR_NOTHING, /* No components present */ + cam_ts_EXTERNAL__encoding_PR_single_ASN1_type, + cam_ts_EXTERNAL__encoding_PR_octet_aligned, + cam_ts_EXTERNAL__encoding_PR_arbitrary +} cam_ts_EXTERNAL__encoding_PR; + +/* cam_ts_EXTERNAL */ +typedef struct cam_ts_EXTERNAL { + OBJECT_IDENTIFIER_t *direct_reference; /* OPTIONAL */ + long *indirect_reference; /* OPTIONAL */ + ObjectDescriptor_t *data_value_descriptor; /* OPTIONAL */ + struct cam_ts_EXTERNAL__encoding { + cam_ts_EXTERNAL__encoding_PR present; + union cam_ts_EXTERNAL__cam_ts_encoding_u { + ANY_t single_ASN1_type; + OCTET_STRING_t octet_aligned; + BIT_STRING_t arbitrary; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } encoding; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_EXTERNAL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EXTERNAL; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EXTERNAL_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EllipticalShape.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EllipticalShape.h new file mode 100644 index 000000000..a212b4ebf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EllipticalShape.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EllipticalShape_H_ +#define _cam_ts_EllipticalShape_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CartesianPosition3d; + +/* cam_ts_EllipticalShape */ +typedef struct cam_ts_EllipticalShape { + struct cam_ts_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + cam_ts_StandardLength12b_t semiMajorAxisLength; + cam_ts_StandardLength12b_t semiMinorAxisLength; + cam_ts_CartesianAngleValue_t *orientation; /* OPTIONAL */ + cam_ts_StandardLength12b_t *height; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_EllipticalShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EllipticalShape; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EllipticalShape_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_EllipticalShape_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h" + +#endif /* _cam_ts_EllipticalShape_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmbarkationStatus.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmbarkationStatus.h new file mode 100644 index 000000000..d0dc937ad --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmbarkationStatus.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EmbarkationStatus_H_ +#define _cam_ts_EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_EmbarkationStatus */ +typedef BOOLEAN_t cam_ts_EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EmbarkationStatus; +asn_struct_free_f cam_ts_EmbarkationStatus_free; +asn_struct_print_f cam_ts_EmbarkationStatus_print; +asn_constr_check_f cam_ts_EmbarkationStatus_constraint; +per_type_decoder_f cam_ts_EmbarkationStatus_decode_uper; +per_type_encoder_f cam_ts_EmbarkationStatus_encode_uper; +per_type_decoder_f cam_ts_EmbarkationStatus_decode_aper; +per_type_encoder_f cam_ts_EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EmbarkationStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyContainer.h new file mode 100644 index 000000000..49177e367 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyContainer.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EmergencyContainer_H_ +#define _cam_ts_EmergencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h" +#include "etsi_its_cam_ts_coding/cam_ts_EmergencyPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CauseCodeV2; + +/* cam_ts_EmergencyContainer */ +typedef struct cam_ts_EmergencyContainer { + cam_ts_LightBarSirenInUse_t lightBarSirenInUse; + struct cam_ts_CauseCodeV2 *incidentIndication; /* OPTIONAL */ + cam_ts_EmergencyPriority_t *emergencyPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_EmergencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EmergencyContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EmergencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_EmergencyContainer_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CauseCodeV2.h" + +#endif /* _cam_ts_EmergencyContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyPriority.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyPriority.h new file mode 100644 index 000000000..09ec3a7b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyPriority.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EmergencyPriority_H_ +#define _cam_ts_EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EmergencyPriority { + cam_ts_EmergencyPriority_requestForRightOfWay = 0, + cam_ts_EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_cam_ts_EmergencyPriority; + +/* cam_ts_EmergencyPriority */ +typedef BIT_STRING_t cam_ts_EmergencyPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_EmergencyPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EmergencyPriority; +asn_struct_free_f cam_ts_EmergencyPriority_free; +asn_struct_print_f cam_ts_EmergencyPriority_print; +asn_constr_check_f cam_ts_EmergencyPriority_constraint; +per_type_decoder_f cam_ts_EmergencyPriority_decode_uper; +per_type_encoder_f cam_ts_EmergencyPriority_encode_uper; +per_type_decoder_f cam_ts_EmergencyPriority_decode_aper; +per_type_encoder_f cam_ts_EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EmergencyPriority_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyVehicleApproachingSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 000000000..187d0bdd9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EmergencyVehicleApproachingSubCauseCode_H_ +#define _cam_ts_EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EmergencyVehicleApproachingSubCauseCode { + cam_ts_EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + cam_ts_EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + cam_ts_EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_cam_ts_EmergencyVehicleApproachingSubCauseCode; + +/* cam_ts_EmergencyVehicleApproachingSubCauseCode */ +typedef long cam_ts_EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_EmergencyVehicleApproachingSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f cam_ts_EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f cam_ts_EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f cam_ts_EmergencyVehicleApproachingSubCauseCode_constraint; +per_type_decoder_f cam_ts_EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EnergyStorageType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EnergyStorageType.h new file mode 100644 index 000000000..a166240de --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EnergyStorageType.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EnergyStorageType_H_ +#define _cam_ts_EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EnergyStorageType { + cam_ts_EnergyStorageType_hydrogenStorage = 0, + cam_ts_EnergyStorageType_electricEnergyStorage = 1, + cam_ts_EnergyStorageType_liquidPropaneGas = 2, + cam_ts_EnergyStorageType_compressedNaturalGas = 3, + cam_ts_EnergyStorageType_diesel = 4, + cam_ts_EnergyStorageType_gasoline = 5, + cam_ts_EnergyStorageType_ammonia = 6 +} e_cam_ts_EnergyStorageType; + +/* cam_ts_EnergyStorageType */ +typedef BIT_STRING_t cam_ts_EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EnergyStorageType; +asn_struct_free_f cam_ts_EnergyStorageType_free; +asn_struct_print_f cam_ts_EnergyStorageType_print; +asn_constr_check_f cam_ts_EnergyStorageType_constraint; +per_type_decoder_f cam_ts_EnergyStorageType_decode_uper; +per_type_encoder_f cam_ts_EnergyStorageType_encode_uper; +per_type_decoder_f cam_ts_EnergyStorageType_decode_aper; +per_type_encoder_f cam_ts_EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EnergyStorageType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryCode.h new file mode 100644 index 000000000..dd5293620 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EuVehicleCategoryCode_H_ +#define _cam_ts_EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryL.h" +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryM.h" +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryN.h" +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EuVehicleCategoryCode_PR { + cam_ts_EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryL, + cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryM, + cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryN, + cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryO, + cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryT, + cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryG +} cam_ts_EuVehicleCategoryCode_PR; + +/* cam_ts_EuVehicleCategoryCode */ +typedef struct cam_ts_EuVehicleCategoryCode { + cam_ts_EuVehicleCategoryCode_PR present; + union cam_ts_EuVehicleCategoryCode_u { + cam_ts_EuVehicleCategoryL_t euVehicleCategoryL; + cam_ts_EuVehicleCategoryM_t euVehicleCategoryM; + cam_ts_EuVehicleCategoryN_t euVehicleCategoryN; + cam_ts_EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehicleCategoryT; + NULL_t euVehicleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EuVehicleCategoryCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryL.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryL.h new file mode 100644 index 000000000..3146aa267 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryL.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EuVehicleCategoryL_H_ +#define _cam_ts_EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EuVehicleCategoryL { + cam_ts_EuVehicleCategoryL_l1 = 0, + cam_ts_EuVehicleCategoryL_l2 = 1, + cam_ts_EuVehicleCategoryL_l3 = 2, + cam_ts_EuVehicleCategoryL_l4 = 3, + cam_ts_EuVehicleCategoryL_l5 = 4, + cam_ts_EuVehicleCategoryL_l6 = 5, + cam_ts_EuVehicleCategoryL_l7 = 6 +} e_cam_ts_EuVehicleCategoryL; + +/* cam_ts_EuVehicleCategoryL */ +typedef long cam_ts_EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_EuVehicleCategoryL_specs_1; +asn_struct_free_f cam_ts_EuVehicleCategoryL_free; +asn_struct_print_f cam_ts_EuVehicleCategoryL_print; +asn_constr_check_f cam_ts_EuVehicleCategoryL_constraint; +per_type_decoder_f cam_ts_EuVehicleCategoryL_decode_uper; +per_type_encoder_f cam_ts_EuVehicleCategoryL_encode_uper; +per_type_decoder_f cam_ts_EuVehicleCategoryL_decode_aper; +per_type_encoder_f cam_ts_EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EuVehicleCategoryL_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryM.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryM.h new file mode 100644 index 000000000..f2c8de38a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryM.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EuVehicleCategoryM_H_ +#define _cam_ts_EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EuVehicleCategoryM { + cam_ts_EuVehicleCategoryM_m1 = 0, + cam_ts_EuVehicleCategoryM_m2 = 1, + cam_ts_EuVehicleCategoryM_m3 = 2 +} e_cam_ts_EuVehicleCategoryM; + +/* cam_ts_EuVehicleCategoryM */ +typedef long cam_ts_EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_EuVehicleCategoryM_specs_1; +asn_struct_free_f cam_ts_EuVehicleCategoryM_free; +asn_struct_print_f cam_ts_EuVehicleCategoryM_print; +asn_constr_check_f cam_ts_EuVehicleCategoryM_constraint; +per_type_decoder_f cam_ts_EuVehicleCategoryM_decode_uper; +per_type_encoder_f cam_ts_EuVehicleCategoryM_encode_uper; +per_type_decoder_f cam_ts_EuVehicleCategoryM_decode_aper; +per_type_encoder_f cam_ts_EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EuVehicleCategoryM_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryN.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryN.h new file mode 100644 index 000000000..dda9f86cb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryN.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EuVehicleCategoryN_H_ +#define _cam_ts_EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EuVehicleCategoryN { + cam_ts_EuVehicleCategoryN_n1 = 0, + cam_ts_EuVehicleCategoryN_n2 = 1, + cam_ts_EuVehicleCategoryN_n3 = 2 +} e_cam_ts_EuVehicleCategoryN; + +/* cam_ts_EuVehicleCategoryN */ +typedef long cam_ts_EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_EuVehicleCategoryN_specs_1; +asn_struct_free_f cam_ts_EuVehicleCategoryN_free; +asn_struct_print_f cam_ts_EuVehicleCategoryN_print; +asn_constr_check_f cam_ts_EuVehicleCategoryN_constraint; +per_type_decoder_f cam_ts_EuVehicleCategoryN_decode_uper; +per_type_encoder_f cam_ts_EuVehicleCategoryN_encode_uper; +per_type_decoder_f cam_ts_EuVehicleCategoryN_decode_aper; +per_type_encoder_f cam_ts_EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EuVehicleCategoryN_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryO.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryO.h new file mode 100644 index 000000000..8c4c4ffce --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryO.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EuVehicleCategoryO_H_ +#define _cam_ts_EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_EuVehicleCategoryO { + cam_ts_EuVehicleCategoryO_o1 = 0, + cam_ts_EuVehicleCategoryO_o2 = 1, + cam_ts_EuVehicleCategoryO_o3 = 2, + cam_ts_EuVehicleCategoryO_o4 = 3 +} e_cam_ts_EuVehicleCategoryO; + +/* cam_ts_EuVehicleCategoryO */ +typedef long cam_ts_EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_EuVehicleCategoryO_specs_1; +asn_struct_free_f cam_ts_EuVehicleCategoryO_free; +asn_struct_print_f cam_ts_EuVehicleCategoryO_print; +asn_constr_check_f cam_ts_EuVehicleCategoryO_constraint; +per_type_decoder_f cam_ts_EuVehicleCategoryO_decode_uper; +per_type_encoder_f cam_ts_EuVehicleCategoryO_encode_uper; +per_type_decoder_f cam_ts_EuVehicleCategoryO_decode_aper; +per_type_encoder_f cam_ts_EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EuVehicleCategoryO_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EulerAnglesWithConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EulerAnglesWithConfidence.h new file mode 100644 index 000000000..4ccb9529b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EulerAnglesWithConfidence.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EulerAnglesWithConfidence_H_ +#define _cam_ts_EulerAnglesWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CartesianAngle; + +/* cam_ts_EulerAnglesWithConfidence */ +typedef struct cam_ts_EulerAnglesWithConfidence { + cam_ts_CartesianAngle_t zAngle; + struct cam_ts_CartesianAngle *yAngle; /* OPTIONAL */ + struct cam_ts_CartesianAngle *xAngle; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_EulerAnglesWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EulerAnglesWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EulerAnglesWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_EulerAnglesWithConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h" + +#endif /* _cam_ts_EulerAnglesWithConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventHistory.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventHistory.h new file mode 100644 index 000000000..8b574db0c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventHistory.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EventHistory_H_ +#define _cam_ts_EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_EventPoint; + +/* cam_ts_EventHistory */ +typedef struct cam_ts_EventHistory { + A_SEQUENCE_OF(struct cam_ts_EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EventHistory; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_EventHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_EventHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_EventHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_EventPoint.h" + +#endif /* _cam_ts_EventHistory_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventPoint.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventPoint.h new file mode 100644 index 000000000..c1ca0baf9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EventPoint_H_ +#define _cam_ts_EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_DeltaReferencePosition.h" +#include "etsi_its_cam_ts_coding/cam_ts_PathDeltaTime.h" +#include "etsi_its_cam_ts_coding/cam_ts_InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_EventPoint */ +typedef struct cam_ts_EventPoint { + cam_ts_DeltaReferencePosition_t eventPosition; + cam_ts_PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + cam_ts_InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EventPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventZone.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventZone.h new file mode 100644 index 000000000..1d230c65c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_EventZone.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_EventZone_H_ +#define _cam_ts_EventZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_EventHistory.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_EventZone */ +typedef cam_ts_EventHistory_t cam_ts_EventZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_EventZone; +asn_struct_free_f cam_ts_EventZone_free; +asn_struct_print_f cam_ts_EventZone_print; +asn_constr_check_f cam_ts_EventZone_constraint; +per_type_decoder_f cam_ts_EventZone_decode_uper; +per_type_encoder_f cam_ts_EventZone_encode_uper; +per_type_decoder_f cam_ts_EventZone_decode_aper; +per_type_encoder_f cam_ts_EventZone_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_EventZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext1.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext1.h new file mode 100644 index 000000000..c8bbcb39a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext1.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Ext1_H_ +#define _cam_ts_Ext1_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_cam_ts_coding/cam_ts_Ext2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Ext1_PR { + cam_ts_Ext1_PR_NOTHING, /* No components present */ + cam_ts_Ext1_PR_content, + cam_ts_Ext1_PR_extension +} cam_ts_Ext1_PR; + +/* cam_ts_Ext1 */ +typedef struct cam_ts_Ext1 { + cam_ts_Ext1_PR present; + union cam_ts_Ext1_u { + long content; + cam_ts_Ext2_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Ext1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Ext1; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_Ext1_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Ext1_1[2]; +extern asn_per_constraints_t asn_PER_type_cam_ts_Ext1_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Ext1_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext2.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext2.h new file mode 100644 index 000000000..22f1c4f7e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext2.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Ext2_H_ +#define _cam_ts_Ext2_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_cam_ts_coding/cam_ts_Ext3.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Ext2_PR { + cam_ts_Ext2_PR_NOTHING, /* No components present */ + cam_ts_Ext2_PR_content, + cam_ts_Ext2_PR_extension +} cam_ts_Ext2_PR; + +/* cam_ts_Ext2 */ +typedef struct cam_ts_Ext2 { + cam_ts_Ext2_PR present; + union cam_ts_Ext2_u { + long content; + cam_ts_Ext3_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Ext2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Ext2; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_Ext2_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Ext2_1[2]; +extern asn_per_constraints_t asn_PER_type_cam_ts_Ext2_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Ext2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext3.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext3.h new file mode 100644 index 000000000..08a4ef485 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Ext3.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Ext3_H_ +#define _cam_ts_Ext3_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Ext3 */ +typedef long cam_ts_Ext3_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_Ext3_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Ext3; +asn_struct_free_f cam_ts_Ext3_free; +asn_struct_print_f cam_ts_Ext3_print; +asn_constr_check_f cam_ts_Ext3_constraint; +per_type_decoder_f cam_ts_Ext3_decode_uper; +per_type_encoder_f cam_ts_Ext3_encode_uper; +per_type_decoder_f cam_ts_Ext3_decode_aper; +per_type_encoder_f cam_ts_Ext3_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Ext3_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ExteriorLights.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ExteriorLights.h new file mode 100644 index 000000000..bf9a33a4d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ExteriorLights.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ExteriorLights_H_ +#define _cam_ts_ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ExteriorLights { + cam_ts_ExteriorLights_lowBeamHeadlightsOn = 0, + cam_ts_ExteriorLights_highBeamHeadlightsOn = 1, + cam_ts_ExteriorLights_leftTurnSignalOn = 2, + cam_ts_ExteriorLights_rightTurnSignalOn = 3, + cam_ts_ExteriorLights_daytimeRunningLightsOn = 4, + cam_ts_ExteriorLights_reverseLightOn = 5, + cam_ts_ExteriorLights_fogLightOn = 6, + cam_ts_ExteriorLights_parkingLightsOn = 7 +} e_cam_ts_ExteriorLights; + +/* cam_ts_ExteriorLights */ +typedef BIT_STRING_t cam_ts_ExteriorLights_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ExteriorLights_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ExteriorLights; +asn_struct_free_f cam_ts_ExteriorLights_free; +asn_struct_print_f cam_ts_ExteriorLights_print; +asn_constr_check_f cam_ts_ExteriorLights_constraint; +per_type_decoder_f cam_ts_ExteriorLights_decode_uper; +per_type_encoder_f cam_ts_ExteriorLights_encode_uper; +per_type_decoder_f cam_ts_ExteriorLights_decode_aper; +per_type_encoder_f cam_ts_ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ExteriorLights_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePosition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePosition.h new file mode 100644 index 000000000..c0b7ef218 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePosition.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_GeneralizedLanePosition_H_ +#define _cam_ts_GeneralizedLanePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LanePositionOptions.h" +#include "etsi_its_cam_ts_coding/cam_ts_MetaInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_MapPosition; + +/* cam_ts_GeneralizedLanePosition */ +typedef struct cam_ts_GeneralizedLanePosition { + cam_ts_LanePositionOptions_t lanePositionBased; + struct cam_ts_MapPosition *mapBased; /* OPTIONAL */ + cam_ts_MetaInformation_t confidence; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_GeneralizedLanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_GeneralizedLanePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_GeneralizedLanePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_GeneralizedLanePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_MapPosition.h" + +#endif /* _cam_ts_GeneralizedLanePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePositions.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePositions.h new file mode 100644 index 000000000..431436eec --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePositions.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_GeneralizedLanePositions_H_ +#define _cam_ts_GeneralizedLanePositions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_GeneralizedLanePosition; + +/* cam_ts_GeneralizedLanePositions */ +typedef struct cam_ts_GeneralizedLanePositions { + A_SEQUENCE_OF(struct cam_ts_GeneralizedLanePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_GeneralizedLanePositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_GeneralizedLanePositions; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePosition.h" + +#endif /* _cam_ts_GeneralizedLanePositions_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GenerationDeltaTime.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GenerationDeltaTime.h new file mode 100644 index 000000000..48db5fbe0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GenerationDeltaTime.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_GenerationDeltaTime_H_ +#define _cam_ts_GenerationDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_GenerationDeltaTime { + cam_ts_GenerationDeltaTime_oneMilliSec = 1 +} e_cam_ts_GenerationDeltaTime; + +/* cam_ts_GenerationDeltaTime */ +typedef long cam_ts_GenerationDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_GenerationDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_GenerationDeltaTime; +asn_struct_free_f cam_ts_GenerationDeltaTime_free; +asn_struct_print_f cam_ts_GenerationDeltaTime_print; +asn_constr_check_f cam_ts_GenerationDeltaTime_constraint; +per_type_decoder_f cam_ts_GenerationDeltaTime_decode_uper; +per_type_encoder_f cam_ts_GenerationDeltaTime_encode_uper; +per_type_decoder_f cam_ts_GenerationDeltaTime_decode_aper; +per_type_encoder_f cam_ts_GenerationDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_GenerationDeltaTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeoPosition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeoPosition.h new file mode 100644 index 000000000..2438e6a38 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_GeoPosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_GeoPosition_H_ +#define _cam_ts_GeoPosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Latitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_Longitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_AltitudeValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_GeoPosition */ +typedef struct cam_ts_GeoPosition { + cam_ts_Latitude_t latitude; + cam_ts_Longitude_t longitude; + cam_ts_AltitudeValue_t *altitude; /* DEFAULT 800001 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_GeoPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_GeoPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_GeoPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_GeoPosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_GeoPosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HardShoulderStatus.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HardShoulderStatus.h new file mode 100644 index 000000000..c64156517 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HardShoulderStatus.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HardShoulderStatus_H_ +#define _cam_ts_HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HardShoulderStatus { + cam_ts_HardShoulderStatus_availableForStopping = 0, + cam_ts_HardShoulderStatus_closed = 1, + cam_ts_HardShoulderStatus_availableForDriving = 2 +} e_cam_ts_HardShoulderStatus; + +/* cam_ts_HardShoulderStatus */ +typedef long cam_ts_HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_HardShoulderStatus_specs_1; +asn_struct_free_f cam_ts_HardShoulderStatus_free; +asn_struct_print_f cam_ts_HardShoulderStatus_print; +asn_constr_check_f cam_ts_HardShoulderStatus_constraint; +per_type_decoder_f cam_ts_HardShoulderStatus_decode_uper; +per_type_encoder_f cam_ts_HardShoulderStatus_encode_uper; +per_type_decoder_f cam_ts_HardShoulderStatus_decode_aper; +per_type_encoder_f cam_ts_HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HardShoulderStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..9f17183be --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode { + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimalsSmall = 5, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimalsLarge = 6, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_domesticAnimals = 7, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_domesticAnimalsSmall = 8, + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_domesticAnimalsLarge = 9 +} e_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +per_type_decoder_f cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-DangerousCurveSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 000000000..5ccaf7512 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _cam_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HazardousLocation_DangerousCurveSubCauseCode { + cam_ts_HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + cam_ts_HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + cam_ts_HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + cam_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + cam_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + cam_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_cam_ts_HazardousLocation_DangerousCurveSubCauseCode; + +/* cam_ts_HazardousLocation-DangerousCurveSubCauseCode */ +typedef long cam_ts_HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f cam_ts_HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f cam_ts_HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f cam_ts_HazardousLocation_DangerousCurveSubCauseCode_constraint; +per_type_decoder_f cam_ts_HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..155a1ec6e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode { + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +per_type_decoder_f cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-SurfaceConditionSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 000000000..d16a4bcf2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HazardousLocation_SurfaceConditionSubCauseCode { + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9, + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_fire = 10 +} e_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode; + +/* cam_ts_HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_constraint; +per_type_decoder_f cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Heading.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Heading.h new file mode 100644 index 000000000..2720be4d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Heading.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Heading_H_ +#define _cam_ts_Heading_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_HeadingValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Heading */ +typedef struct cam_ts_Heading { + cam_ts_HeadingValue_t headingValue; + cam_ts_HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Heading; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Heading_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Heading_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Heading_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingChangeIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingChangeIndication.h new file mode 100644 index 000000000..928376174 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingChangeIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HeadingChangeIndication_H_ +#define _cam_ts_HeadingChangeIndication_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_TurningDirection.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_HeadingChangeIndication */ +typedef struct cam_ts_HeadingChangeIndication { + cam_ts_TurningDirection_t direction; + cam_ts_DeltaTimeTenthOfSecond_t actionDeltaTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_HeadingChangeIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HeadingChangeIndication; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HeadingChangeIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingConfidence.h new file mode 100644 index 000000000..b897c2e63 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HeadingConfidence_H_ +#define _cam_ts_HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HeadingConfidence { + cam_ts_HeadingConfidence_outOfRange = 126, + cam_ts_HeadingConfidence_unavailable = 127 +} e_cam_ts_HeadingConfidence; + +/* cam_ts_HeadingConfidence */ +typedef long cam_ts_HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HeadingConfidence; +asn_struct_free_f cam_ts_HeadingConfidence_free; +asn_struct_print_f cam_ts_HeadingConfidence_print; +asn_constr_check_f cam_ts_HeadingConfidence_constraint; +per_type_decoder_f cam_ts_HeadingConfidence_decode_uper; +per_type_encoder_f cam_ts_HeadingConfidence_encode_uper; +per_type_decoder_f cam_ts_HeadingConfidence_decode_aper; +per_type_encoder_f cam_ts_HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HeadingConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingValue.h new file mode 100644 index 000000000..74f890371 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeadingValue.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HeadingValue_H_ +#define _cam_ts_HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HeadingValue { + cam_ts_HeadingValue_wgs84North = 0, + cam_ts_HeadingValue_wgs84East = 900, + cam_ts_HeadingValue_wgs84South = 1800, + cam_ts_HeadingValue_wgs84West = 2700, + cam_ts_HeadingValue_doNotUse = 3600, + cam_ts_HeadingValue_unavailable = 3601 +} e_cam_ts_HeadingValue; + +/* cam_ts_HeadingValue */ +typedef long cam_ts_HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HeadingValue; +asn_struct_free_f cam_ts_HeadingValue_free; +asn_struct_print_f cam_ts_HeadingValue_print; +asn_constr_check_f cam_ts_HeadingValue_constraint; +per_type_decoder_f cam_ts_HeadingValue_decode_uper; +per_type_encoder_f cam_ts_HeadingValue_encode_uper; +per_type_decoder_f cam_ts_HeadingValue_decode_aper; +per_type_encoder_f cam_ts_HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HeadingValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeightLonCarr.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeightLonCarr.h new file mode 100644 index 000000000..1396a2aa6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HeightLonCarr.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HeightLonCarr_H_ +#define _cam_ts_HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HeightLonCarr { + cam_ts_HeightLonCarr_outOfRange = 99, + cam_ts_HeightLonCarr_unavailable = 100 +} e_cam_ts_HeightLonCarr; + +/* cam_ts_HeightLonCarr */ +typedef long cam_ts_HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HeightLonCarr; +asn_struct_free_f cam_ts_HeightLonCarr_free; +asn_struct_print_f cam_ts_HeightLonCarr_print; +asn_constr_check_f cam_ts_HeightLonCarr_constraint; +per_type_decoder_f cam_ts_HeightLonCarr_decode_uper; +per_type_encoder_f cam_ts_HeightLonCarr_encode_uper; +per_type_decoder_f cam_ts_HeightLonCarr_decode_aper; +per_type_encoder_f cam_ts_HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HeightLonCarr_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HighFrequencyContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HighFrequencyContainer.h new file mode 100644 index 000000000..f2860c083 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HighFrequencyContainer.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HighFrequencyContainer_H_ +#define _cam_ts_HighFrequencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerHighFrequency.h" +#include "etsi_its_cam_ts_coding/cam_ts_RSUContainerHighFrequency.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HighFrequencyContainer_PR { + cam_ts_HighFrequencyContainer_PR_NOTHING, /* No components present */ + cam_ts_HighFrequencyContainer_PR_basicVehicleContainerHighFrequency, + cam_ts_HighFrequencyContainer_PR_rsuContainerHighFrequency + /* Extensions may appear below */ + +} cam_ts_HighFrequencyContainer_PR; + +/* cam_ts_HighFrequencyContainer */ +typedef struct cam_ts_HighFrequencyContainer { + cam_ts_HighFrequencyContainer_PR present; + union cam_ts_HighFrequencyContainer_u { + cam_ts_BasicVehicleContainerHighFrequency_t basicVehicleContainerHighFrequency; + cam_ts_RSUContainerHighFrequency_t rsuContainerHighFrequency; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_HighFrequencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HighFrequencyContainer; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_HighFrequencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_HighFrequencyContainer_1[2]; +extern asn_per_constraints_t asn_PER_type_cam_ts_HighFrequencyContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HighFrequencyContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HumanPresenceOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..2c16b0b7d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HumanPresenceOnTheRoadSubCauseCode_H_ +#define _cam_ts_HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HumanPresenceOnTheRoadSubCauseCode { + cam_ts_HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_pedestrian = 4, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_ordinary_pedestrian = 5, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_road_worker = 6, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_first_responder = 7, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_lightVruVehicle = 8, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_bicyclist = 9, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_wheelchair_user = 10, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_horse_and_rider = 11, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_rollerskater = 12, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_e_scooter = 13, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_personal_transporter = 14, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_pedelec = 15, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_speed_pedelec = 16, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_ptw = 17, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_moped = 18, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_motorcycle = 19, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_motorcycle_and_sidecar_right = 20, + cam_ts_HumanPresenceOnTheRoadSubCauseCode_motorcycle_and_sidecar_left = 21 +} e_cam_ts_HumanPresenceOnTheRoadSubCauseCode; + +/* cam_ts_HumanPresenceOnTheRoadSubCauseCode */ +typedef long cam_ts_HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HumanPresenceOnTheRoadSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f cam_ts_HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f cam_ts_HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f cam_ts_HumanPresenceOnTheRoadSubCauseCode_constraint; +per_type_decoder_f cam_ts_HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HumanProblemSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HumanProblemSubCauseCode.h new file mode 100644 index 000000000..ca7011bad --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_HumanProblemSubCauseCode.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_HumanProblemSubCauseCode_H_ +#define _cam_ts_HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_HumanProblemSubCauseCode { + cam_ts_HumanProblemSubCauseCode_unavailable = 0, + cam_ts_HumanProblemSubCauseCode_glycemiaProblem = 1, + cam_ts_HumanProblemSubCauseCode_heartProblem = 2 +} e_cam_ts_HumanProblemSubCauseCode; + +/* cam_ts_HumanProblemSubCauseCode */ +typedef long cam_ts_HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_HumanProblemSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_HumanProblemSubCauseCode; +asn_struct_free_f cam_ts_HumanProblemSubCauseCode_free; +asn_struct_print_f cam_ts_HumanProblemSubCauseCode_print; +asn_constr_check_f cam_ts_HumanProblemSubCauseCode_constraint; +per_type_decoder_f cam_ts_HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_HumanProblemSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Identifier1B.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Identifier1B.h new file mode 100644 index 000000000..763d8d10a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Identifier1B.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Identifier1B_H_ +#define _cam_ts_Identifier1B_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Identifier1B */ +typedef long cam_ts_Identifier1B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_Identifier1B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Identifier1B; +asn_struct_free_f cam_ts_Identifier1B_free; +asn_struct_print_f cam_ts_Identifier1B_print; +asn_constr_check_f cam_ts_Identifier1B_constraint; +per_type_decoder_f cam_ts_Identifier1B_decode_uper; +per_type_encoder_f cam_ts_Identifier1B_encode_uper; +per_type_decoder_f cam_ts_Identifier1B_decode_aper; +per_type_encoder_f cam_ts_Identifier1B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Identifier1B_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Identifier2B.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Identifier2B.h new file mode 100644 index 000000000..ba3aba9a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Identifier2B.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Identifier2B_H_ +#define _cam_ts_Identifier2B_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Identifier2B */ +typedef long cam_ts_Identifier2B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_Identifier2B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Identifier2B; +asn_struct_free_f cam_ts_Identifier2B_free; +asn_struct_print_f cam_ts_Identifier2B_print; +asn_constr_check_f cam_ts_Identifier2B_constraint; +per_type_decoder_f cam_ts_Identifier2B_decode_uper; +per_type_encoder_f cam_ts_Identifier2B_encode_uper; +per_type_decoder_f cam_ts_Identifier2B_decode_aper; +per_type_encoder_f cam_ts_Identifier2B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Identifier2B_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ImpassabilitySubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ImpassabilitySubCauseCode.h new file mode 100644 index 000000000..522b1e282 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ImpassabilitySubCauseCode.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ImpassabilitySubCauseCode_H_ +#define _cam_ts_ImpassabilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ImpassabilitySubCauseCode { + cam_ts_ImpassabilitySubCauseCode_unavailable = 0, + cam_ts_ImpassabilitySubCauseCode_flooding = 1, + cam_ts_ImpassabilitySubCauseCode_dangerOfAvalanches = 2, + cam_ts_ImpassabilitySubCauseCode_blastingOfAvalanches = 3, + cam_ts_ImpassabilitySubCauseCode_landslips = 4, + cam_ts_ImpassabilitySubCauseCode_chemicalSpillage = 5, + cam_ts_ImpassabilitySubCauseCode_winterClosure = 6, + cam_ts_ImpassabilitySubCauseCode_sinkhole = 7, + cam_ts_ImpassabilitySubCauseCode_earthquakeDamage = 8, + cam_ts_ImpassabilitySubCauseCode_fallenTrees = 9, + cam_ts_ImpassabilitySubCauseCode_rockfalls = 10, + cam_ts_ImpassabilitySubCauseCode_sewerOverflow = 11, + cam_ts_ImpassabilitySubCauseCode_stormDamage = 12, + cam_ts_ImpassabilitySubCauseCode_subsidence = 13, + cam_ts_ImpassabilitySubCauseCode_burstPipe = 14, + cam_ts_ImpassabilitySubCauseCode_burstWaterMain = 15, + cam_ts_ImpassabilitySubCauseCode_fallenPowerCables = 16, + cam_ts_ImpassabilitySubCauseCode_snowDrifts = 17 +} e_cam_ts_ImpassabilitySubCauseCode; + +/* cam_ts_ImpassabilitySubCauseCode */ +typedef long cam_ts_ImpassabilitySubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ImpassabilitySubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ImpassabilitySubCauseCode; +asn_struct_free_f cam_ts_ImpassabilitySubCauseCode_free; +asn_struct_print_f cam_ts_ImpassabilitySubCauseCode_print; +asn_constr_check_f cam_ts_ImpassabilitySubCauseCode_constraint; +per_type_decoder_f cam_ts_ImpassabilitySubCauseCode_decode_uper; +per_type_encoder_f cam_ts_ImpassabilitySubCauseCode_encode_uper; +per_type_decoder_f cam_ts_ImpassabilitySubCauseCode_decode_aper; +per_type_encoder_f cam_ts_ImpassabilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ImpassabilitySubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InformationQuality.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InformationQuality.h new file mode 100644 index 000000000..4ddc4522d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InformationQuality.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_InformationQuality_H_ +#define _cam_ts_InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_InformationQuality */ +typedef long cam_ts_InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_InformationQuality; +asn_struct_free_f cam_ts_InformationQuality_free; +asn_struct_print_f cam_ts_InformationQuality_print; +asn_constr_check_f cam_ts_InformationQuality_constraint; +per_type_decoder_f cam_ts_InformationQuality_decode_uper; +per_type_encoder_f cam_ts_InformationQuality_encode_uper; +per_type_decoder_f cam_ts_InformationQuality_decode_aper; +per_type_encoder_f cam_ts_InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_InformationQuality_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementChannel.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementChannel.h new file mode 100644 index 000000000..69ca1ed1f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementChannel.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_InterferenceManagementChannel_H_ +#define _cam_ts_InterferenceManagementChannel_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_InterferenceManagementChannel */ +typedef struct cam_ts_InterferenceManagementChannel { + long centreFrequency; + long channelWidth; + long exponent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_InterferenceManagementChannel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementChannel; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_InterferenceManagementChannel_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementChannel_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_InterferenceManagementChannel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfo.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfo.h new file mode 100644 index 000000000..c0bc28c13 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfo.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_InterferenceManagementInfo_H_ +#define _cam_ts_InterferenceManagementInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_InterferenceManagementInfoPerChannel; + +/* cam_ts_InterferenceManagementInfo */ +typedef struct cam_ts_InterferenceManagementInfo { + A_SEQUENCE_OF(struct cam_ts_InterferenceManagementInfoPerChannel) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_InterferenceManagementInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementInfo; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_InterferenceManagementInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementInfo_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_InterferenceManagementInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfoPerChannel.h" + +#endif /* _cam_ts_InterferenceManagementInfo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfoPerChannel.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfoPerChannel.h new file mode 100644 index 000000000..953cdc819 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfoPerChannel.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_InterferenceManagementInfoPerChannel_H_ +#define _cam_ts_InterferenceManagementInfoPerChannel_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementChannel.h" +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneType.h" +#include "etsi_its_cam_ts_coding/cam_ts_TimestampIts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_MitigationForTechnologies; + +/* cam_ts_InterferenceManagementInfoPerChannel */ +typedef struct cam_ts_InterferenceManagementInfoPerChannel { + cam_ts_InterferenceManagementChannel_t interferenceManagementChannel; + cam_ts_InterferenceManagementZoneType_t interferenceManagementZoneType; + struct cam_ts_MitigationForTechnologies *interferenceManagementMitigationType; /* OPTIONAL */ + cam_ts_TimestampIts_t *expiryTime; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_InterferenceManagementInfoPerChannel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementInfoPerChannel; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_InterferenceManagementInfoPerChannel_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementInfoPerChannel_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_MitigationForTechnologies.h" + +#endif /* _cam_ts_InterferenceManagementInfoPerChannel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZone.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZone.h new file mode 100644 index 000000000..db946c852 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZone.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_InterferenceManagementZone_H_ +#define _cam_ts_InterferenceManagementZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneDefinition.h" +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfo.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_InterferenceManagementZone */ +typedef struct cam_ts_InterferenceManagementZone { + cam_ts_InterferenceManagementZoneDefinition_t zoneDefinition; + cam_ts_InterferenceManagementInfo_t managementInfo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_InterferenceManagementZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementZone; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_InterferenceManagementZone_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementZone_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_InterferenceManagementZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneDefinition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneDefinition.h new file mode 100644 index 000000000..108090bb9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneDefinition.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_InterferenceManagementZoneDefinition_H_ +#define _cam_ts_InterferenceManagementZoneDefinition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Latitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_Longitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_Shape; + +/* cam_ts_InterferenceManagementZoneDefinition */ +typedef struct cam_ts_InterferenceManagementZoneDefinition { + cam_ts_Latitude_t interferenceManagementZoneLatitude; + cam_ts_Longitude_t interferenceManagementZoneLongitude; + cam_ts_ProtectedZoneId_t *interferenceManagementZoneId; /* OPTIONAL */ + struct cam_ts_Shape *interferenceManagementZoneShape; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_InterferenceManagementZoneDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementZoneDefinition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_InterferenceManagementZoneDefinition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementZoneDefinition_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_Shape.h" + +#endif /* _cam_ts_InterferenceManagementZoneDefinition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneType.h new file mode 100644 index 000000000..5b5b77218 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_InterferenceManagementZoneType_H_ +#define _cam_ts_InterferenceManagementZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_InterferenceManagementZoneType { + cam_ts_InterferenceManagementZoneType_permanentCenDsrcTolling = 0, + cam_ts_InterferenceManagementZoneType_temporaryCenDsrcTolling = 1, + cam_ts_InterferenceManagementZoneType_unavailable = 2, + cam_ts_InterferenceManagementZoneType_urbanRail = 3, + cam_ts_InterferenceManagementZoneType_satelliteStation = 4, + cam_ts_InterferenceManagementZoneType_fixedLinks = 5 + /* + * Enumeration is extensible + */ +} e_cam_ts_InterferenceManagementZoneType; + +/* cam_ts_InterferenceManagementZoneType */ +typedef long cam_ts_InterferenceManagementZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_InterferenceManagementZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_InterferenceManagementZoneType_specs_1; +asn_struct_free_f cam_ts_InterferenceManagementZoneType_free; +asn_struct_print_f cam_ts_InterferenceManagementZoneType_print; +asn_constr_check_f cam_ts_InterferenceManagementZoneType_constraint; +per_type_decoder_f cam_ts_InterferenceManagementZoneType_decode_uper; +per_type_encoder_f cam_ts_InterferenceManagementZoneType_encode_uper; +per_type_decoder_f cam_ts_InterferenceManagementZoneType_decode_aper; +per_type_encoder_f cam_ts_InterferenceManagementZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_InterferenceManagementZoneType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZones.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZones.h new file mode 100644 index 000000000..182761d1c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZones.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_InterferenceManagementZones_H_ +#define _cam_ts_InterferenceManagementZones_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_InterferenceManagementZone; + +/* cam_ts_InterferenceManagementZones */ +typedef struct cam_ts_InterferenceManagementZones { + A_SEQUENCE_OF(struct cam_ts_InterferenceManagementZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_InterferenceManagementZones_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementZones; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZone.h" + +#endif /* _cam_ts_InterferenceManagementZones_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IntersectionReferenceId.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IntersectionReferenceId.h new file mode 100644 index 000000000..4a30e9b67 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IntersectionReferenceId.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_IntersectionReferenceId_H_ +#define _cam_ts_IntersectionReferenceId_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier2B.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_IntersectionReferenceId */ +typedef struct cam_ts_IntersectionReferenceId { + cam_ts_Identifier2B_t *region; /* OPTIONAL */ + cam_ts_Identifier2B_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_IntersectionReferenceId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_IntersectionReferenceId; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_IntersectionReferenceId_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_IntersectionReferenceId_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_IntersectionReferenceId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Iso3833VehicleType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Iso3833VehicleType.h new file mode 100644 index 000000000..a2dfacd65 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Iso3833VehicleType.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Iso3833VehicleType_H_ +#define _cam_ts_Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Iso3833VehicleType { + cam_ts_Iso3833VehicleType_passengerCar = 0, + cam_ts_Iso3833VehicleType_saloon = 1, + cam_ts_Iso3833VehicleType_convertibleSaloon = 2, + cam_ts_Iso3833VehicleType_pullmanSaloon = 3, + cam_ts_Iso3833VehicleType_stationWagon = 4, + cam_ts_Iso3833VehicleType_truckStationWagon = 5, + cam_ts_Iso3833VehicleType_coupe = 6, + cam_ts_Iso3833VehicleType_convertible = 7, + cam_ts_Iso3833VehicleType_multipurposePassengerCar = 8, + cam_ts_Iso3833VehicleType_forwardControlPassengerCar = 9, + cam_ts_Iso3833VehicleType_specialPassengerCar = 10, + cam_ts_Iso3833VehicleType_bus = 11, + cam_ts_Iso3833VehicleType_minibus = 12, + cam_ts_Iso3833VehicleType_urbanBus = 13, + cam_ts_Iso3833VehicleType_interurbanCoach = 14, + cam_ts_Iso3833VehicleType_longDistanceCoach = 15, + cam_ts_Iso3833VehicleType_articulatedBus = 16, + cam_ts_Iso3833VehicleType_trolleyBus = 17, + cam_ts_Iso3833VehicleType_specialBus = 18, + cam_ts_Iso3833VehicleType_commercialVehicle = 19, + cam_ts_Iso3833VehicleType_specialCommercialVehicle = 20, + cam_ts_Iso3833VehicleType_specialVehicle = 21, + cam_ts_Iso3833VehicleType_trailingTowingVehicle = 22, + cam_ts_Iso3833VehicleType_semiTrailerTowingVehicle = 23, + cam_ts_Iso3833VehicleType_trailer = 24, + cam_ts_Iso3833VehicleType_busTrailer = 25, + cam_ts_Iso3833VehicleType_generalPurposeTrailer = 26, + cam_ts_Iso3833VehicleType_caravan = 27, + cam_ts_Iso3833VehicleType_specialTrailer = 28, + cam_ts_Iso3833VehicleType_semiTrailer = 29, + cam_ts_Iso3833VehicleType_busSemiTrailer = 30, + cam_ts_Iso3833VehicleType_generalPurposeSemiTrailer = 31, + cam_ts_Iso3833VehicleType_specialSemiTrailer = 32, + cam_ts_Iso3833VehicleType_roadTrain = 33, + cam_ts_Iso3833VehicleType_passengerRoadTrain = 34, + cam_ts_Iso3833VehicleType_articulatedRoadTrain = 35, + cam_ts_Iso3833VehicleType_doubleRoadTrain = 36, + cam_ts_Iso3833VehicleType_compositeRoadTrain = 37, + cam_ts_Iso3833VehicleType_specialRoadTrain = 38, + cam_ts_Iso3833VehicleType_moped = 39, + cam_ts_Iso3833VehicleType_motorCycle = 40 +} e_cam_ts_Iso3833VehicleType; + +/* cam_ts_Iso3833VehicleType */ +typedef long cam_ts_Iso3833VehicleType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Iso3833VehicleType; +asn_struct_free_f cam_ts_Iso3833VehicleType_free; +asn_struct_print_f cam_ts_Iso3833VehicleType_print; +asn_constr_check_f cam_ts_Iso3833VehicleType_constraint; +per_type_decoder_f cam_ts_Iso3833VehicleType_decode_uper; +per_type_encoder_f cam_ts_Iso3833VehicleType_encode_uper; +per_type_decoder_f cam_ts_Iso3833VehicleType_decode_aper; +per_type_encoder_f cam_ts_Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Iso3833VehicleType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IssuerIdentifier.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IssuerIdentifier.h new file mode 100644 index 000000000..a4d256c3b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IssuerIdentifier.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_IssuerIdentifier_H_ +#define _cam_ts_IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_IssuerIdentifier */ +typedef long cam_ts_IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_IssuerIdentifier; +asn_struct_free_f cam_ts_IssuerIdentifier_free; +asn_struct_print_f cam_ts_IssuerIdentifier_print; +asn_constr_check_f cam_ts_IssuerIdentifier_constraint; +per_type_decoder_f cam_ts_IssuerIdentifier_decode_uper; +per_type_encoder_f cam_ts_IssuerIdentifier_encode_uper; +per_type_decoder_f cam_ts_IssuerIdentifier_decode_aper; +per_type_encoder_f cam_ts_IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_IssuerIdentifier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ItineraryPath.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ItineraryPath.h new file mode 100644 index 000000000..12859eb99 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ItineraryPath.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ItineraryPath_H_ +#define _cam_ts_ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_ReferencePosition; + +/* cam_ts_ItineraryPath */ +typedef struct cam_ts_ItineraryPath { + A_SEQUENCE_OF(struct cam_ts_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_ReferencePosition.h" + +#endif /* _cam_ts_ItineraryPath_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ItsPduHeader.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ItsPduHeader.h new file mode 100644 index 000000000..3e96d5839 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ItsPduHeader.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ItsPduHeader_H_ +#define _cam_ts_ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_OrdinalNumber1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_MessageId.h" +#include "etsi_its_cam_ts_coding/cam_ts_StationId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ItsPduHeader */ +typedef struct cam_ts_ItsPduHeader { + cam_ts_OrdinalNumber1B_t protocolVersion; + cam_ts_MessageId_t messageId; + cam_ts_StationId_t stationId; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ItsPduHeader_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IviIdentificationNumber.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IviIdentificationNumber.h new file mode 100644 index 000000000..5ba236578 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IviIdentificationNumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_IviIdentificationNumber_H_ +#define _cam_ts_IviIdentificationNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_IviIdentificationNumber */ +typedef long cam_ts_IviIdentificationNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_IviIdentificationNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_IviIdentificationNumber; +asn_struct_free_f cam_ts_IviIdentificationNumber_free; +asn_struct_print_f cam_ts_IviIdentificationNumber_print; +asn_constr_check_f cam_ts_IviIdentificationNumber_constraint; +per_type_decoder_f cam_ts_IviIdentificationNumber_decode_uper; +per_type_encoder_f cam_ts_IviIdentificationNumber_encode_uper; +per_type_decoder_f cam_ts_IviIdentificationNumber_decode_aper; +per_type_encoder_f cam_ts_IviIdentificationNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_IviIdentificationNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IvimReference.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IvimReference.h new file mode 100644 index 000000000..3166895f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IvimReference.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_IvimReference_H_ +#define _cam_ts_IvimReference_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Provider.h" +#include "etsi_its_cam_ts_coding/cam_ts_IviIdentificationNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_IvimReference */ +typedef struct cam_ts_IvimReference { + cam_ts_Provider_t serviceProviderId; + cam_ts_IviIdentificationNumber_t iviIdentificationNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_IvimReference_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_IvimReference; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_IvimReference_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_IvimReference_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_IvimReference_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IvimReferences.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IvimReferences.h new file mode 100644 index 000000000..2577d3faa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_IvimReferences.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_IvimReferences_H_ +#define _cam_ts_IvimReferences_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_IvimReference; + +/* cam_ts_IvimReferences */ +typedef struct cam_ts_IvimReferences { + A_SEQUENCE_OF(struct cam_ts_IvimReference) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_IvimReferences_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_IvimReferences; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_IvimReference.h" + +#endif /* _cam_ts_IvimReferences_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePosition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePosition.h new file mode 100644 index 000000000..52c858a43 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePosition.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LanePosition_H_ +#define _cam_ts_LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LanePosition { + cam_ts_LanePosition_offTheRoad = -1, + cam_ts_LanePosition_innerHardShoulder = 0, + cam_ts_LanePosition_outerHardShoulder = 14 +} e_cam_ts_LanePosition; + +/* cam_ts_LanePosition */ +typedef long cam_ts_LanePosition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_LanePosition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LanePosition; +asn_struct_free_f cam_ts_LanePosition_free; +asn_struct_print_f cam_ts_LanePosition_print; +asn_constr_check_f cam_ts_LanePosition_constraint; +per_type_decoder_f cam_ts_LanePosition_decode_uper; +per_type_encoder_f cam_ts_LanePosition_encode_uper; +per_type_decoder_f cam_ts_LanePosition_decode_aper; +per_type_encoder_f cam_ts_LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LanePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionAndType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionAndType.h new file mode 100644 index 000000000..ddce413a3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionAndType.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LanePositionAndType_H_ +#define _cam_ts_LanePositionAndType_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LanePosition.h" +#include "etsi_its_cam_ts_coding/cam_ts_LaneType.h" +#include "etsi_its_cam_ts_coding/cam_ts_Direction.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_LanePositionAndType */ +typedef struct cam_ts_LanePositionAndType { + cam_ts_LanePosition_t transversalPosition; + cam_ts_LaneType_t laneType; /* DEFAULT 0 */ + cam_ts_Direction_t direction; /* DEFAULT 0 */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LanePositionAndType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LanePositionAndType; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LanePositionAndType_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_LanePositionAndType_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LanePositionAndType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionOptions.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionOptions.h new file mode 100644 index 000000000..360cbf7e0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionOptions.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LanePositionOptions_H_ +#define _cam_ts_LanePositionOptions_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LanePosition.h" +#include "etsi_its_cam_ts_coding/cam_ts_LaneType.h" +#include "etsi_its_cam_ts_coding/cam_ts_LanePositionAndType.h" +#include "etsi_its_cam_ts_coding/cam_ts_LanePositionWithLateralDetails.h" +#include "etsi_its_cam_ts_coding/cam_ts_TrafficIslandPosition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LanePositionOptions_PR { + cam_ts_LanePositionOptions_PR_NOTHING, /* No components present */ + cam_ts_LanePositionOptions_PR_simplelanePosition, + cam_ts_LanePositionOptions_PR_simpleLaneType, + cam_ts_LanePositionOptions_PR_detailedlanePosition, + cam_ts_LanePositionOptions_PR_lanePositionWithLateralDetails, + cam_ts_LanePositionOptions_PR_trafficIslandPosition + /* Extensions may appear below */ + +} cam_ts_LanePositionOptions_PR; + +/* cam_ts_LanePositionOptions */ +typedef struct cam_ts_LanePositionOptions { + cam_ts_LanePositionOptions_PR present; + union cam_ts_LanePositionOptions_u { + cam_ts_LanePosition_t simplelanePosition; + cam_ts_LaneType_t simpleLaneType; + cam_ts_LanePositionAndType_t detailedlanePosition; + cam_ts_LanePositionWithLateralDetails_t lanePositionWithLateralDetails; + cam_ts_TrafficIslandPosition_t trafficIslandPosition; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LanePositionOptions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LanePositionOptions; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_LanePositionOptions_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_LanePositionOptions_1[5]; +extern asn_per_constraints_t asn_PER_type_cam_ts_LanePositionOptions_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LanePositionOptions_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionWithLateralDetails.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionWithLateralDetails.h new file mode 100644 index 000000000..c554da6d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LanePositionWithLateralDetails.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LanePositionWithLateralDetails_H_ +#define _cam_ts_LanePositionWithLateralDetails_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LanePosition.h" +#include "etsi_its_cam_ts_coding/cam_ts_LaneType.h" +#include "etsi_its_cam_ts_coding/cam_ts_Direction.h" +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength9b.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_LanePositionWithLateralDetails */ +typedef struct cam_ts_LanePositionWithLateralDetails { + cam_ts_LanePosition_t transversalPosition; + cam_ts_LaneType_t laneType; /* DEFAULT 0 */ + cam_ts_Direction_t direction; /* DEFAULT 0 */ + cam_ts_StandardLength9b_t distanceToLeftBorder; + cam_ts_StandardLength9b_t distanceToRightBorder; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LanePositionWithLateralDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LanePositionWithLateralDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LanePositionWithLateralDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_LanePositionWithLateralDetails_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LanePositionWithLateralDetails_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LaneType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LaneType.h new file mode 100644 index 000000000..44fe58a96 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LaneType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LaneType_H_ +#define _cam_ts_LaneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LaneType { + cam_ts_LaneType_traffic = 0, + cam_ts_LaneType_through = 1, + cam_ts_LaneType_reversible = 2, + cam_ts_LaneType_acceleration = 3, + cam_ts_LaneType_deceleration = 4, + cam_ts_LaneType_leftHandTurning = 5, + cam_ts_LaneType_rightHandTurning = 6, + cam_ts_LaneType_dedicatedVehicle = 7, + cam_ts_LaneType_bus = 8, + cam_ts_LaneType_taxi = 9, + cam_ts_LaneType_hov = 10, + cam_ts_LaneType_hot = 11, + cam_ts_LaneType_pedestrian = 12, + cam_ts_LaneType_cycleLane = 13, + cam_ts_LaneType_median = 14, + cam_ts_LaneType_striping = 15, + cam_ts_LaneType_trackedVehicle = 16, + cam_ts_LaneType_parking = 17, + cam_ts_LaneType_emergency = 18, + cam_ts_LaneType_verge = 19, + cam_ts_LaneType_minimumRiskManoeuvre = 20, + cam_ts_LaneType_exclusiveCycleLane = 21, + cam_ts_LaneType_unknown = 31 +} e_cam_ts_LaneType; + +/* cam_ts_LaneType */ +typedef long cam_ts_LaneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_LaneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LaneType; +asn_struct_free_f cam_ts_LaneType_free; +asn_struct_print_f cam_ts_LaneType_print; +asn_constr_check_f cam_ts_LaneType_constraint; +per_type_decoder_f cam_ts_LaneType_decode_uper; +per_type_encoder_f cam_ts_LaneType_encode_uper; +per_type_decoder_f cam_ts_LaneType_decode_aper; +per_type_encoder_f cam_ts_LaneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LaneType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LaneWidth.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LaneWidth.h new file mode 100644 index 000000000..9658dc4ab --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LaneWidth.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LaneWidth_H_ +#define _cam_ts_LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_LaneWidth */ +typedef long cam_ts_LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LaneWidth; +asn_struct_free_f cam_ts_LaneWidth_free; +asn_struct_print_f cam_ts_LaneWidth_print; +asn_constr_check_f cam_ts_LaneWidth_constraint; +per_type_decoder_f cam_ts_LaneWidth_decode_uper; +per_type_encoder_f cam_ts_LaneWidth_encode_uper; +per_type_decoder_f cam_ts_LaneWidth_decode_aper; +per_type_encoder_f cam_ts_LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LaneWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LateralAcceleration.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LateralAcceleration.h new file mode 100644 index 000000000..dee849451 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LateralAcceleration_H_ +#define _cam_ts_LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LateralAccelerationValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_LateralAcceleration */ +typedef struct cam_ts_LateralAcceleration { + cam_ts_LateralAccelerationValue_t lateralAccelerationValue; + cam_ts_AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LateralAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LateralAccelerationValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LateralAccelerationValue.h new file mode 100644 index 000000000..c4358003a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LateralAccelerationValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LateralAccelerationValue_H_ +#define _cam_ts_LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LateralAccelerationValue { + cam_ts_LateralAccelerationValue_negativeOutOfRange = -160, + cam_ts_LateralAccelerationValue_positiveOutOfRange = 160, + cam_ts_LateralAccelerationValue_unavailable = 161 +} e_cam_ts_LateralAccelerationValue; + +/* cam_ts_LateralAccelerationValue */ +typedef long cam_ts_LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LateralAccelerationValue; +asn_struct_free_f cam_ts_LateralAccelerationValue_free; +asn_struct_print_f cam_ts_LateralAccelerationValue_print; +asn_constr_check_f cam_ts_LateralAccelerationValue_constraint; +per_type_decoder_f cam_ts_LateralAccelerationValue_decode_uper; +per_type_encoder_f cam_ts_LateralAccelerationValue_encode_uper; +per_type_decoder_f cam_ts_LateralAccelerationValue_decode_aper; +per_type_encoder_f cam_ts_LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LateralAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Latitude.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Latitude.h new file mode 100644 index 000000000..9bb18bfa7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Latitude.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Latitude_H_ +#define _cam_ts_Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Latitude { + cam_ts_Latitude_unavailable = 900000001 +} e_cam_ts_Latitude; + +/* cam_ts_Latitude */ +typedef long cam_ts_Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Latitude; +asn_struct_free_f cam_ts_Latitude_free; +asn_struct_print_f cam_ts_Latitude_print; +asn_constr_check_f cam_ts_Latitude_constraint; +per_type_decoder_f cam_ts_Latitude_decode_uper; +per_type_encoder_f cam_ts_Latitude_encode_uper; +per_type_decoder_f cam_ts_Latitude_decode_aper; +per_type_encoder_f cam_ts_Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Latitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h new file mode 100644 index 000000000..083ada4c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LightBarSirenInUse_H_ +#define _cam_ts_LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LightBarSirenInUse { + cam_ts_LightBarSirenInUse_lightBarActivated = 0, + cam_ts_LightBarSirenInUse_sirenActivated = 1 +} e_cam_ts_LightBarSirenInUse; + +/* cam_ts_LightBarSirenInUse */ +typedef BIT_STRING_t cam_ts_LightBarSirenInUse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_LightBarSirenInUse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LightBarSirenInUse; +asn_struct_free_f cam_ts_LightBarSirenInUse_free; +asn_struct_print_f cam_ts_LightBarSirenInUse_print; +asn_constr_check_f cam_ts_LightBarSirenInUse_constraint; +per_type_decoder_f cam_ts_LightBarSirenInUse_decode_uper; +per_type_encoder_f cam_ts_LightBarSirenInUse_encode_uper; +per_type_decoder_f cam_ts_LightBarSirenInUse_decode_aper; +per_type_encoder_f cam_ts_LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LightBarSirenInUse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Longitude.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Longitude.h new file mode 100644 index 000000000..5d9f6c28f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Longitude.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Longitude_H_ +#define _cam_ts_Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Longitude { + cam_ts_Longitude_valueNotUsed = -1800000000, + cam_ts_Longitude_unavailable = 1800000001 +} e_cam_ts_Longitude; + +/* cam_ts_Longitude */ +typedef long cam_ts_Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Longitude; +asn_struct_free_f cam_ts_Longitude_free; +asn_struct_print_f cam_ts_Longitude_print; +asn_constr_check_f cam_ts_Longitude_constraint; +per_type_decoder_f cam_ts_Longitude_decode_uper; +per_type_encoder_f cam_ts_Longitude_encode_uper; +per_type_decoder_f cam_ts_Longitude_decode_aper; +per_type_encoder_f cam_ts_Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Longitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalAcceleration.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalAcceleration.h new file mode 100644 index 000000000..12ff48607 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LongitudinalAcceleration_H_ +#define _cam_ts_LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalAccelerationValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_LongitudinalAcceleration */ +typedef struct cam_ts_LongitudinalAcceleration { + cam_ts_LongitudinalAccelerationValue_t longitudinalAccelerationValue; + cam_ts_AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LongitudinalAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalAccelerationValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalAccelerationValue.h new file mode 100644 index 000000000..2ce8a75fc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalAccelerationValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LongitudinalAccelerationValue_H_ +#define _cam_ts_LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LongitudinalAccelerationValue { + cam_ts_LongitudinalAccelerationValue_negativeOutOfRange = -160, + cam_ts_LongitudinalAccelerationValue_positiveOutOfRange = 160, + cam_ts_LongitudinalAccelerationValue_unavailable = 161 +} e_cam_ts_LongitudinalAccelerationValue; + +/* cam_ts_LongitudinalAccelerationValue */ +typedef long cam_ts_LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LongitudinalAccelerationValue; +asn_struct_free_f cam_ts_LongitudinalAccelerationValue_free; +asn_struct_print_f cam_ts_LongitudinalAccelerationValue_print; +asn_constr_check_f cam_ts_LongitudinalAccelerationValue_constraint; +per_type_decoder_f cam_ts_LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f cam_ts_LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f cam_ts_LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f cam_ts_LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LongitudinalAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePosition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePosition.h new file mode 100644 index 000000000..49fa27dcb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePosition.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LongitudinalLanePosition_H_ +#define _cam_ts_LongitudinalLanePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_LongitudinalLanePosition */ +typedef struct cam_ts_LongitudinalLanePosition { + cam_ts_LongitudinalLanePositionValue_t longitudinalLanePositionValue; + cam_ts_LongitudinalLanePositionConfidence_t longitudinalLanePositionConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LongitudinalLanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LongitudinalLanePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LongitudinalLanePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_LongitudinalLanePosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LongitudinalLanePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionConfidence.h new file mode 100644 index 000000000..d799653fc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LongitudinalLanePositionConfidence_H_ +#define _cam_ts_LongitudinalLanePositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LongitudinalLanePositionConfidence { + cam_ts_LongitudinalLanePositionConfidence_outOfRange = 1022, + cam_ts_LongitudinalLanePositionConfidence_unavailable = 1023 +} e_cam_ts_LongitudinalLanePositionConfidence; + +/* cam_ts_LongitudinalLanePositionConfidence */ +typedef long cam_ts_LongitudinalLanePositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_LongitudinalLanePositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LongitudinalLanePositionConfidence; +asn_struct_free_f cam_ts_LongitudinalLanePositionConfidence_free; +asn_struct_print_f cam_ts_LongitudinalLanePositionConfidence_print; +asn_constr_check_f cam_ts_LongitudinalLanePositionConfidence_constraint; +per_type_decoder_f cam_ts_LongitudinalLanePositionConfidence_decode_uper; +per_type_encoder_f cam_ts_LongitudinalLanePositionConfidence_encode_uper; +per_type_decoder_f cam_ts_LongitudinalLanePositionConfidence_decode_aper; +per_type_encoder_f cam_ts_LongitudinalLanePositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LongitudinalLanePositionConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionValue.h new file mode 100644 index 000000000..207e3e3dc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionValue.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LongitudinalLanePositionValue_H_ +#define _cam_ts_LongitudinalLanePositionValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LongitudinalLanePositionValue { + cam_ts_LongitudinalLanePositionValue_outOfRange = 32766, + cam_ts_LongitudinalLanePositionValue_unavailable = 32767 +} e_cam_ts_LongitudinalLanePositionValue; + +/* cam_ts_LongitudinalLanePositionValue */ +typedef long cam_ts_LongitudinalLanePositionValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_LongitudinalLanePositionValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LongitudinalLanePositionValue; +asn_struct_free_f cam_ts_LongitudinalLanePositionValue_free; +asn_struct_print_f cam_ts_LongitudinalLanePositionValue_print; +asn_constr_check_f cam_ts_LongitudinalLanePositionValue_constraint; +per_type_decoder_f cam_ts_LongitudinalLanePositionValue_decode_uper; +per_type_encoder_f cam_ts_LongitudinalLanePositionValue_encode_uper; +per_type_decoder_f cam_ts_LongitudinalLanePositionValue_decode_aper; +per_type_encoder_f cam_ts_LongitudinalLanePositionValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LongitudinalLanePositionValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowFrequencyContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowFrequencyContainer.h new file mode 100644 index 000000000..b4ed53ba9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowFrequencyContainer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LowFrequencyContainer_H_ +#define _cam_ts_LowFrequencyContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerLowFrequency.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_LowFrequencyContainer_PR { + cam_ts_LowFrequencyContainer_PR_NOTHING, /* No components present */ + cam_ts_LowFrequencyContainer_PR_basicVehicleContainerLowFrequency + /* Extensions may appear below */ + +} cam_ts_LowFrequencyContainer_PR; + +/* cam_ts_LowFrequencyContainer */ +typedef struct cam_ts_LowFrequencyContainer { + cam_ts_LowFrequencyContainer_PR present; + union cam_ts_LowFrequencyContainer_u { + cam_ts_BasicVehicleContainerLowFrequency_t basicVehicleContainerLowFrequency; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LowFrequencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LowFrequencyContainer; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_LowFrequencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_LowFrequencyContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_LowFrequencyContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LowFrequencyContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrices.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrices.h new file mode 100644 index 000000000..45b67ae79 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrices.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LowerTriangularPositiveSemidefiniteMatrices_H_ +#define _cam_ts_LowerTriangularPositiveSemidefiniteMatrices_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_LowerTriangularPositiveSemidefiniteMatrix; + +/* cam_ts_LowerTriangularPositiveSemidefiniteMatrices */ +typedef struct cam_ts_LowerTriangularPositiveSemidefiniteMatrices { + A_SEQUENCE_OF(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrix) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LowerTriangularPositiveSemidefiniteMatrices_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrix.h" + +#endif /* _cam_ts_LowerTriangularPositiveSemidefiniteMatrices_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrix.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrix.h new file mode 100644 index 000000000..63426ee9d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrix.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LowerTriangularPositiveSemidefiniteMatrix_H_ +#define _cam_ts_LowerTriangularPositiveSemidefiniteMatrix_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_MatrixIncludedComponents.h" +#include "etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_LowerTriangularPositiveSemidefiniteMatrix */ +typedef struct cam_ts_LowerTriangularPositiveSemidefiniteMatrix { + cam_ts_MatrixIncludedComponents_t componentsIncludedIntheMatrix; + cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_t matrix; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LowerTriangularPositiveSemidefiniteMatrix_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_LowerTriangularPositiveSemidefiniteMatrix_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns.h new file mode 100644 index 000000000..ee150cfd6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_H_ +#define _cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CorrelationColumn; + +/* cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns */ +typedef struct cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns { + A_SEQUENCE_OF(struct cam_ts_CorrelationColumn) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CorrelationColumn.h" + +#endif /* _cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapPosition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapPosition.h new file mode 100644 index 000000000..14f94c53c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapPosition.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MapPosition_H_ +#define _cam_ts_MapPosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_MapReference; +struct cam_ts_LongitudinalLanePosition; + +/* cam_ts_MapPosition */ +typedef struct cam_ts_MapPosition { + struct cam_ts_MapReference *mapReference; /* OPTIONAL */ + cam_ts_Identifier1B_t *laneId; /* OPTIONAL */ + cam_ts_Identifier1B_t *connectionId; /* OPTIONAL */ + struct cam_ts_LongitudinalLanePosition *longitudinalLanePosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MapPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MapPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MapPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MapPosition_1[4]; +extern asn_per_constraints_t asn_PER_type_cam_ts_MapPosition_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_MapReference.h" +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePosition.h" + +#endif /* _cam_ts_MapPosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapReference.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapReference.h new file mode 100644 index 000000000..ed4e84364 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapReference.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MapReference_H_ +#define _cam_ts_MapReference_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_RoadSegmentReferenceId.h" +#include "etsi_its_cam_ts_coding/cam_ts_IntersectionReferenceId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_MapReference_PR { + cam_ts_MapReference_PR_NOTHING, /* No components present */ + cam_ts_MapReference_PR_roadsegment, + cam_ts_MapReference_PR_intersection +} cam_ts_MapReference_PR; + +/* cam_ts_MapReference */ +typedef struct cam_ts_MapReference { + cam_ts_MapReference_PR present; + union cam_ts_MapReference_u { + cam_ts_RoadSegmentReferenceId_t roadsegment; + cam_ts_IntersectionReferenceId_t intersection; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MapReference_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MapReference; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_MapReference_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MapReference_1[2]; +extern asn_per_constraints_t asn_PER_type_cam_ts_MapReference_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MapReference_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapReferences.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapReferences.h new file mode 100644 index 000000000..bf0f60e3f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapReferences.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MapReferences_H_ +#define _cam_ts_MapReferences_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_MapReference; + +/* cam_ts_MapReferences */ +typedef struct cam_ts_MapReferences { + A_SEQUENCE_OF(struct cam_ts_MapReference) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MapReferences_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MapReferences; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_MapReference.h" + +#endif /* _cam_ts_MapReferences_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemConfiguration.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemConfiguration.h new file mode 100644 index 000000000..dda4e3dca --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemConfiguration.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MapemConfiguration_H_ +#define _cam_ts_MapemConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_MapemElementReference; + +/* cam_ts_MapemConfiguration */ +typedef struct cam_ts_MapemConfiguration { + A_SEQUENCE_OF(struct cam_ts_MapemElementReference) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MapemConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MapemConfiguration; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_MapemConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MapemConfiguration_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_MapemConfiguration_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_MapemElementReference.h" + +#endif /* _cam_ts_MapemConfiguration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemConnectionList.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemConnectionList.h new file mode 100644 index 000000000..5b4f77d5e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemConnectionList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MapemConnectionList_H_ +#define _cam_ts_MapemConnectionList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_MapemConnectionList */ +typedef struct cam_ts_MapemConnectionList { + A_SEQUENCE_OF(cam_ts_Identifier1B_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MapemConnectionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MapemConnectionList; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_MapemConnectionList_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MapemConnectionList_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_MapemConnectionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MapemConnectionList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemElementReference.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemElementReference.h new file mode 100644 index 000000000..311f48b3b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemElementReference.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MapemElementReference_H_ +#define _cam_ts_MapemElementReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_MapReference; +struct cam_ts_MapemLaneList; +struct cam_ts_MapemConnectionList; + +/* cam_ts_MapemElementReference */ +typedef struct cam_ts_MapemElementReference { + struct cam_ts_MapReference *mapReference; /* OPTIONAL */ + struct cam_ts_MapemLaneList *laneIds; /* OPTIONAL */ + struct cam_ts_MapemConnectionList *connectionIds; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MapemElementReference_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MapemElementReference; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MapemElementReference_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MapemElementReference_1[3]; +extern asn_per_constraints_t asn_PER_type_cam_ts_MapemElementReference_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_MapReference.h" +#include "etsi_its_cam_ts_coding/cam_ts_MapemLaneList.h" +#include "etsi_its_cam_ts_coding/cam_ts_MapemConnectionList.h" + +#endif /* _cam_ts_MapemElementReference_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemLaneList.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemLaneList.h new file mode 100644 index 000000000..503c5b78b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MapemLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MapemLaneList_H_ +#define _cam_ts_MapemLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_MapemLaneList */ +typedef struct cam_ts_MapemLaneList { + A_SEQUENCE_OF(cam_ts_Identifier1B_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MapemLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MapemLaneList; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_MapemLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MapemLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_MapemLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MapemLaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MatrixIncludedComponents.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MatrixIncludedComponents.h new file mode 100644 index 000000000..3e9b48521 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MatrixIncludedComponents.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MatrixIncludedComponents_H_ +#define _cam_ts_MatrixIncludedComponents_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_MatrixIncludedComponents { + cam_ts_MatrixIncludedComponents_xPosition = 0, + cam_ts_MatrixIncludedComponents_yPosition = 1, + cam_ts_MatrixIncludedComponents_zPosition = 2, + cam_ts_MatrixIncludedComponents_xVelocityOrVelocityMagnitude = 3, + cam_ts_MatrixIncludedComponents_yVelocityOrVelocityDirection = 4, + cam_ts_MatrixIncludedComponents_zSpeed = 5, + cam_ts_MatrixIncludedComponents_xAccelOrAccelMagnitude = 6, + cam_ts_MatrixIncludedComponents_yAccelOrAccelDirection = 7, + cam_ts_MatrixIncludedComponents_zAcceleration = 8, + cam_ts_MatrixIncludedComponents_zAngle = 9, + cam_ts_MatrixIncludedComponents_yAngle = 10, + cam_ts_MatrixIncludedComponents_xAngle = 11, + cam_ts_MatrixIncludedComponents_zAngularVelocity = 12 +} e_cam_ts_MatrixIncludedComponents; + +/* cam_ts_MatrixIncludedComponents */ +typedef BIT_STRING_t cam_ts_MatrixIncludedComponents_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_MatrixIncludedComponents_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MatrixIncludedComponents; +asn_struct_free_f cam_ts_MatrixIncludedComponents_free; +asn_struct_print_f cam_ts_MatrixIncludedComponents_print; +asn_constr_check_f cam_ts_MatrixIncludedComponents_constraint; +per_type_decoder_f cam_ts_MatrixIncludedComponents_decode_uper; +per_type_encoder_f cam_ts_MatrixIncludedComponents_encode_uper; +per_type_decoder_f cam_ts_MatrixIncludedComponents_decode_aper; +per_type_encoder_f cam_ts_MatrixIncludedComponents_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MatrixIncludedComponents_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageId.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageId.h new file mode 100644 index 000000000..faf44dc3a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageId.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MessageId_H_ +#define _cam_ts_MessageId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_MessageId { + cam_ts_MessageId_denm = 1, + cam_ts_MessageId_cam = 2, + cam_ts_MessageId_poim = 3, + cam_ts_MessageId_spatem = 4, + cam_ts_MessageId_mapem = 5, + cam_ts_MessageId_ivim = 6, + cam_ts_MessageId_rfu1 = 7, + cam_ts_MessageId_rfu2 = 8, + cam_ts_MessageId_srem = 9, + cam_ts_MessageId_ssem = 10, + cam_ts_MessageId_evcsn = 11, + cam_ts_MessageId_saem = 12, + cam_ts_MessageId_rtcmem = 13, + cam_ts_MessageId_cpm = 14, + cam_ts_MessageId_imzm = 15, + cam_ts_MessageId_vam = 16, + cam_ts_MessageId_dsm = 17, + cam_ts_MessageId_pcim = 18, + cam_ts_MessageId_pcvm = 19, + cam_ts_MessageId_mcm = 20, + cam_ts_MessageId_pam = 21 +} e_cam_ts_MessageId; + +/* cam_ts_MessageId */ +typedef long cam_ts_MessageId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_MessageId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MessageId; +asn_struct_free_f cam_ts_MessageId_free; +asn_struct_print_f cam_ts_MessageId_print; +asn_constr_check_f cam_ts_MessageId_constraint; +per_type_decoder_f cam_ts_MessageId_decode_uper; +per_type_encoder_f cam_ts_MessageId_encode_uper; +per_type_decoder_f cam_ts_MessageId_decode_aper; +per_type_encoder_f cam_ts_MessageId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MessageId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageRateHz.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageRateHz.h new file mode 100644 index 000000000..e9da8a42e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageRateHz.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MessageRateHz_H_ +#define _cam_ts_MessageRateHz_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_MessageRateHz */ +typedef struct cam_ts_MessageRateHz { + long mantissa; + long exponent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MessageRateHz_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MessageRateHz; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MessageRateHz_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageSegmentationInfo.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageSegmentationInfo.h new file mode 100644 index 000000000..62e8ca50d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MessageSegmentationInfo.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MessageSegmentationInfo_H_ +#define _cam_ts_MessageSegmentationInfo_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CardinalNumber3b.h" +#include "etsi_its_cam_ts_coding/cam_ts_OrdinalNumber3b.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_MessageSegmentationInfo */ +typedef struct cam_ts_MessageSegmentationInfo { + cam_ts_CardinalNumber3b_t totalMsgNo; + cam_ts_OrdinalNumber3b_t thisMsgNo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MessageSegmentationInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MessageSegmentationInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MessageSegmentationInfo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MetaInformation.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MetaInformation.h new file mode 100644 index 000000000..78468f1c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MetaInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MetaInformation_H_ +#define _cam_ts_MetaInformation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_SensorTypes.h" +#include "etsi_its_cam_ts_coding/cam_ts_StoredInformationType.h" +#include "etsi_its_cam_ts_coding/cam_ts_ConfidenceLevel.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_MetaInformation */ +typedef struct cam_ts_MetaInformation { + cam_ts_SensorTypes_t usedDetectionInformation; + cam_ts_StoredInformationType_t usedStoredInformation; + cam_ts_ConfidenceLevel_t *confidenceValue; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MetaInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MetaInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MetaInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MetaInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MetaInformation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MitigationForTechnologies.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MitigationForTechnologies.h new file mode 100644 index 000000000..2e4414aa8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MitigationForTechnologies.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MitigationForTechnologies_H_ +#define _cam_ts_MitigationForTechnologies_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_MitigationPerTechnologyClass; + +/* cam_ts_MitigationForTechnologies */ +typedef struct cam_ts_MitigationForTechnologies { + A_SEQUENCE_OF(struct cam_ts_MitigationPerTechnologyClass) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MitigationForTechnologies_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MitigationForTechnologies; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_MitigationForTechnologies_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MitigationForTechnologies_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_MitigationForTechnologies_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_MitigationPerTechnologyClass.h" + +#endif /* _cam_ts_MitigationForTechnologies_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MitigationPerTechnologyClass.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MitigationPerTechnologyClass.h new file mode 100644 index 000000000..fc4cc6204 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_MitigationPerTechnologyClass.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_MitigationPerTechnologyClass_H_ +#define _cam_ts_MitigationPerTechnologyClass_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_AccessTechnologyClass.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_MitigationPerTechnologyClass */ +typedef struct cam_ts_MitigationPerTechnologyClass { + cam_ts_AccessTechnologyClass_t accessTechnologyClass; + long *lowDutyCycle; /* OPTIONAL */ + long *powerReduction; /* OPTIONAL */ + long *dmcToffLimit; /* OPTIONAL */ + long *dmcTonLimit; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_MitigationPerTechnologyClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_MitigationPerTechnologyClass; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MitigationPerTechnologyClass_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_MitigationPerTechnologyClass_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_MitigationPerTechnologyClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_NumberOfOccupants.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_NumberOfOccupants.h new file mode 100644 index 000000000..893a8a8f2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_NumberOfOccupants.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_NumberOfOccupants_H_ +#define _cam_ts_NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_NumberOfOccupants { + cam_ts_NumberOfOccupants_outOfRange = 126, + cam_ts_NumberOfOccupants_unavailable = 127 +} e_cam_ts_NumberOfOccupants; + +/* cam_ts_NumberOfOccupants */ +typedef long cam_ts_NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_NumberOfOccupants; +asn_struct_free_f cam_ts_NumberOfOccupants_free; +asn_struct_print_f cam_ts_NumberOfOccupants_print; +asn_constr_check_f cam_ts_NumberOfOccupants_constraint; +per_type_decoder_f cam_ts_NumberOfOccupants_decode_uper; +per_type_encoder_f cam_ts_NumberOfOccupants_encode_uper; +per_type_decoder_f cam_ts_NumberOfOccupants_decode_aper; +per_type_encoder_f cam_ts_NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_NumberOfOccupants_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClass.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClass.h new file mode 100644 index 000000000..3cdc02968 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClass.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ObjectClass_H_ +#define _cam_ts_ObjectClass_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_TrafficParticipantType.h" +#include "etsi_its_cam_ts_coding/cam_ts_VruProfileAndSubprofile.h" +#include "etsi_its_cam_ts_coding/cam_ts_VruClusterInformation.h" +#include "etsi_its_cam_ts_coding/cam_ts_OtherSubClass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ObjectClass_PR { + cam_ts_ObjectClass_PR_NOTHING, /* No components present */ + cam_ts_ObjectClass_PR_vehicleSubClass, + cam_ts_ObjectClass_PR_vruSubClass, + cam_ts_ObjectClass_PR_groupSubClass, + cam_ts_ObjectClass_PR_otherSubClass + /* Extensions may appear below */ + +} cam_ts_ObjectClass_PR; + +/* cam_ts_ObjectClass */ +typedef struct cam_ts_ObjectClass { + cam_ts_ObjectClass_PR present; + union cam_ts_ObjectClass_u { + cam_ts_TrafficParticipantType_t vehicleSubClass; + cam_ts_VruProfileAndSubprofile_t vruSubClass; + cam_ts_VruClusterInformation_t groupSubClass; + cam_ts_OtherSubClass_t otherSubClass; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ObjectClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectClass; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_ObjectClass_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ObjectClass_1[4]; +extern asn_per_constraints_t asn_PER_type_cam_ts_ObjectClass_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ObjectClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClassDescription.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClassDescription.h new file mode 100644 index 000000000..a9e7af1d9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClassDescription.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ObjectClassDescription_H_ +#define _cam_ts_ObjectClassDescription_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_ObjectClassWithConfidence; + +/* cam_ts_ObjectClassDescription */ +typedef struct cam_ts_ObjectClassDescription { + A_SEQUENCE_OF(struct cam_ts_ObjectClassWithConfidence) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ObjectClassDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectClassDescription; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_ObjectClassDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ObjectClassDescription_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_ObjectClassDescription_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_ObjectClassWithConfidence.h" + +#endif /* _cam_ts_ObjectClassDescription_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClassWithConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClassWithConfidence.h new file mode 100644 index 000000000..896872cab --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectClassWithConfidence.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ObjectClassWithConfidence_H_ +#define _cam_ts_ObjectClassWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_ObjectClass.h" +#include "etsi_its_cam_ts_coding/cam_ts_ConfidenceLevel.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ObjectClassWithConfidence */ +typedef struct cam_ts_ObjectClassWithConfidence { + cam_ts_ObjectClass_t objectClass; + cam_ts_ConfidenceLevel_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ObjectClassWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectClassWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ObjectClassWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ObjectClassWithConfidence_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ObjectClassWithConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimension.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimension.h new file mode 100644 index 000000000..934dc8a5f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimension.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ObjectDimension_H_ +#define _cam_ts_ObjectDimension_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_ObjectDimensionValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_ObjectDimensionConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ObjectDimension */ +typedef struct cam_ts_ObjectDimension { + cam_ts_ObjectDimensionValue_t value; + cam_ts_ObjectDimensionConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ObjectDimension_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectDimension; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ObjectDimension_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ObjectDimension_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ObjectDimension_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimensionConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimensionConfidence.h new file mode 100644 index 000000000..3e86dc00d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimensionConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ObjectDimensionConfidence_H_ +#define _cam_ts_ObjectDimensionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ObjectDimensionConfidence { + cam_ts_ObjectDimensionConfidence_outOfRange = 31, + cam_ts_ObjectDimensionConfidence_unavailable = 32 +} e_cam_ts_ObjectDimensionConfidence; + +/* cam_ts_ObjectDimensionConfidence */ +typedef long cam_ts_ObjectDimensionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ObjectDimensionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectDimensionConfidence; +asn_struct_free_f cam_ts_ObjectDimensionConfidence_free; +asn_struct_print_f cam_ts_ObjectDimensionConfidence_print; +asn_constr_check_f cam_ts_ObjectDimensionConfidence_constraint; +per_type_decoder_f cam_ts_ObjectDimensionConfidence_decode_uper; +per_type_encoder_f cam_ts_ObjectDimensionConfidence_encode_uper; +per_type_decoder_f cam_ts_ObjectDimensionConfidence_decode_aper; +per_type_encoder_f cam_ts_ObjectDimensionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ObjectDimensionConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimensionValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimensionValue.h new file mode 100644 index 000000000..b3bff5dde --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectDimensionValue.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ObjectDimensionValue_H_ +#define _cam_ts_ObjectDimensionValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ObjectDimensionValue { + cam_ts_ObjectDimensionValue_outOfRange = 255, + cam_ts_ObjectDimensionValue_unavailable = 256 +} e_cam_ts_ObjectDimensionValue; + +/* cam_ts_ObjectDimensionValue */ +typedef long cam_ts_ObjectDimensionValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ObjectDimensionValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectDimensionValue; +asn_struct_free_f cam_ts_ObjectDimensionValue_free; +asn_struct_print_f cam_ts_ObjectDimensionValue_print; +asn_constr_check_f cam_ts_ObjectDimensionValue_constraint; +per_type_decoder_f cam_ts_ObjectDimensionValue_decode_uper; +per_type_encoder_f cam_ts_ObjectDimensionValue_encode_uper; +per_type_decoder_f cam_ts_ObjectDimensionValue_decode_aper; +per_type_encoder_f cam_ts_ObjectDimensionValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ObjectDimensionValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectFace.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectFace.h new file mode 100644 index 000000000..058e05ab5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectFace.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ObjectFace_H_ +#define _cam_ts_ObjectFace_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ObjectFace { + cam_ts_ObjectFace_front = 0, + cam_ts_ObjectFace_sideLeftFront = 1, + cam_ts_ObjectFace_sideLeftBack = 2, + cam_ts_ObjectFace_sideRightFront = 3, + cam_ts_ObjectFace_sideRightBack = 4, + cam_ts_ObjectFace_back = 5 +} e_cam_ts_ObjectFace; + +/* cam_ts_ObjectFace */ +typedef long cam_ts_ObjectFace_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectFace; +asn_struct_free_f cam_ts_ObjectFace_free; +asn_struct_print_f cam_ts_ObjectFace_print; +asn_constr_check_f cam_ts_ObjectFace_constraint; +per_type_decoder_f cam_ts_ObjectFace_decode_uper; +per_type_encoder_f cam_ts_ObjectFace_encode_uper; +per_type_decoder_f cam_ts_ObjectFace_decode_aper; +per_type_encoder_f cam_ts_ObjectFace_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ObjectFace_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectPerceptionQuality.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectPerceptionQuality.h new file mode 100644 index 000000000..bd0a68831 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ObjectPerceptionQuality.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ObjectPerceptionQuality_H_ +#define _cam_ts_ObjectPerceptionQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ObjectPerceptionQuality { + cam_ts_ObjectPerceptionQuality_noConfidence = 0, + cam_ts_ObjectPerceptionQuality_fullConfidence = 15 +} e_cam_ts_ObjectPerceptionQuality; + +/* cam_ts_ObjectPerceptionQuality */ +typedef long cam_ts_ObjectPerceptionQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ObjectPerceptionQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectPerceptionQuality; +asn_struct_free_f cam_ts_ObjectPerceptionQuality_free; +asn_struct_print_f cam_ts_ObjectPerceptionQuality_print; +asn_constr_check_f cam_ts_ObjectPerceptionQuality_constraint; +per_type_decoder_f cam_ts_ObjectPerceptionQuality_decode_uper; +per_type_encoder_f cam_ts_ObjectPerceptionQuality_encode_uper; +per_type_decoder_f cam_ts_ObjectPerceptionQuality_decode_aper; +per_type_encoder_f cam_ts_ObjectPerceptionQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ObjectPerceptionQuality_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OccupiedLanesWithConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OccupiedLanesWithConfidence.h new file mode 100644 index 000000000..88769618f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OccupiedLanesWithConfidence.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_OccupiedLanesWithConfidence_H_ +#define _cam_ts_OccupiedLanesWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_MetaInformation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_LanePositionOptions; +struct cam_ts_MapPosition; + +/* cam_ts_OccupiedLanesWithConfidence */ +typedef struct cam_ts_OccupiedLanesWithConfidence { + struct cam_ts_OccupiedLanesWithConfidence__lanePositionBased { + A_SEQUENCE_OF(struct cam_ts_LanePositionOptions) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } lanePositionBased; + struct cam_ts_OccupiedLanesWithConfidence__mapBased { + A_SEQUENCE_OF(struct cam_ts_MapPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mapBased; + cam_ts_MetaInformation_t confidence; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_OccupiedLanesWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_OccupiedLanesWithConfidence; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_LanePositionOptions.h" +#include "etsi_its_cam_ts_coding/cam_ts_MapPosition.h" + +#endif /* _cam_ts_OccupiedLanesWithConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OpeningDaysHours.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OpeningDaysHours.h new file mode 100644 index 000000000..80dcd0e62 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OpeningDaysHours.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_OpeningDaysHours_H_ +#define _cam_ts_OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_OpeningDaysHours */ +typedef UTF8String_t cam_ts_OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_OpeningDaysHours; +asn_struct_free_f cam_ts_OpeningDaysHours_free; +asn_struct_print_f cam_ts_OpeningDaysHours_print; +asn_constr_check_f cam_ts_OpeningDaysHours_constraint; +per_type_decoder_f cam_ts_OpeningDaysHours_decode_uper; +per_type_encoder_f cam_ts_OpeningDaysHours_encode_uper; +per_type_decoder_f cam_ts_OpeningDaysHours_decode_aper; +per_type_encoder_f cam_ts_OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_OpeningDaysHours_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OrdinalNumber1B.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OrdinalNumber1B.h new file mode 100644 index 000000000..66838739e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OrdinalNumber1B.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_OrdinalNumber1B_H_ +#define _cam_ts_OrdinalNumber1B_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_OrdinalNumber1B */ +typedef long cam_ts_OrdinalNumber1B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_OrdinalNumber1B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_OrdinalNumber1B; +asn_struct_free_f cam_ts_OrdinalNumber1B_free; +asn_struct_print_f cam_ts_OrdinalNumber1B_print; +asn_constr_check_f cam_ts_OrdinalNumber1B_constraint; +per_type_decoder_f cam_ts_OrdinalNumber1B_decode_uper; +per_type_encoder_f cam_ts_OrdinalNumber1B_encode_uper; +per_type_decoder_f cam_ts_OrdinalNumber1B_decode_aper; +per_type_encoder_f cam_ts_OrdinalNumber1B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_OrdinalNumber1B_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OrdinalNumber3b.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OrdinalNumber3b.h new file mode 100644 index 000000000..d26526dae --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OrdinalNumber3b.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_OrdinalNumber3b_H_ +#define _cam_ts_OrdinalNumber3b_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_OrdinalNumber3b */ +typedef long cam_ts_OrdinalNumber3b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_OrdinalNumber3b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_OrdinalNumber3b; +asn_struct_free_f cam_ts_OrdinalNumber3b_free; +asn_struct_print_f cam_ts_OrdinalNumber3b_print; +asn_constr_check_f cam_ts_OrdinalNumber3b_constraint; +per_type_decoder_f cam_ts_OrdinalNumber3b_decode_uper; +per_type_encoder_f cam_ts_OrdinalNumber3b_encode_uper; +per_type_decoder_f cam_ts_OrdinalNumber3b_decode_aper; +per_type_encoder_f cam_ts_OrdinalNumber3b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_OrdinalNumber3b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OtherSubClass.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OtherSubClass.h new file mode 100644 index 000000000..18359b8b9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_OtherSubClass.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_OtherSubClass_H_ +#define _cam_ts_OtherSubClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_OtherSubClass { + cam_ts_OtherSubClass_unknown = 0, + cam_ts_OtherSubClass_singleObject = 1, + cam_ts_OtherSubClass_multipleObjects = 2, + cam_ts_OtherSubClass_bulkMaterial = 3 +} e_cam_ts_OtherSubClass; + +/* cam_ts_OtherSubClass */ +typedef long cam_ts_OtherSubClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_OtherSubClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_OtherSubClass; +asn_struct_free_f cam_ts_OtherSubClass_free; +asn_struct_print_f cam_ts_OtherSubClass_print; +asn_constr_check_f cam_ts_OtherSubClass_constraint; +per_type_decoder_f cam_ts_OtherSubClass_decode_uper; +per_type_encoder_f cam_ts_OtherSubClass_encode_uper; +per_type_decoder_f cam_ts_OtherSubClass_decode_aper; +per_type_encoder_f cam_ts_OtherSubClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_OtherSubClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Path.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Path.h new file mode 100644 index 000000000..bfa531bb5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Path.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Path_H_ +#define _cam_ts_Path_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_PathPoint; + +/* cam_ts_Path */ +typedef struct cam_ts_Path { + A_SEQUENCE_OF(struct cam_ts_PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Path_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Path; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_Path_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Path_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_Path_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_PathPoint.h" + +#endif /* _cam_ts_Path_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathDeltaTime.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathDeltaTime.h new file mode 100644 index 000000000..7615022b9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathDeltaTime.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathDeltaTime_H_ +#define _cam_ts_PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PathDeltaTime */ +typedef long cam_ts_PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathDeltaTime; +asn_struct_free_f cam_ts_PathDeltaTime_free; +asn_struct_print_f cam_ts_PathDeltaTime_print; +asn_constr_check_f cam_ts_PathDeltaTime_constraint; +per_type_decoder_f cam_ts_PathDeltaTime_decode_uper; +per_type_encoder_f cam_ts_PathDeltaTime_encode_uper; +per_type_decoder_f cam_ts_PathDeltaTime_decode_aper; +per_type_encoder_f cam_ts_PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PathDeltaTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathDeltaTimeChoice.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathDeltaTimeChoice.h new file mode 100644 index 000000000..1e68d118a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathDeltaTimeChoice.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathDeltaTimeChoice_H_ +#define _cam_ts_PathDeltaTimeChoice_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenSeconds.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PathDeltaTimeChoice_PR { + cam_ts_PathDeltaTimeChoice_PR_NOTHING, /* No components present */ + cam_ts_PathDeltaTimeChoice_PR_deltaTimeHighPrecision, + cam_ts_PathDeltaTimeChoice_PR_deltaTimeBigRange + /* Extensions may appear below */ + +} cam_ts_PathDeltaTimeChoice_PR; + +/* cam_ts_PathDeltaTimeChoice */ +typedef struct cam_ts_PathDeltaTimeChoice { + cam_ts_PathDeltaTimeChoice_PR present; + union cam_ts_PathDeltaTimeChoice_u { + cam_ts_DeltaTimeTenthOfSecond_t deltaTimeHighPrecision; + cam_ts_DeltaTimeTenSeconds_t deltaTimeBigRange; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathDeltaTimeChoice_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathDeltaTimeChoice; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_PathDeltaTimeChoice_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PathDeltaTimeChoice_1[2]; +extern asn_per_constraints_t asn_PER_type_cam_ts_PathDeltaTimeChoice_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PathDeltaTimeChoice_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathExtended.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathExtended.h new file mode 100644 index 000000000..e2f8f7299 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathExtended.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathExtended_H_ +#define _cam_ts_PathExtended_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_cam_ts_coding/cam_ts_Path.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PathExtended */ +typedef struct cam_ts_PathExtended { + long pointOfEventZone; + cam_ts_Path_t path; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathExtended; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PathExtended_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PathExtended_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PathExtended_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathHistory.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathHistory.h new file mode 100644 index 000000000..f487ebf75 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathHistory_H_ +#define _cam_ts_PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_PathPoint; + +/* cam_ts_PathHistory */ +typedef struct cam_ts_PathHistory { + A_SEQUENCE_OF(struct cam_ts_PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathHistory; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_PathPoint.h" + +#endif /* _cam_ts_PathHistory_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathId.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathId.h new file mode 100644 index 000000000..4b4bf961c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathId.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathId_H_ +#define _cam_ts_PathId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PathId { + cam_ts_PathId_noPath = 0, + cam_ts_PathId_path1 = 1, + cam_ts_PathId_path2 = 2, + cam_ts_PathId_path3 = 3, + cam_ts_PathId_path4 = 4, + cam_ts_PathId_path5 = 5, + cam_ts_PathId_path6 = 6, + cam_ts_PathId_path7 = 7, + cam_ts_PathId_pathExtended1 = 8, + cam_ts_PathId_pathExtended2 = 9, + cam_ts_PathId_pathExtended3 = 10, + cam_ts_PathId_pathExtended4 = 11, + cam_ts_PathId_pathExtended5 = 12, + cam_ts_PathId_pathExtended6 = 13, + cam_ts_PathId_pathExtended7 = 14 +} e_cam_ts_PathId; + +/* cam_ts_PathId */ +typedef long cam_ts_PathId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_PathId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathId; +asn_struct_free_f cam_ts_PathId_free; +asn_struct_print_f cam_ts_PathId_print; +asn_constr_check_f cam_ts_PathId_constraint; +per_type_decoder_f cam_ts_PathId_decode_uper; +per_type_encoder_f cam_ts_PathId_encode_uper; +per_type_decoder_f cam_ts_PathId_decode_aper; +per_type_encoder_f cam_ts_PathId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PathId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPoint.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPoint.h new file mode 100644 index 000000000..607f1ec63 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathPoint_H_ +#define _cam_ts_PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_DeltaReferencePosition.h" +#include "etsi_its_cam_ts_coding/cam_ts_PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PathPoint */ +typedef struct cam_ts_PathPoint { + cam_ts_DeltaReferencePosition_t pathPosition; + cam_ts_PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PathPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPointPredicted.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPointPredicted.h new file mode 100644 index 000000000..57e4ea323 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPointPredicted.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathPointPredicted_H_ +#define _cam_ts_PathPointPredicted_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_DeltaLatitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaLongitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaAltitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_AltitudeConfidence.h" +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength9b.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_PosConfidenceEllipse; +struct cam_ts_PathDeltaTimeChoice; + +/* cam_ts_PathPointPredicted */ +typedef struct cam_ts_PathPointPredicted { + cam_ts_DeltaLatitude_t deltaLatitude; + cam_ts_DeltaLongitude_t deltaLongitude; + struct cam_ts_PosConfidenceEllipse *horizontalPositionConfidence; /* OPTIONAL */ + cam_ts_DeltaAltitude_t *deltaAltitude; /* DEFAULT 12800 */ + cam_ts_AltitudeConfidence_t *altitudeConfidence; /* DEFAULT 15 */ + struct cam_ts_PathDeltaTimeChoice *pathDeltaTime; /* OPTIONAL */ + cam_ts_StandardLength9b_t *symmetricAreaOffset; /* OPTIONAL */ + cam_ts_StandardLength9b_t *asymmetricAreaOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathPointPredicted_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPointPredicted; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PathPointPredicted_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PathPointPredicted_1[8]; +extern asn_per_constraints_t asn_PER_type_cam_ts_PathPointPredicted_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_PosConfidenceEllipse.h" +#include "etsi_its_cam_ts_coding/cam_ts_PathDeltaTimeChoice.h" + +#endif /* _cam_ts_PathPointPredicted_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredicted.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredicted.h new file mode 100644 index 000000000..7dc5e51b9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredicted.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathPredicted_H_ +#define _cam_ts_PathPredicted_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_PathPointPredicted; + +/* cam_ts_PathPredicted */ +typedef struct cam_ts_PathPredicted { + A_SEQUENCE_OF(struct cam_ts_PathPointPredicted) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathPredicted_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPredicted; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_PathPredicted_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PathPredicted_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_PathPredicted_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_PathPointPredicted.h" + +#endif /* _cam_ts_PathPredicted_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredicted2.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredicted2.h new file mode 100644 index 000000000..ea3151ff9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredicted2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathPredicted2_H_ +#define _cam_ts_PathPredicted2_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_PathPredicted.h" +#include "etsi_its_cam_ts_coding/cam_ts_UsageIndication.h" +#include "etsi_its_cam_ts_coding/cam_ts_ConfidenceLevel.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PathPredicted2 */ +typedef struct cam_ts_PathPredicted2 { + cam_ts_PathPredicted_t pathPredicted; + cam_ts_UsageIndication_t usageIndication; + cam_ts_ConfidenceLevel_t confidenceLevel; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathPredicted2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPredicted2; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PathPredicted2_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PathPredicted2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PathPredicted2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredictedList.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredictedList.h new file mode 100644 index 000000000..bfb8f563e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathPredictedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathPredictedList_H_ +#define _cam_ts_PathPredictedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_PathPredicted2; + +/* cam_ts_PathPredictedList */ +typedef struct cam_ts_PathPredictedList { + A_SEQUENCE_OF(struct cam_ts_PathPredicted2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathPredictedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPredictedList; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_PathPredicted2.h" + +#endif /* _cam_ts_PathPredictedList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathReferences.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathReferences.h new file mode 100644 index 000000000..3a1e54f4b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PathReferences.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PathReferences_H_ +#define _cam_ts_PathReferences_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_PathId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PathReferences */ +typedef struct cam_ts_PathReferences { + A_SEQUENCE_OF(cam_ts_PathId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PathReferences_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PathReferences; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_PathReferences_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PathReferences_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_PathReferences_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PathReferences_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PerceivedObject.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PerceivedObject.h new file mode 100644 index 000000000..dcc2c0f05 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PerceivedObject.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PerceivedObject_H_ +#define _cam_ts_PerceivedObject_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier2B.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondSigned.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3dWithConfidence.h" +#include "etsi_its_cam_ts_coding/cam_ts_ObjectPerceptionQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_Velocity3dWithConfidence; +struct cam_ts_Acceleration3dWithConfidence; +struct cam_ts_EulerAnglesWithConfidence; +struct cam_ts_CartesianAngularVelocityComponent; +struct cam_ts_LowerTriangularPositiveSemidefiniteMatrices; +struct cam_ts_ObjectDimension; +struct cam_ts_SequenceOfIdentifier1B; +struct cam_ts_ObjectClassDescription; +struct cam_ts_MapPosition; + +/* cam_ts_PerceivedObject */ +typedef struct cam_ts_PerceivedObject { + cam_ts_Identifier2B_t *objectId; /* OPTIONAL */ + cam_ts_DeltaTimeMilliSecondSigned_t measurementDeltaTime; + cam_ts_CartesianPosition3dWithConfidence_t position; + struct cam_ts_Velocity3dWithConfidence *velocity; /* OPTIONAL */ + struct cam_ts_Acceleration3dWithConfidence *acceleration; /* OPTIONAL */ + struct cam_ts_EulerAnglesWithConfidence *angles; /* OPTIONAL */ + struct cam_ts_CartesianAngularVelocityComponent *zAngularVelocity; /* OPTIONAL */ + struct cam_ts_LowerTriangularPositiveSemidefiniteMatrices *lowerTriangularCorrelationMatrices; /* OPTIONAL */ + struct cam_ts_ObjectDimension *objectDimensionZ; /* OPTIONAL */ + struct cam_ts_ObjectDimension *objectDimensionY; /* OPTIONAL */ + struct cam_ts_ObjectDimension *objectDimensionX; /* OPTIONAL */ + cam_ts_DeltaTimeMilliSecondSigned_t *objectAge; /* OPTIONAL */ + cam_ts_ObjectPerceptionQuality_t *objectPerceptionQuality; /* OPTIONAL */ + struct cam_ts_SequenceOfIdentifier1B *sensorIdList; /* OPTIONAL */ + struct cam_ts_ObjectClassDescription *classification; /* OPTIONAL */ + struct cam_ts_MapPosition *mapPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PerceivedObject_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PerceivedObject; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_Velocity3dWithConfidence.h" +#include "etsi_its_cam_ts_coding/cam_ts_Acceleration3dWithConfidence.h" +#include "etsi_its_cam_ts_coding/cam_ts_EulerAnglesWithConfidence.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponent.h" +#include "etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrices.h" +#include "etsi_its_cam_ts_coding/cam_ts_ObjectDimension.h" +#include "etsi_its_cam_ts_coding/cam_ts_SequenceOfIdentifier1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_ObjectClassDescription.h" +#include "etsi_its_cam_ts_coding/cam_ts_MapPosition.h" + +#endif /* _cam_ts_PerceivedObject_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PerformanceClass.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PerformanceClass.h new file mode 100644 index 000000000..2ec4f3f75 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PerformanceClass.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PerformanceClass_H_ +#define _cam_ts_PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PerformanceClass { + cam_ts_PerformanceClass_unavailable = 0, + cam_ts_PerformanceClass_performanceClassA = 1, + cam_ts_PerformanceClass_performanceClassB = 2 +} e_cam_ts_PerformanceClass; + +/* cam_ts_PerformanceClass */ +typedef long cam_ts_PerformanceClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_PerformanceClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PerformanceClass; +asn_struct_free_f cam_ts_PerformanceClass_free; +asn_struct_print_f cam_ts_PerformanceClass_print; +asn_constr_check_f cam_ts_PerformanceClass_constraint; +per_type_decoder_f cam_ts_PerformanceClass_decode_uper; +per_type_encoder_f cam_ts_PerformanceClass_encode_uper; +per_type_decoder_f cam_ts_PerformanceClass_decode_aper; +per_type_encoder_f cam_ts_PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PerformanceClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PhoneNumber.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PhoneNumber.h new file mode 100644 index 000000000..f3d4603ed --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PhoneNumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PhoneNumber_H_ +#define _cam_ts_PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PhoneNumber */ +typedef NumericString_t cam_ts_PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PhoneNumber; +asn_struct_free_f cam_ts_PhoneNumber_free; +asn_struct_print_f cam_ts_PhoneNumber_print; +asn_constr_check_f cam_ts_PhoneNumber_constraint; +per_type_decoder_f cam_ts_PhoneNumber_decode_uper; +per_type_encoder_f cam_ts_PhoneNumber_encode_uper; +per_type_decoder_f cam_ts_PhoneNumber_decode_aper; +per_type_encoder_f cam_ts_PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PhoneNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PolygonalShape.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PolygonalShape.h new file mode 100644 index 000000000..d02b38c85 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PolygonalShape.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PolygonalShape_H_ +#define _cam_ts_PolygonalShape_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_SequenceOfCartesianPosition3d.h" +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CartesianPosition3d; + +/* cam_ts_PolygonalShape */ +typedef struct cam_ts_PolygonalShape { + struct cam_ts_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + cam_ts_SequenceOfCartesianPosition3d_t polygon; + cam_ts_StandardLength12b_t *height; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PolygonalShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PolygonalShape; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PolygonalShape_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PolygonalShape_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h" + +#endif /* _cam_ts_PolygonalShape_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosCentMass.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosCentMass.h new file mode 100644 index 000000000..953af5a65 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosCentMass.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PosCentMass_H_ +#define _cam_ts_PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PosCentMass { + cam_ts_PosCentMass_tenCentimetres = 1, + cam_ts_PosCentMass_outOfRange = 62, + cam_ts_PosCentMass_unavailable = 63 +} e_cam_ts_PosCentMass; + +/* cam_ts_PosCentMass */ +typedef long cam_ts_PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PosCentMass; +asn_struct_free_f cam_ts_PosCentMass_free; +asn_struct_print_f cam_ts_PosCentMass_print; +asn_constr_check_f cam_ts_PosCentMass_constraint; +per_type_decoder_f cam_ts_PosCentMass_decode_uper; +per_type_encoder_f cam_ts_PosCentMass_encode_uper; +per_type_decoder_f cam_ts_PosCentMass_decode_aper; +per_type_encoder_f cam_ts_PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PosCentMass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosConfidenceEllipse.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosConfidenceEllipse.h new file mode 100644 index 000000000..50569ebf9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PosConfidenceEllipse_H_ +#define _cam_ts_PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_SemiAxisLength.h" +#include "etsi_its_cam_ts_coding/cam_ts_HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PosConfidenceEllipse */ +typedef struct cam_ts_PosConfidenceEllipse { + cam_ts_SemiAxisLength_t semiMajorConfidence; + cam_ts_SemiAxisLength_t semiMinorConfidence; + cam_ts_HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PosConfidenceEllipse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosFrontAx.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosFrontAx.h new file mode 100644 index 000000000..431440055 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosFrontAx.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PosFrontAx_H_ +#define _cam_ts_PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PosFrontAx { + cam_ts_PosFrontAx_outOfRange = 19, + cam_ts_PosFrontAx_unavailable = 20 +} e_cam_ts_PosFrontAx; + +/* cam_ts_PosFrontAx */ +typedef long cam_ts_PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PosFrontAx; +asn_struct_free_f cam_ts_PosFrontAx_free; +asn_struct_print_f cam_ts_PosFrontAx_print; +asn_constr_check_f cam_ts_PosFrontAx_constraint; +per_type_decoder_f cam_ts_PosFrontAx_decode_uper; +per_type_encoder_f cam_ts_PosFrontAx_encode_uper; +per_type_decoder_f cam_ts_PosFrontAx_decode_aper; +per_type_encoder_f cam_ts_PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PosFrontAx_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosLonCarr.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosLonCarr.h new file mode 100644 index 000000000..f1fad9d10 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosLonCarr.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PosLonCarr_H_ +#define _cam_ts_PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PosLonCarr { + cam_ts_PosLonCarr_outOfRange = 126, + cam_ts_PosLonCarr_unavailable = 127 +} e_cam_ts_PosLonCarr; + +/* cam_ts_PosLonCarr */ +typedef long cam_ts_PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PosLonCarr; +asn_struct_free_f cam_ts_PosLonCarr_free; +asn_struct_print_f cam_ts_PosLonCarr_print; +asn_constr_check_f cam_ts_PosLonCarr_constraint; +per_type_decoder_f cam_ts_PosLonCarr_decode_uper; +per_type_encoder_f cam_ts_PosLonCarr_encode_uper; +per_type_decoder_f cam_ts_PosLonCarr_decode_aper; +per_type_encoder_f cam_ts_PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PosLonCarr_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosPillar.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosPillar.h new file mode 100644 index 000000000..31c948ca7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PosPillar.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PosPillar_H_ +#define _cam_ts_PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PosPillar { + cam_ts_PosPillar_outOfRange = 29, + cam_ts_PosPillar_unavailable = 30 +} e_cam_ts_PosPillar; + +/* cam_ts_PosPillar */ +typedef long cam_ts_PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PosPillar; +asn_struct_free_f cam_ts_PosPillar_free; +asn_struct_print_f cam_ts_PosPillar_print; +asn_constr_check_f cam_ts_PosPillar_constraint; +per_type_decoder_f cam_ts_PosPillar_decode_uper; +per_type_encoder_f cam_ts_PosPillar_encode_uper; +per_type_decoder_f cam_ts_PosPillar_decode_aper; +per_type_encoder_f cam_ts_PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PosPillar_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Position1d.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Position1d.h new file mode 100644 index 000000000..16730cc5a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Position1d.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Position1d_H_ +#define _cam_ts_Position1d_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Position1d { + cam_ts_Position1d_outOfRange = 8190, + cam_ts_Position1d_unavailable = 8191 +} e_cam_ts_Position1d; + +/* cam_ts_Position1d */ +typedef long cam_ts_Position1d_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Position1d; +asn_struct_free_f cam_ts_Position1d_free; +asn_struct_print_f cam_ts_Position1d_print; +asn_constr_check_f cam_ts_Position1d_constraint; +per_type_decoder_f cam_ts_Position1d_decode_uper; +per_type_encoder_f cam_ts_Position1d_encode_uper; +per_type_decoder_f cam_ts_Position1d_decode_aper; +per_type_encoder_f cam_ts_Position1d_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Position1d_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionConfidenceEllipse.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionConfidenceEllipse.h new file mode 100644 index 000000000..c874437ad --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PositionConfidenceEllipse_H_ +#define _cam_ts_PositionConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_SemiAxisLength.h" +#include "etsi_its_cam_ts_coding/cam_ts_Wgs84AngleValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PositionConfidenceEllipse */ +typedef struct cam_ts_PositionConfidenceEllipse { + cam_ts_SemiAxisLength_t semiMajorAxisLength; + cam_ts_SemiAxisLength_t semiMinorAxisLength; + cam_ts_Wgs84AngleValue_t semiMajorAxisOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PositionConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PositionConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PositionConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PositionConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PositionConfidenceEllipse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionOfOccupants.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionOfOccupants.h new file mode 100644 index 000000000..18f0a1201 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionOfOccupants.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PositionOfOccupants_H_ +#define _cam_ts_PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PositionOfOccupants { + cam_ts_PositionOfOccupants_row1LeftOccupied = 0, + cam_ts_PositionOfOccupants_row1RightOccupied = 1, + cam_ts_PositionOfOccupants_row1MidOccupied = 2, + cam_ts_PositionOfOccupants_row1NotDetectable = 3, + cam_ts_PositionOfOccupants_row1NotPresent = 4, + cam_ts_PositionOfOccupants_row2LeftOccupied = 5, + cam_ts_PositionOfOccupants_row2RightOccupied = 6, + cam_ts_PositionOfOccupants_row2MidOccupied = 7, + cam_ts_PositionOfOccupants_row2NotDetectable = 8, + cam_ts_PositionOfOccupants_row2NotPresent = 9, + cam_ts_PositionOfOccupants_row3LeftOccupied = 10, + cam_ts_PositionOfOccupants_row3RightOccupied = 11, + cam_ts_PositionOfOccupants_row3MidOccupied = 12, + cam_ts_PositionOfOccupants_row3NotDetectable = 13, + cam_ts_PositionOfOccupants_row3NotPresent = 14, + cam_ts_PositionOfOccupants_row4LeftOccupied = 15, + cam_ts_PositionOfOccupants_row4RightOccupied = 16, + cam_ts_PositionOfOccupants_row4MidOccupied = 17, + cam_ts_PositionOfOccupants_row4NotDetectable = 18, + cam_ts_PositionOfOccupants_row4NotPresent = 19 +} e_cam_ts_PositionOfOccupants; + +/* cam_ts_PositionOfOccupants */ +typedef BIT_STRING_t cam_ts_PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PositionOfOccupants; +asn_struct_free_f cam_ts_PositionOfOccupants_free; +asn_struct_print_f cam_ts_PositionOfOccupants_print; +asn_constr_check_f cam_ts_PositionOfOccupants_constraint; +per_type_decoder_f cam_ts_PositionOfOccupants_decode_uper; +per_type_encoder_f cam_ts_PositionOfOccupants_encode_uper; +per_type_decoder_f cam_ts_PositionOfOccupants_decode_aper; +per_type_encoder_f cam_ts_PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PositionOfOccupants_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionOfPillars.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionOfPillars.h new file mode 100644 index 000000000..5cc8b8e1e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PositionOfPillars_H_ +#define _cam_ts_PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PositionOfPillars */ +typedef struct cam_ts_PositionOfPillars { + A_SEQUENCE_OF(cam_ts_PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PositionOfPillars_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositioningSolutionType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositioningSolutionType.h new file mode 100644 index 000000000..457aedd55 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PositioningSolutionType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PositioningSolutionType_H_ +#define _cam_ts_PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PositioningSolutionType { + cam_ts_PositioningSolutionType_noPositioningSolution = 0, + cam_ts_PositioningSolutionType_sGNSS = 1, + cam_ts_PositioningSolutionType_dGNSS = 2, + cam_ts_PositioningSolutionType_sGNSSplusDR = 3, + cam_ts_PositioningSolutionType_dGNSSplusDR = 4, + cam_ts_PositioningSolutionType_dR = 5, + /* + * Enumeration is extensible + */ + cam_ts_PositioningSolutionType_manuallyByOperator = 6 +} e_cam_ts_PositioningSolutionType; + +/* cam_ts_PositioningSolutionType */ +typedef long cam_ts_PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PositioningSolutionType; +asn_struct_free_f cam_ts_PositioningSolutionType_free; +asn_struct_print_f cam_ts_PositioningSolutionType_print; +asn_constr_check_f cam_ts_PositioningSolutionType_constraint; +per_type_decoder_f cam_ts_PositioningSolutionType_decode_uper; +per_type_encoder_f cam_ts_PositioningSolutionType_encode_uper; +per_type_decoder_f cam_ts_PositioningSolutionType_decode_aper; +per_type_encoder_f cam_ts_PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PositioningSolutionType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PostCrashSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PostCrashSubCauseCode.h new file mode 100644 index 000000000..05ac5c5f2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PostCrashSubCauseCode.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PostCrashSubCauseCode_H_ +#define _cam_ts_PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PostCrashSubCauseCode { + cam_ts_PostCrashSubCauseCode_unavailable = 0, + cam_ts_PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + cam_ts_PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + cam_ts_PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + cam_ts_PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_cam_ts_PostCrashSubCauseCode; + +/* cam_ts_PostCrashSubCauseCode */ +typedef long cam_ts_PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_PostCrashSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PostCrashSubCauseCode; +asn_struct_free_f cam_ts_PostCrashSubCauseCode_free; +asn_struct_print_f cam_ts_PostCrashSubCauseCode_print; +asn_constr_check_f cam_ts_PostCrashSubCauseCode_constraint; +per_type_decoder_f cam_ts_PostCrashSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_PostCrashSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_PostCrashSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PostCrashSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PrecipitationIntensity.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PrecipitationIntensity.h new file mode 100644 index 000000000..66b7ef824 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PrecipitationIntensity.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PrecipitationIntensity_H_ +#define _cam_ts_PrecipitationIntensity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PrecipitationIntensity { + cam_ts_PrecipitationIntensity_outOfRange = 2000, + cam_ts_PrecipitationIntensity_unavailable = 2001 +} e_cam_ts_PrecipitationIntensity; + +/* cam_ts_PrecipitationIntensity */ +typedef long cam_ts_PrecipitationIntensity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PrecipitationIntensity; +asn_struct_free_f cam_ts_PrecipitationIntensity_free; +asn_struct_print_f cam_ts_PrecipitationIntensity_print; +asn_constr_check_f cam_ts_PrecipitationIntensity_constraint; +per_type_decoder_f cam_ts_PrecipitationIntensity_decode_uper; +per_type_encoder_f cam_ts_PrecipitationIntensity_encode_uper; +per_type_decoder_f cam_ts_PrecipitationIntensity_decode_aper; +per_type_encoder_f cam_ts_PrecipitationIntensity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PrecipitationIntensity_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZone.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZone.h new file mode 100644 index 000000000..b1273d371 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ProtectedCommunicationZone_H_ +#define _cam_ts_ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneType.h" +#include "etsi_its_cam_ts_coding/cam_ts_TimestampIts.h" +#include "etsi_its_cam_ts_coding/cam_ts_Latitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_Longitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneRadius.h" +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ProtectedCommunicationZone */ +typedef struct cam_ts_ProtectedCommunicationZone { + cam_ts_ProtectedZoneType_t protectedZoneType; + cam_ts_TimestampIts_t *expiryTime; /* OPTIONAL */ + cam_ts_Latitude_t protectedZoneLatitude; + cam_ts_Longitude_t protectedZoneLongitude; + cam_ts_ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + cam_ts_ProtectedZoneId_t *protectedZoneId; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ProtectedCommunicationZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZonesRSU.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZonesRSU.h new file mode 100644 index 000000000..d4095d4a6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZonesRSU.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ProtectedCommunicationZonesRSU_H_ +#define _cam_ts_ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_ProtectedCommunicationZone; + +/* cam_ts_ProtectedCommunicationZonesRSU */ +typedef struct cam_ts_ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct cam_ts_ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedCommunicationZonesRSU; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_ProtectedCommunicationZonesRSU_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ProtectedCommunicationZonesRSU_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_ProtectedCommunicationZonesRSU_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZone.h" + +#endif /* _cam_ts_ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneId.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneId.h new file mode 100644 index 000000000..aec64086b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneId.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ProtectedZoneId_H_ +#define _cam_ts_ProtectedZoneId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ProtectedZoneId */ +typedef long cam_ts_ProtectedZoneId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ProtectedZoneId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedZoneId; +asn_struct_free_f cam_ts_ProtectedZoneId_free; +asn_struct_print_f cam_ts_ProtectedZoneId_print; +asn_constr_check_f cam_ts_ProtectedZoneId_constraint; +per_type_decoder_f cam_ts_ProtectedZoneId_decode_uper; +per_type_encoder_f cam_ts_ProtectedZoneId_encode_uper; +per_type_decoder_f cam_ts_ProtectedZoneId_decode_aper; +per_type_encoder_f cam_ts_ProtectedZoneId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ProtectedZoneId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneRadius.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneRadius.h new file mode 100644 index 000000000..c108a5ebf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneRadius.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ProtectedZoneRadius_H_ +#define _cam_ts_ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ProtectedZoneRadius */ +typedef long cam_ts_ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedZoneRadius; +asn_struct_free_f cam_ts_ProtectedZoneRadius_free; +asn_struct_print_f cam_ts_ProtectedZoneRadius_print; +asn_constr_check_f cam_ts_ProtectedZoneRadius_constraint; +per_type_decoder_f cam_ts_ProtectedZoneRadius_decode_uper; +per_type_encoder_f cam_ts_ProtectedZoneRadius_encode_uper; +per_type_decoder_f cam_ts_ProtectedZoneRadius_decode_aper; +per_type_encoder_f cam_ts_ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ProtectedZoneRadius_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneType.h new file mode 100644 index 000000000..eab8508c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ProtectedZoneType.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ProtectedZoneType_H_ +#define _cam_ts_ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ProtectedZoneType { + cam_ts_ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + cam_ts_ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_cam_ts_ProtectedZoneType; + +/* cam_ts_ProtectedZoneType */ +typedef long cam_ts_ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_ProtectedZoneType_specs_1; +asn_struct_free_f cam_ts_ProtectedZoneType_free; +asn_struct_print_f cam_ts_ProtectedZoneType_print; +asn_constr_check_f cam_ts_ProtectedZoneType_constraint; +per_type_decoder_f cam_ts_ProtectedZoneType_decode_uper; +per_type_encoder_f cam_ts_ProtectedZoneType_encode_uper; +per_type_decoder_f cam_ts_ProtectedZoneType_decode_aper; +per_type_encoder_f cam_ts_ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ProtectedZoneType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Provider.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Provider.h new file mode 100644 index 000000000..510eb0a0b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Provider.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Provider_H_ +#define _cam_ts_Provider_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_CountryCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_IssuerIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Provider */ +typedef struct cam_ts_Provider { + cam_ts_CountryCode_t countryCode; + cam_ts_IssuerIdentifier_t providerIdentifier; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Provider_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Provider; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Provider_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Provider_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Provider_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivation.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivation.h new file mode 100644 index 000000000..360b4dd3b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivation.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PtActivation_H_ +#define _cam_ts_PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_PtActivationType.h" +#include "etsi_its_cam_ts_coding/cam_ts_PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PtActivation */ +typedef struct cam_ts_PtActivation { + cam_ts_PtActivationType_t ptActivationType; + cam_ts_PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PtActivation; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PtActivation_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PtActivation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PtActivation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivationData.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivationData.h new file mode 100644 index 000000000..1963db2b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivationData.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PtActivationData_H_ +#define _cam_ts_PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_PtActivationData */ +typedef OCTET_STRING_t cam_ts_PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PtActivationData; +asn_struct_free_f cam_ts_PtActivationData_free; +asn_struct_print_f cam_ts_PtActivationData_print; +asn_constr_check_f cam_ts_PtActivationData_constraint; +per_type_decoder_f cam_ts_PtActivationData_decode_uper; +per_type_encoder_f cam_ts_PtActivationData_encode_uper; +per_type_decoder_f cam_ts_PtActivationData_decode_aper; +per_type_encoder_f cam_ts_PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PtActivationData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivationType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivationType.h new file mode 100644 index 000000000..9fb39a9bf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PtActivationType.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PtActivationType_H_ +#define _cam_ts_PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_PtActivationType { + cam_ts_PtActivationType_undefinedCodingType = 0, + cam_ts_PtActivationType_r09_16CodingType = 1, + cam_ts_PtActivationType_vdv_50149CodingType = 2 +} e_cam_ts_PtActivationType; + +/* cam_ts_PtActivationType */ +typedef long cam_ts_PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PtActivationType; +asn_struct_free_f cam_ts_PtActivationType_free; +asn_struct_print_f cam_ts_PtActivationType_print; +asn_constr_check_f cam_ts_PtActivationType_constraint; +per_type_decoder_f cam_ts_PtActivationType_decode_uper; +per_type_encoder_f cam_ts_PtActivationType_encode_uper; +per_type_decoder_f cam_ts_PtActivationType_decode_aper; +per_type_encoder_f cam_ts_PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_PtActivationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PublicTransportContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PublicTransportContainer.h new file mode 100644 index 000000000..0b1efce16 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_PublicTransportContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_PublicTransportContainer_H_ +#define _cam_ts_PublicTransportContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_EmbarkationStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_PtActivation; + +/* cam_ts_PublicTransportContainer */ +typedef struct cam_ts_PublicTransportContainer { + cam_ts_EmbarkationStatus_t embarkationStatus; + struct cam_ts_PtActivation *ptActivation; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_PublicTransportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_PublicTransportContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PublicTransportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_PublicTransportContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_PtActivation.h" + +#endif /* _cam_ts_PublicTransportContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RSUContainerHighFrequency.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RSUContainerHighFrequency.h new file mode 100644 index 000000000..394924d24 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RSUContainerHighFrequency.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RSUContainerHighFrequency_H_ +#define _cam_ts_RSUContainerHighFrequency_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_ProtectedCommunicationZonesRSU; + +/* cam_ts_RSUContainerHighFrequency */ +typedef struct cam_ts_RSUContainerHighFrequency { + struct cam_ts_ProtectedCommunicationZonesRSU *protectedCommunicationZonesRSU; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RSUContainerHighFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RSUContainerHighFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RSUContainerHighFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RSUContainerHighFrequency_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZonesRSU.h" + +#endif /* _cam_ts_RSUContainerHighFrequency_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShape.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShape.h new file mode 100644 index 000000000..66f3b27f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShape.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RadialShape_H_ +#define _cam_ts_RadialShape_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CartesianPosition3d; + +/* cam_ts_RadialShape */ +typedef struct cam_ts_RadialShape { + struct cam_ts_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + cam_ts_StandardLength12b_t range; + cam_ts_CartesianAngleValue_t horizontalOpeningAngleStart; + cam_ts_CartesianAngleValue_t horizontalOpeningAngleEnd; + cam_ts_CartesianAngleValue_t *verticalOpeningAngleStart; /* OPTIONAL */ + cam_ts_CartesianAngleValue_t *verticalOpeningAngleEnd; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RadialShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RadialShape; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RadialShape_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RadialShape_1[6]; +extern asn_per_constraints_t asn_PER_type_cam_ts_RadialShape_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h" + +#endif /* _cam_ts_RadialShape_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapeDetails.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapeDetails.h new file mode 100644 index 000000000..d0a80227c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RadialShapeDetails_H_ +#define _cam_ts_RadialShapeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_RadialShapeDetails */ +typedef struct cam_ts_RadialShapeDetails { + cam_ts_StandardLength12b_t range; + cam_ts_CartesianAngleValue_t horizontalOpeningAngleStart; + cam_ts_CartesianAngleValue_t horizontalOpeningAngleEnd; + cam_ts_CartesianAngleValue_t *verticalOpeningAngleStart; /* OPTIONAL */ + cam_ts_CartesianAngleValue_t *verticalOpeningAngleEnd; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RadialShapeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RadialShapeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RadialShapeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RadialShapeDetails_1[5]; +extern asn_per_constraints_t asn_PER_type_cam_ts_RadialShapeDetails_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RadialShapeDetails_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapes.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapes.h new file mode 100644 index 000000000..3d022d2d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapes.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RadialShapes_H_ +#define _cam_ts_RadialShapes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateSmall.h" +#include "etsi_its_cam_ts_coding/cam_ts_RadialShapesList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_RadialShapes */ +typedef struct cam_ts_RadialShapes { + cam_ts_Identifier1B_t refPointId; + cam_ts_CartesianCoordinateSmall_t xCoordinate; + cam_ts_CartesianCoordinateSmall_t yCoordinate; + cam_ts_CartesianCoordinateSmall_t *zCoordinate; /* OPTIONAL */ + cam_ts_RadialShapesList_t radialShapesList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RadialShapes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RadialShapes; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RadialShapes_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RadialShapes_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RadialShapes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapesList.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapesList.h new file mode 100644 index 000000000..12b12b481 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RadialShapesList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RadialShapesList_H_ +#define _cam_ts_RadialShapesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_RadialShapeDetails; + +/* cam_ts_RadialShapesList */ +typedef struct cam_ts_RadialShapesList { + A_SEQUENCE_OF(struct cam_ts_RadialShapeDetails) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RadialShapesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RadialShapesList; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_RadialShapesList_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RadialShapesList_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_RadialShapesList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_RadialShapeDetails.h" + +#endif /* _cam_ts_RadialShapesList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RailwayLevelCrossingSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RailwayLevelCrossingSubCauseCode.h new file mode 100644 index 000000000..d51363464 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RailwayLevelCrossingSubCauseCode.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RailwayLevelCrossingSubCauseCode_H_ +#define _cam_ts_RailwayLevelCrossingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_RailwayLevelCrossingSubCauseCode { + cam_ts_RailwayLevelCrossingSubCauseCode_unavailable = 0, + cam_ts_RailwayLevelCrossingSubCauseCode_doNotCrossAbnormalSituation = 1, + cam_ts_RailwayLevelCrossingSubCauseCode_closed = 2, + cam_ts_RailwayLevelCrossingSubCauseCode_unguarded = 3, + cam_ts_RailwayLevelCrossingSubCauseCode_nominal = 4 +} e_cam_ts_RailwayLevelCrossingSubCauseCode; + +/* cam_ts_RailwayLevelCrossingSubCauseCode */ +typedef long cam_ts_RailwayLevelCrossingSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_RailwayLevelCrossingSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode; +asn_struct_free_f cam_ts_RailwayLevelCrossingSubCauseCode_free; +asn_struct_print_f cam_ts_RailwayLevelCrossingSubCauseCode_print; +asn_constr_check_f cam_ts_RailwayLevelCrossingSubCauseCode_constraint; +per_type_decoder_f cam_ts_RailwayLevelCrossingSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_RailwayLevelCrossingSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_RailwayLevelCrossingSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_RailwayLevelCrossingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RailwayLevelCrossingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RectangularShape.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RectangularShape.h new file mode 100644 index 000000000..2ce10c94f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RectangularShape.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RectangularShape_H_ +#define _cam_ts_RectangularShape_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CartesianPosition3d; + +/* cam_ts_RectangularShape */ +typedef struct cam_ts_RectangularShape { + struct cam_ts_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + cam_ts_StandardLength12b_t semiLength; + cam_ts_StandardLength12b_t semiBreadth; + cam_ts_CartesianAngleValue_t *orientation; /* OPTIONAL */ + cam_ts_StandardLength12b_t *height; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RectangularShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RectangularShape; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RectangularShape_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RectangularShape_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h" + +#endif /* _cam_ts_RectangularShape_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ReferencePosition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ReferencePosition.h new file mode 100644 index 000000000..3a299aee2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ReferencePosition_H_ +#define _cam_ts_ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Latitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_Longitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_PosConfidenceEllipse.h" +#include "etsi_its_cam_ts_coding/cam_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ReferencePosition */ +typedef struct cam_ts_ReferencePosition { + cam_ts_Latitude_t latitude; + cam_ts_Longitude_t longitude; + cam_ts_PosConfidenceEllipse_t positionConfidenceEllipse; + cam_ts_Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ReferencePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ReferencePositionWithConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ReferencePositionWithConfidence.h new file mode 100644 index 000000000..9d23bfef8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ReferencePositionWithConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ReferencePositionWithConfidence_H_ +#define _cam_ts_ReferencePositionWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Latitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_Longitude.h" +#include "etsi_its_cam_ts_coding/cam_ts_PositionConfidenceEllipse.h" +#include "etsi_its_cam_ts_coding/cam_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_ReferencePositionWithConfidence */ +typedef struct cam_ts_ReferencePositionWithConfidence { + cam_ts_Latitude_t latitude; + cam_ts_Longitude_t longitude; + cam_ts_PositionConfidenceEllipse_t positionConfidenceEllipse; + cam_ts_Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_ReferencePositionWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ReferencePositionWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ReferencePositionWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_ReferencePositionWithConfidence_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ReferencePositionWithConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RelevanceDistance.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RelevanceDistance.h new file mode 100644 index 000000000..ddaf67f5a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RelevanceDistance.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RelevanceDistance_H_ +#define _cam_ts_RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_RelevanceDistance { + cam_ts_RelevanceDistance_lessThan50m = 0, + cam_ts_RelevanceDistance_lessThan100m = 1, + cam_ts_RelevanceDistance_lessThan200m = 2, + cam_ts_RelevanceDistance_lessThan500m = 3, + cam_ts_RelevanceDistance_lessThan1000m = 4, + cam_ts_RelevanceDistance_lessThan5km = 5, + cam_ts_RelevanceDistance_lessThan10km = 6, + cam_ts_RelevanceDistance_over10km = 7 +} e_cam_ts_RelevanceDistance; + +/* cam_ts_RelevanceDistance */ +typedef long cam_ts_RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RelevanceDistance; +asn_struct_free_f cam_ts_RelevanceDistance_free; +asn_struct_print_f cam_ts_RelevanceDistance_print; +asn_constr_check_f cam_ts_RelevanceDistance_constraint; +per_type_decoder_f cam_ts_RelevanceDistance_decode_uper; +per_type_encoder_f cam_ts_RelevanceDistance_encode_uper; +per_type_decoder_f cam_ts_RelevanceDistance_decode_aper; +per_type_encoder_f cam_ts_RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RelevanceDistance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RelevanceTrafficDirection.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RelevanceTrafficDirection.h new file mode 100644 index 000000000..769a75694 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RelevanceTrafficDirection.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RelevanceTrafficDirection_H_ +#define _cam_ts_RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_RelevanceTrafficDirection { + cam_ts_RelevanceTrafficDirection_allTrafficDirections = 0, + cam_ts_RelevanceTrafficDirection_upstreamTraffic = 1, + cam_ts_RelevanceTrafficDirection_downstreamTraffic = 2, + cam_ts_RelevanceTrafficDirection_oppositeTraffic = 3 +} e_cam_ts_RelevanceTrafficDirection; + +/* cam_ts_RelevanceTrafficDirection */ +typedef long cam_ts_RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RelevanceTrafficDirection; +asn_struct_free_f cam_ts_RelevanceTrafficDirection_free; +asn_struct_print_f cam_ts_RelevanceTrafficDirection_print; +asn_constr_check_f cam_ts_RelevanceTrafficDirection_constraint; +per_type_decoder_f cam_ts_RelevanceTrafficDirection_decode_uper; +per_type_encoder_f cam_ts_RelevanceTrafficDirection_encode_uper; +per_type_decoder_f cam_ts_RelevanceTrafficDirection_decode_aper; +per_type_encoder_f cam_ts_RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RelevanceTrafficDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RequestResponseIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RequestResponseIndication.h new file mode 100644 index 000000000..887fd9c6d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RequestResponseIndication.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RequestResponseIndication_H_ +#define _cam_ts_RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_RequestResponseIndication { + cam_ts_RequestResponseIndication_request = 0, + cam_ts_RequestResponseIndication_response = 1 +} e_cam_ts_RequestResponseIndication; + +/* cam_ts_RequestResponseIndication */ +typedef long cam_ts_RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RequestResponseIndication; +asn_struct_free_f cam_ts_RequestResponseIndication_free; +asn_struct_print_f cam_ts_RequestResponseIndication_print; +asn_constr_check_f cam_ts_RequestResponseIndication_constraint; +per_type_decoder_f cam_ts_RequestResponseIndication_decode_uper; +per_type_encoder_f cam_ts_RequestResponseIndication_encode_uper; +per_type_decoder_f cam_ts_RequestResponseIndication_decode_aper; +per_type_encoder_f cam_ts_RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RequestResponseIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 000000000..811d69451 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode { + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5, + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_prioritizedVehicle = 6, + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_rescueAndRecoveryVehicle = 7 +} e_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +per_type_decoder_f cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RescueContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RescueContainer.h new file mode 100644 index 000000000..8a5e4a571 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RescueContainer.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RescueContainer_H_ +#define _cam_ts_RescueContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_RescueContainer */ +typedef struct cam_ts_RescueContainer { + cam_ts_LightBarSirenInUse_t lightBarSirenInUse; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RescueContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RescueContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RescueContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RescueContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RescueContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RestrictedTypes.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RestrictedTypes.h new file mode 100644 index 000000000..8a6f50e5b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RestrictedTypes_H_ +#define _cam_ts_RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_RestrictedTypes */ +typedef struct cam_ts_RestrictedTypes { + A_SEQUENCE_OF(cam_ts_StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RestrictedTypes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSection.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSection.h new file mode 100644 index 000000000..96b69573f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSection.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RoadConfigurationSection_H_ +#define _cam_ts_RoadConfigurationSection_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_RoadSectionDefinition.h" +#include "etsi_its_cam_ts_coding/cam_ts_RoadType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_BasicLaneConfiguration; +struct cam_ts_MapemConfiguration; + +/* cam_ts_RoadConfigurationSection */ +typedef struct cam_ts_RoadConfigurationSection { + cam_ts_RoadSectionDefinition_t roadSectionDefinition; + cam_ts_RoadType_t *roadType; /* OPTIONAL */ + struct cam_ts_BasicLaneConfiguration *laneConfiguration; /* OPTIONAL */ + struct cam_ts_MapemConfiguration *mapemConfiguration; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RoadConfigurationSection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadConfigurationSection; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RoadConfigurationSection_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RoadConfigurationSection_1[4]; +extern asn_per_constraints_t asn_PER_type_cam_ts_RoadConfigurationSection_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_BasicLaneConfiguration.h" +#include "etsi_its_cam_ts_coding/cam_ts_MapemConfiguration.h" + +#endif /* _cam_ts_RoadConfigurationSection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSectionList.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSectionList.h new file mode 100644 index 000000000..a2494e77f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSectionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RoadConfigurationSectionList_H_ +#define _cam_ts_RoadConfigurationSectionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_RoadConfigurationSection; + +/* cam_ts_RoadConfigurationSectionList */ +typedef struct cam_ts_RoadConfigurationSectionList { + A_SEQUENCE_OF(struct cam_ts_RoadConfigurationSection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RoadConfigurationSectionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadConfigurationSectionList; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSection.h" + +#endif /* _cam_ts_RoadConfigurationSectionList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSectionDefinition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSectionDefinition.h new file mode 100644 index 000000000..cd6b8770e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSectionDefinition.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RoadSectionDefinition_H_ +#define _cam_ts_RoadSectionDefinition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_GeoPosition.h" +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength2B.h" +#include "etsi_its_cam_ts_coding/cam_ts_PathReferences.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_GeoPosition; + +/* cam_ts_RoadSectionDefinition */ +typedef struct cam_ts_RoadSectionDefinition { + cam_ts_GeoPosition_t startingPointSection; + cam_ts_StandardLength2B_t *lengthOfSection; /* OPTIONAL */ + struct cam_ts_GeoPosition *endingPointSection; /* OPTIONAL */ + cam_ts_PathReferences_t connectedPaths; + cam_ts_PathReferences_t includedPaths; + BOOLEAN_t isEventZoneIncluded; + BOOLEAN_t isEventZoneConnected; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RoadSectionDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadSectionDefinition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RoadSectionDefinition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RoadSectionDefinition_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_GeoPosition.h" + +#endif /* _cam_ts_RoadSectionDefinition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSectionId.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSectionId.h new file mode 100644 index 000000000..cd50753f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSectionId.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RoadSectionId_H_ +#define _cam_ts_RoadSectionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_RoadSectionId */ +typedef long cam_ts_RoadSectionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_RoadSectionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadSectionId; +asn_struct_free_f cam_ts_RoadSectionId_free; +asn_struct_print_f cam_ts_RoadSectionId_print; +asn_constr_check_f cam_ts_RoadSectionId_constraint; +per_type_decoder_f cam_ts_RoadSectionId_decode_uper; +per_type_encoder_f cam_ts_RoadSectionId_encode_uper; +per_type_decoder_f cam_ts_RoadSectionId_decode_aper; +per_type_encoder_f cam_ts_RoadSectionId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RoadSectionId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSegmentReferenceId.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSegmentReferenceId.h new file mode 100644 index 000000000..875ff4678 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadSegmentReferenceId.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RoadSegmentReferenceId_H_ +#define _cam_ts_RoadSegmentReferenceId_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier2B.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_RoadSegmentReferenceId */ +typedef struct cam_ts_RoadSegmentReferenceId { + cam_ts_Identifier2B_t *region; /* OPTIONAL */ + cam_ts_Identifier2B_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RoadSegmentReferenceId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadSegmentReferenceId; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RoadSegmentReferenceId_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RoadSegmentReferenceId_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RoadSegmentReferenceId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadType.h new file mode 100644 index 000000000..4cecea4a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadType.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RoadType_H_ +#define _cam_ts_RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_RoadType { + cam_ts_RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + cam_ts_RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + cam_ts_RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + cam_ts_RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_cam_ts_RoadType; + +/* cam_ts_RoadType */ +typedef long cam_ts_RoadType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_RoadType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadType; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_RoadType_specs_1; +asn_struct_free_f cam_ts_RoadType_free; +asn_struct_print_f cam_ts_RoadType_print; +asn_constr_check_f cam_ts_RoadType_constraint; +per_type_decoder_f cam_ts_RoadType_decode_uper; +per_type_encoder_f cam_ts_RoadType_encode_uper; +per_type_decoder_f cam_ts_RoadType_decode_aper; +per_type_encoder_f cam_ts_RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RoadType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadWorksContainerBasic.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadWorksContainerBasic.h new file mode 100644 index 000000000..9e1a48fbb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadWorksContainerBasic.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RoadWorksContainerBasic_H_ +#define _cam_ts_RoadWorksContainerBasic_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_RoadworksSubCauseCode.h" +#include "etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_ClosedLanes; + +/* cam_ts_RoadWorksContainerBasic */ +typedef struct cam_ts_RoadWorksContainerBasic { + cam_ts_RoadworksSubCauseCode_t *roadworksSubCauseCode; /* OPTIONAL */ + cam_ts_LightBarSirenInUse_t lightBarSirenInUse; + struct cam_ts_ClosedLanes *closedLanes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_RoadWorksContainerBasic_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadWorksContainerBasic; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RoadWorksContainerBasic_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_RoadWorksContainerBasic_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_ClosedLanes.h" + +#endif /* _cam_ts_RoadWorksContainerBasic_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadworksSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadworksSubCauseCode.h new file mode 100644 index 000000000..a85a2f74d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_RoadworksSubCauseCode.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_RoadworksSubCauseCode_H_ +#define _cam_ts_RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_RoadworksSubCauseCode { + cam_ts_RoadworksSubCauseCode_unavailable = 0, + cam_ts_RoadworksSubCauseCode_majorRoadworks = 1, + cam_ts_RoadworksSubCauseCode_roadMarkingWork = 2, + cam_ts_RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + cam_ts_RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + cam_ts_RoadworksSubCauseCode_streetCleaning = 5, + cam_ts_RoadworksSubCauseCode_winterService = 6 +} e_cam_ts_RoadworksSubCauseCode; + +/* cam_ts_RoadworksSubCauseCode */ +typedef long cam_ts_RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_RoadworksSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadworksSubCauseCode; +asn_struct_free_f cam_ts_RoadworksSubCauseCode_free; +asn_struct_print_f cam_ts_RoadworksSubCauseCode_print; +asn_constr_check_f cam_ts_RoadworksSubCauseCode_constraint; +per_type_decoder_f cam_ts_RoadworksSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_RoadworksSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_RoadworksSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_RoadworksSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndication.h new file mode 100644 index 000000000..1ed3608cc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndication.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SafeDistanceIndication_H_ +#define _cam_ts_SafeDistanceIndication_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StationId.h" +#include "etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndicator.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_SafeDistanceIndication */ +typedef struct cam_ts_SafeDistanceIndication { + cam_ts_StationId_t *subjectStation; /* OPTIONAL */ + cam_ts_SafeDistanceIndicator_t safeDistanceIndicator; + cam_ts_DeltaTimeTenthOfSecond_t *timeToCollision; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SafeDistanceIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SafeDistanceIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_SafeDistanceIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_SafeDistanceIndication_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SafeDistanceIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndicator.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndicator.h new file mode 100644 index 000000000..8b49da9e9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndicator.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SafeDistanceIndicator_H_ +#define _cam_ts_SafeDistanceIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_SafeDistanceIndicator */ +typedef BOOLEAN_t cam_ts_SafeDistanceIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SafeDistanceIndicator; +asn_struct_free_f cam_ts_SafeDistanceIndicator_free; +asn_struct_print_f cam_ts_SafeDistanceIndicator_print; +asn_constr_check_f cam_ts_SafeDistanceIndicator_constraint; +per_type_decoder_f cam_ts_SafeDistanceIndicator_decode_uper; +per_type_encoder_f cam_ts_SafeDistanceIndicator_encode_uper; +per_type_decoder_f cam_ts_SafeDistanceIndicator_decode_aper; +per_type_encoder_f cam_ts_SafeDistanceIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SafeDistanceIndicator_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafetyCarContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafetyCarContainer.h new file mode 100644 index 000000000..8fdf77dfe --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SafetyCarContainer.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SafetyCarContainer_H_ +#define _cam_ts_SafetyCarContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h" +#include "etsi_its_cam_ts_coding/cam_ts_TrafficRule.h" +#include "etsi_its_cam_ts_coding/cam_ts_SpeedLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CauseCodeV2; + +/* cam_ts_SafetyCarContainer */ +typedef struct cam_ts_SafetyCarContainer { + cam_ts_LightBarSirenInUse_t lightBarSirenInUse; + struct cam_ts_CauseCodeV2 *incidentIndication; /* OPTIONAL */ + cam_ts_TrafficRule_t *trafficRule; /* OPTIONAL */ + cam_ts_SpeedLimit_t *speedLimit; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SafetyCarContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SafetyCarContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_SafetyCarContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_SafetyCarContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CauseCodeV2.h" + +#endif /* _cam_ts_SafetyCarContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SemiAxisLength.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SemiAxisLength.h new file mode 100644 index 000000000..fa3ece972 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SemiAxisLength.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SemiAxisLength_H_ +#define _cam_ts_SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SemiAxisLength { + cam_ts_SemiAxisLength_doNotUse = 0, + cam_ts_SemiAxisLength_outOfRange = 4094, + cam_ts_SemiAxisLength_unavailable = 4095 +} e_cam_ts_SemiAxisLength; + +/* cam_ts_SemiAxisLength */ +typedef long cam_ts_SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SemiAxisLength; +asn_struct_free_f cam_ts_SemiAxisLength_free; +asn_struct_print_f cam_ts_SemiAxisLength_print; +asn_constr_check_f cam_ts_SemiAxisLength_constraint; +per_type_decoder_f cam_ts_SemiAxisLength_decode_uper; +per_type_encoder_f cam_ts_SemiAxisLength_encode_uper; +per_type_decoder_f cam_ts_SemiAxisLength_decode_aper; +per_type_encoder_f cam_ts_SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SemiAxisLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SensorType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SensorType.h new file mode 100644 index 000000000..7b3fe75ce --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SensorType.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SensorType_H_ +#define _cam_ts_SensorType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SensorType { + cam_ts_SensorType_undefined = 0, + cam_ts_SensorType_radar = 1, + cam_ts_SensorType_lidar = 2, + cam_ts_SensorType_monovideo = 3, + cam_ts_SensorType_stereovision = 4, + cam_ts_SensorType_nightvision = 5, + cam_ts_SensorType_ultrasonic = 6, + cam_ts_SensorType_pmd = 7, + cam_ts_SensorType_inductionLoop = 8, + cam_ts_SensorType_sphericalCamera = 9, + cam_ts_SensorType_uwb = 10, + cam_ts_SensorType_acoustic = 11, + cam_ts_SensorType_localAggregation = 12, + cam_ts_SensorType_itsAggregation = 13 +} e_cam_ts_SensorType; + +/* cam_ts_SensorType */ +typedef long cam_ts_SensorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SensorType; +asn_struct_free_f cam_ts_SensorType_free; +asn_struct_print_f cam_ts_SensorType_print; +asn_constr_check_f cam_ts_SensorType_constraint; +per_type_decoder_f cam_ts_SensorType_decode_uper; +per_type_encoder_f cam_ts_SensorType_encode_uper; +per_type_decoder_f cam_ts_SensorType_decode_aper; +per_type_encoder_f cam_ts_SensorType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SensorType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SensorTypes.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SensorTypes.h new file mode 100644 index 000000000..3e5bca794 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SensorTypes.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SensorTypes_H_ +#define _cam_ts_SensorTypes_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SensorTypes { + cam_ts_SensorTypes_undefined = 0, + cam_ts_SensorTypes_radar = 1, + cam_ts_SensorTypes_lidar = 2, + cam_ts_SensorTypes_monovideo = 3, + cam_ts_SensorTypes_stereovision = 4, + cam_ts_SensorTypes_nightvision = 5, + cam_ts_SensorTypes_ultrasonic = 6, + cam_ts_SensorTypes_pmd = 7, + cam_ts_SensorTypes_inductionLoop = 8, + cam_ts_SensorTypes_sphericalCamera = 9, + cam_ts_SensorTypes_uwb = 10, + cam_ts_SensorTypes_acoustic = 11, + cam_ts_SensorTypes_localAggregation = 12, + cam_ts_SensorTypes_itsAggregation = 13 +} e_cam_ts_SensorTypes; + +/* cam_ts_SensorTypes */ +typedef BIT_STRING_t cam_ts_SensorTypes_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SensorTypes_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SensorTypes; +asn_struct_free_f cam_ts_SensorTypes_free; +asn_struct_print_f cam_ts_SensorTypes_print; +asn_constr_check_f cam_ts_SensorTypes_constraint; +per_type_decoder_f cam_ts_SensorTypes_decode_uper; +per_type_encoder_f cam_ts_SensorTypes_encode_uper; +per_type_decoder_f cam_ts_SensorTypes_decode_aper; +per_type_encoder_f cam_ts_SensorTypes_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SensorTypes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceNumber.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceNumber.h new file mode 100644 index 000000000..757b285b7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceNumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SequenceNumber_H_ +#define _cam_ts_SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_SequenceNumber */ +typedef long cam_ts_SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceNumber; +asn_struct_free_f cam_ts_SequenceNumber_free; +asn_struct_print_f cam_ts_SequenceNumber_print; +asn_constr_check_f cam_ts_SequenceNumber_constraint; +per_type_decoder_f cam_ts_SequenceNumber_decode_uper; +per_type_encoder_f cam_ts_SequenceNumber_encode_uper; +per_type_decoder_f cam_ts_SequenceNumber_decode_aper; +per_type_encoder_f cam_ts_SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SequenceNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfCartesianPosition3d.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfCartesianPosition3d.h new file mode 100644 index 000000000..8e27a1d26 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfCartesianPosition3d.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SequenceOfCartesianPosition3d_H_ +#define _cam_ts_SequenceOfCartesianPosition3d_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_CartesianPosition3d; + +/* cam_ts_SequenceOfCartesianPosition3d */ +typedef struct cam_ts_SequenceOfCartesianPosition3d { + A_SEQUENCE_OF(struct cam_ts_CartesianPosition3d) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SequenceOfCartesianPosition3d_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceOfCartesianPosition3d; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_SequenceOfCartesianPosition3d_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_SequenceOfCartesianPosition3d_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_SequenceOfCartesianPosition3d_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h" + +#endif /* _cam_ts_SequenceOfCartesianPosition3d_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfIdentifier1B.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfIdentifier1B.h new file mode 100644 index 000000000..4df965c58 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfIdentifier1B.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SequenceOfIdentifier1B_H_ +#define _cam_ts_SequenceOfIdentifier1B_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_SequenceOfIdentifier1B */ +typedef struct cam_ts_SequenceOfIdentifier1B { + A_SEQUENCE_OF(cam_ts_Identifier1B_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SequenceOfIdentifier1B_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceOfIdentifier1B; +extern asn_SET_OF_specifics_t asn_SPC_cam_ts_SequenceOfIdentifier1B_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_SequenceOfIdentifier1B_1[1]; +extern asn_per_constraints_t asn_PER_type_cam_ts_SequenceOfIdentifier1B_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SequenceOfIdentifier1B_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfSafeDistanceIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfSafeDistanceIndication.h new file mode 100644 index 000000000..a7226f2ed --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfSafeDistanceIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SequenceOfSafeDistanceIndication_H_ +#define _cam_ts_SequenceOfSafeDistanceIndication_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_SafeDistanceIndication; + +/* cam_ts_SequenceOfSafeDistanceIndication */ +typedef struct cam_ts_SequenceOfSafeDistanceIndication { + A_SEQUENCE_OF(struct cam_ts_SafeDistanceIndication) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SequenceOfSafeDistanceIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceOfSafeDistanceIndication; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndication.h" + +#endif /* _cam_ts_SequenceOfSafeDistanceIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfTrajectoryInterceptionIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfTrajectoryInterceptionIndication.h new file mode 100644 index 000000000..6e321134a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SequenceOfTrajectoryInterceptionIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SequenceOfTrajectoryInterceptionIndication_H_ +#define _cam_ts_SequenceOfTrajectoryInterceptionIndication_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_TrajectoryInterceptionIndication; + +/* cam_ts_SequenceOfTrajectoryInterceptionIndication */ +typedef struct cam_ts_SequenceOfTrajectoryInterceptionIndication { + A_SEQUENCE_OF(struct cam_ts_TrajectoryInterceptionIndication) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SequenceOfTrajectoryInterceptionIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceOfTrajectoryInterceptionIndication; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionIndication.h" + +#endif /* _cam_ts_SequenceOfTrajectoryInterceptionIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Shape.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Shape.h new file mode 100644 index 000000000..b8c6ef72b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Shape.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Shape_H_ +#define _cam_ts_Shape_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_RectangularShape.h" +#include "etsi_its_cam_ts_coding/cam_ts_CircularShape.h" +#include "etsi_its_cam_ts_coding/cam_ts_PolygonalShape.h" +#include "etsi_its_cam_ts_coding/cam_ts_EllipticalShape.h" +#include "etsi_its_cam_ts_coding/cam_ts_RadialShape.h" +#include "etsi_its_cam_ts_coding/cam_ts_RadialShapes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Shape_PR { + cam_ts_Shape_PR_NOTHING, /* No components present */ + cam_ts_Shape_PR_rectangular, + cam_ts_Shape_PR_circular, + cam_ts_Shape_PR_polygonal, + cam_ts_Shape_PR_elliptical, + cam_ts_Shape_PR_radial, + cam_ts_Shape_PR_radialShapes + /* Extensions may appear below */ + +} cam_ts_Shape_PR; + +/* cam_ts_Shape */ +typedef struct cam_ts_Shape { + cam_ts_Shape_PR present; + union cam_ts_Shape_u { + cam_ts_RectangularShape_t rectangular; + cam_ts_CircularShape_t circular; + cam_ts_PolygonalShape_t polygonal; + cam_ts_EllipticalShape_t elliptical; + cam_ts_RadialShape_t radial; + cam_ts_RadialShapes_t radialShapes; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Shape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Shape; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_Shape_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Shape_1[6]; +extern asn_per_constraints_t asn_PER_type_cam_ts_Shape_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Shape_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SignalViolationSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SignalViolationSubCauseCode.h new file mode 100644 index 000000000..bef529c75 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SignalViolationSubCauseCode.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SignalViolationSubCauseCode_H_ +#define _cam_ts_SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SignalViolationSubCauseCode { + cam_ts_SignalViolationSubCauseCode_unavailable = 0, + cam_ts_SignalViolationSubCauseCode_stopSignViolation = 1, + cam_ts_SignalViolationSubCauseCode_trafficLightViolation = 2, + cam_ts_SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_cam_ts_SignalViolationSubCauseCode; + +/* cam_ts_SignalViolationSubCauseCode */ +typedef long cam_ts_SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SignalViolationSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SignalViolationSubCauseCode; +asn_struct_free_f cam_ts_SignalViolationSubCauseCode_free; +asn_struct_print_f cam_ts_SignalViolationSubCauseCode_print; +asn_constr_check_f cam_ts_SignalViolationSubCauseCode_constraint; +per_type_decoder_f cam_ts_SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SignalViolationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SlowVehicleSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SlowVehicleSubCauseCode.h new file mode 100644 index 000000000..258a00d02 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SlowVehicleSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SlowVehicleSubCauseCode_H_ +#define _cam_ts_SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SlowVehicleSubCauseCode { + cam_ts_SlowVehicleSubCauseCode_unavailable = 0, + cam_ts_SlowVehicleSubCauseCode_maintenanceVehicle = 1, + cam_ts_SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + cam_ts_SlowVehicleSubCauseCode_abnormalLoad = 3, + cam_ts_SlowVehicleSubCauseCode_abnormalWideLoad = 4, + cam_ts_SlowVehicleSubCauseCode_convoy = 5, + cam_ts_SlowVehicleSubCauseCode_snowplough = 6, + cam_ts_SlowVehicleSubCauseCode_deicing = 7, + cam_ts_SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_cam_ts_SlowVehicleSubCauseCode; + +/* cam_ts_SlowVehicleSubCauseCode */ +typedef long cam_ts_SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SlowVehicleSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SlowVehicleSubCauseCode; +asn_struct_free_f cam_ts_SlowVehicleSubCauseCode_free; +asn_struct_print_f cam_ts_SlowVehicleSubCauseCode_print; +asn_constr_check_f cam_ts_SlowVehicleSubCauseCode_constraint; +per_type_decoder_f cam_ts_SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SlowVehicleSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialTransportContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialTransportContainer.h new file mode 100644 index 000000000..07976e31a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialTransportContainer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SpecialTransportContainer_H_ +#define _cam_ts_SpecialTransportContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_SpecialTransportType.h" +#include "etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_SpecialTransportContainer */ +typedef struct cam_ts_SpecialTransportContainer { + cam_ts_SpecialTransportType_t specialTransportType; + cam_ts_LightBarSirenInUse_t lightBarSirenInUse; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SpecialTransportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SpecialTransportContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_SpecialTransportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_SpecialTransportContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SpecialTransportContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialTransportType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialTransportType.h new file mode 100644 index 000000000..d0491f89a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialTransportType.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SpecialTransportType_H_ +#define _cam_ts_SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SpecialTransportType { + cam_ts_SpecialTransportType_heavyLoad = 0, + cam_ts_SpecialTransportType_excessWidth = 1, + cam_ts_SpecialTransportType_excessLength = 2, + cam_ts_SpecialTransportType_excessHeight = 3 +} e_cam_ts_SpecialTransportType; + +/* cam_ts_SpecialTransportType */ +typedef BIT_STRING_t cam_ts_SpecialTransportType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SpecialTransportType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SpecialTransportType; +asn_struct_free_f cam_ts_SpecialTransportType_free; +asn_struct_print_f cam_ts_SpecialTransportType_print; +asn_constr_check_f cam_ts_SpecialTransportType_constraint; +per_type_decoder_f cam_ts_SpecialTransportType_decode_uper; +per_type_encoder_f cam_ts_SpecialTransportType_encode_uper; +per_type_decoder_f cam_ts_SpecialTransportType_decode_aper; +per_type_encoder_f cam_ts_SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SpecialTransportType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialVehicleContainer.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialVehicleContainer.h new file mode 100644 index 000000000..f5727e451 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpecialVehicleContainer.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SpecialVehicleContainer_H_ +#define _cam_ts_SpecialVehicleContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_PublicTransportContainer.h" +#include "etsi_its_cam_ts_coding/cam_ts_SpecialTransportContainer.h" +#include "etsi_its_cam_ts_coding/cam_ts_DangerousGoodsContainer.h" +#include "etsi_its_cam_ts_coding/cam_ts_RoadWorksContainerBasic.h" +#include "etsi_its_cam_ts_coding/cam_ts_RescueContainer.h" +#include "etsi_its_cam_ts_coding/cam_ts_EmergencyContainer.h" +#include "etsi_its_cam_ts_coding/cam_ts_SafetyCarContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SpecialVehicleContainer_PR { + cam_ts_SpecialVehicleContainer_PR_NOTHING, /* No components present */ + cam_ts_SpecialVehicleContainer_PR_publicTransportContainer, + cam_ts_SpecialVehicleContainer_PR_specialTransportContainer, + cam_ts_SpecialVehicleContainer_PR_dangerousGoodsContainer, + cam_ts_SpecialVehicleContainer_PR_roadWorksContainerBasic, + cam_ts_SpecialVehicleContainer_PR_rescueContainer, + cam_ts_SpecialVehicleContainer_PR_emergencyContainer, + cam_ts_SpecialVehicleContainer_PR_safetyCarContainer + /* Extensions may appear below */ + +} cam_ts_SpecialVehicleContainer_PR; + +/* cam_ts_SpecialVehicleContainer */ +typedef struct cam_ts_SpecialVehicleContainer { + cam_ts_SpecialVehicleContainer_PR present; + union cam_ts_SpecialVehicleContainer_u { + cam_ts_PublicTransportContainer_t publicTransportContainer; + cam_ts_SpecialTransportContainer_t specialTransportContainer; + cam_ts_DangerousGoodsContainer_t dangerousGoodsContainer; + cam_ts_RoadWorksContainerBasic_t roadWorksContainerBasic; + cam_ts_RescueContainer_t rescueContainer; + cam_ts_EmergencyContainer_t emergencyContainer; + cam_ts_SafetyCarContainer_t safetyCarContainer; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SpecialVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SpecialVehicleContainer; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_SpecialVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_SpecialVehicleContainer_1[7]; +extern asn_per_constraints_t asn_PER_type_cam_ts_SpecialVehicleContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SpecialVehicleContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Speed.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Speed.h new file mode 100644 index 000000000..425c8d1f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Speed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Speed_H_ +#define _cam_ts_Speed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_SpeedValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Speed */ +typedef struct cam_ts_Speed { + cam_ts_SpeedValue_t speedValue; + cam_ts_SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Speed; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Speed_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Speed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Speed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedConfidence.h new file mode 100644 index 000000000..ec0c348e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SpeedConfidence_H_ +#define _cam_ts_SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SpeedConfidence { + cam_ts_SpeedConfidence_outOfRange = 126, + cam_ts_SpeedConfidence_unavailable = 127 +} e_cam_ts_SpeedConfidence; + +/* cam_ts_SpeedConfidence */ +typedef long cam_ts_SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SpeedConfidence; +asn_struct_free_f cam_ts_SpeedConfidence_free; +asn_struct_print_f cam_ts_SpeedConfidence_print; +asn_constr_check_f cam_ts_SpeedConfidence_constraint; +per_type_decoder_f cam_ts_SpeedConfidence_decode_uper; +per_type_encoder_f cam_ts_SpeedConfidence_encode_uper; +per_type_decoder_f cam_ts_SpeedConfidence_decode_aper; +per_type_encoder_f cam_ts_SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SpeedConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedLimit.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedLimit.h new file mode 100644 index 000000000..3f98bdc13 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedLimit.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SpeedLimit_H_ +#define _cam_ts_SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_SpeedLimit */ +typedef long cam_ts_SpeedLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SpeedLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SpeedLimit; +asn_struct_free_f cam_ts_SpeedLimit_free; +asn_struct_print_f cam_ts_SpeedLimit_print; +asn_constr_check_f cam_ts_SpeedLimit_constraint; +per_type_decoder_f cam_ts_SpeedLimit_decode_uper; +per_type_encoder_f cam_ts_SpeedLimit_encode_uper; +per_type_decoder_f cam_ts_SpeedLimit_decode_aper; +per_type_encoder_f cam_ts_SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SpeedLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedValue.h new file mode 100644 index 000000000..19ba1f6b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SpeedValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SpeedValue_H_ +#define _cam_ts_SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SpeedValue { + cam_ts_SpeedValue_standstill = 0, + cam_ts_SpeedValue_outOfRange = 16382, + cam_ts_SpeedValue_unavailable = 16383 +} e_cam_ts_SpeedValue; + +/* cam_ts_SpeedValue */ +typedef long cam_ts_SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SpeedValue; +asn_struct_free_f cam_ts_SpeedValue_free; +asn_struct_print_f cam_ts_SpeedValue_print; +asn_constr_check_f cam_ts_SpeedValue_constraint; +per_type_decoder_f cam_ts_SpeedValue_decode_uper; +per_type_encoder_f cam_ts_SpeedValue_encode_uper; +per_type_decoder_f cam_ts_SpeedValue_decode_aper; +per_type_encoder_f cam_ts_SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SpeedValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StabilityChangeIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StabilityChangeIndication.h new file mode 100644 index 000000000..7034a6918 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StabilityChangeIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StabilityChangeIndication_H_ +#define _cam_ts_StabilityChangeIndication_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StabilityLossProbability.h" +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_StabilityChangeIndication */ +typedef struct cam_ts_StabilityChangeIndication { + cam_ts_StabilityLossProbability_t lossProbability; + cam_ts_DeltaTimeTenthOfSecond_t actionDeltaTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_StabilityChangeIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StabilityChangeIndication; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StabilityChangeIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StabilityLossProbability.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StabilityLossProbability.h new file mode 100644 index 000000000..25008baa9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StabilityLossProbability.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StabilityLossProbability_H_ +#define _cam_ts_StabilityLossProbability_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_StabilityLossProbability { + cam_ts_StabilityLossProbability_stable = 0, + cam_ts_StabilityLossProbability_totalLossOfStability = 50, + cam_ts_StabilityLossProbability_unavailable = 63 +} e_cam_ts_StabilityLossProbability; + +/* cam_ts_StabilityLossProbability */ +typedef long cam_ts_StabilityLossProbability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StabilityLossProbability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StabilityLossProbability; +asn_struct_free_f cam_ts_StabilityLossProbability_free; +asn_struct_print_f cam_ts_StabilityLossProbability_print; +asn_constr_check_f cam_ts_StabilityLossProbability_constraint; +per_type_decoder_f cam_ts_StabilityLossProbability_decode_uper; +per_type_encoder_f cam_ts_StabilityLossProbability_encode_uper; +per_type_decoder_f cam_ts_StabilityLossProbability_decode_aper; +per_type_encoder_f cam_ts_StabilityLossProbability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StabilityLossProbability_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h new file mode 100644 index 000000000..1dc4f1d33 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StandardLength12b_H_ +#define _cam_ts_StandardLength12b_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_StandardLength12b */ +typedef long cam_ts_StandardLength12b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StandardLength12b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength12b; +asn_struct_free_f cam_ts_StandardLength12b_free; +asn_struct_print_f cam_ts_StandardLength12b_print; +asn_constr_check_f cam_ts_StandardLength12b_constraint; +per_type_decoder_f cam_ts_StandardLength12b_decode_uper; +per_type_encoder_f cam_ts_StandardLength12b_encode_uper; +per_type_decoder_f cam_ts_StandardLength12b_decode_aper; +per_type_encoder_f cam_ts_StandardLength12b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StandardLength12b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength1B.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength1B.h new file mode 100644 index 000000000..d256ca98e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength1B.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StandardLength1B_H_ +#define _cam_ts_StandardLength1B_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_StandardLength1B */ +typedef long cam_ts_StandardLength1B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StandardLength1B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength1B; +asn_struct_free_f cam_ts_StandardLength1B_free; +asn_struct_print_f cam_ts_StandardLength1B_print; +asn_constr_check_f cam_ts_StandardLength1B_constraint; +per_type_decoder_f cam_ts_StandardLength1B_decode_uper; +per_type_encoder_f cam_ts_StandardLength1B_encode_uper; +per_type_decoder_f cam_ts_StandardLength1B_decode_aper; +per_type_encoder_f cam_ts_StandardLength1B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StandardLength1B_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength2B.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength2B.h new file mode 100644 index 000000000..d353e6436 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength2B.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StandardLength2B_H_ +#define _cam_ts_StandardLength2B_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_StandardLength2B */ +typedef long cam_ts_StandardLength2B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StandardLength2B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength2B; +asn_struct_free_f cam_ts_StandardLength2B_free; +asn_struct_print_f cam_ts_StandardLength2B_print; +asn_constr_check_f cam_ts_StandardLength2B_constraint; +per_type_decoder_f cam_ts_StandardLength2B_decode_uper; +per_type_encoder_f cam_ts_StandardLength2B_encode_uper; +per_type_decoder_f cam_ts_StandardLength2B_decode_aper; +per_type_encoder_f cam_ts_StandardLength2B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StandardLength2B_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength3b.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength3b.h new file mode 100644 index 000000000..80d60ddd3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength3b.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StandardLength3b_H_ +#define _cam_ts_StandardLength3b_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_StandardLength3b { + cam_ts_StandardLength3b_lessThan50m = 0, + cam_ts_StandardLength3b_lessThan100m = 1, + cam_ts_StandardLength3b_lessThan200m = 2, + cam_ts_StandardLength3b_lessThan500m = 3, + cam_ts_StandardLength3b_lessThan1000m = 4, + cam_ts_StandardLength3b_lessThan5km = 5, + cam_ts_StandardLength3b_lessThan10km = 6, + cam_ts_StandardLength3b_over10km = 7 +} e_cam_ts_StandardLength3b; + +/* cam_ts_StandardLength3b */ +typedef long cam_ts_StandardLength3b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength3b; +asn_struct_free_f cam_ts_StandardLength3b_free; +asn_struct_print_f cam_ts_StandardLength3b_print; +asn_constr_check_f cam_ts_StandardLength3b_constraint; +per_type_decoder_f cam_ts_StandardLength3b_decode_uper; +per_type_encoder_f cam_ts_StandardLength3b_encode_uper; +per_type_decoder_f cam_ts_StandardLength3b_decode_aper; +per_type_encoder_f cam_ts_StandardLength3b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StandardLength3b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength9b.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength9b.h new file mode 100644 index 000000000..5b27277d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StandardLength9b.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StandardLength9b_H_ +#define _cam_ts_StandardLength9b_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_StandardLength9b */ +typedef long cam_ts_StandardLength9b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StandardLength9b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength9b; +asn_struct_free_f cam_ts_StandardLength9b_free; +asn_struct_print_f cam_ts_StandardLength9b_print; +asn_constr_check_f cam_ts_StandardLength9b_constraint; +per_type_decoder_f cam_ts_StandardLength9b_decode_uper; +per_type_encoder_f cam_ts_StandardLength9b_encode_uper; +per_type_decoder_f cam_ts_StandardLength9b_decode_aper; +per_type_encoder_f cam_ts_StandardLength9b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StandardLength9b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationId.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationId.h new file mode 100644 index 000000000..f6cd2c6a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationId.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StationId_H_ +#define _cam_ts_StationId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_StationId */ +typedef unsigned long cam_ts_StationId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StationId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StationId; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_StationId_specs_1; +asn_struct_free_f cam_ts_StationId_free; +asn_struct_print_f cam_ts_StationId_print; +asn_constr_check_f cam_ts_StationId_constraint; +per_type_decoder_f cam_ts_StationId_decode_uper; +per_type_encoder_f cam_ts_StationId_encode_uper; +per_type_decoder_f cam_ts_StationId_decode_aper; +per_type_encoder_f cam_ts_StationId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StationId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationType.h new file mode 100644 index 000000000..2089bd9f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StationType_H_ +#define _cam_ts_StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_StationType { + cam_ts_StationType_unknown = 0, + cam_ts_StationType_pedestrian = 1, + cam_ts_StationType_cyclist = 2, + cam_ts_StationType_moped = 3, + cam_ts_StationType_motorcycle = 4, + cam_ts_StationType_passengerCar = 5, + cam_ts_StationType_bus = 6, + cam_ts_StationType_lightTruck = 7, + cam_ts_StationType_heavyTruck = 8, + cam_ts_StationType_trailer = 9, + cam_ts_StationType_specialVehicle = 10, + cam_ts_StationType_tram = 11, + cam_ts_StationType_lightVruVehicle = 12, + cam_ts_StationType_animal = 13, + cam_ts_StationType_roadSideUnit = 15 +} e_cam_ts_StationType; + +/* cam_ts_StationType */ +typedef long cam_ts_StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StationType; +asn_struct_free_f cam_ts_StationType_free; +asn_struct_print_f cam_ts_StationType_print; +asn_constr_check_f cam_ts_StationType_constraint; +per_type_decoder_f cam_ts_StationType_decode_uper; +per_type_encoder_f cam_ts_StationType_encode_uper; +per_type_decoder_f cam_ts_StationType_decode_aper; +per_type_encoder_f cam_ts_StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationarySince.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationarySince.h new file mode 100644 index 000000000..da835f10b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationarySince.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StationarySince_H_ +#define _cam_ts_StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_StationarySince { + cam_ts_StationarySince_lessThan1Minute = 0, + cam_ts_StationarySince_lessThan2Minutes = 1, + cam_ts_StationarySince_lessThan15Minutes = 2, + cam_ts_StationarySince_equalOrGreater15Minutes = 3 +} e_cam_ts_StationarySince; + +/* cam_ts_StationarySince */ +typedef long cam_ts_StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StationarySince; +asn_struct_free_f cam_ts_StationarySince_free; +asn_struct_print_f cam_ts_StationarySince_print; +asn_constr_check_f cam_ts_StationarySince_constraint; +per_type_decoder_f cam_ts_StationarySince_decode_uper; +per_type_encoder_f cam_ts_StationarySince_encode_uper; +per_type_decoder_f cam_ts_StationarySince_decode_aper; +per_type_encoder_f cam_ts_StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StationarySince_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationaryVehicleSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationaryVehicleSubCauseCode.h new file mode 100644 index 000000000..901eda9d1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StationaryVehicleSubCauseCode.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StationaryVehicleSubCauseCode_H_ +#define _cam_ts_StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_StationaryVehicleSubCauseCode { + cam_ts_StationaryVehicleSubCauseCode_unavailable = 0, + cam_ts_StationaryVehicleSubCauseCode_humanProblem = 1, + cam_ts_StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + cam_ts_StationaryVehicleSubCauseCode_postCrash = 3, + cam_ts_StationaryVehicleSubCauseCode_publicTransportStop = 4, + cam_ts_StationaryVehicleSubCauseCode_carryingDangerousGoods = 5, + cam_ts_StationaryVehicleSubCauseCode_vehicleOnFire = 6 +} e_cam_ts_StationaryVehicleSubCauseCode; + +/* cam_ts_StationaryVehicleSubCauseCode */ +typedef long cam_ts_StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StationaryVehicleSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StationaryVehicleSubCauseCode; +asn_struct_free_f cam_ts_StationaryVehicleSubCauseCode_free; +asn_struct_print_f cam_ts_StationaryVehicleSubCauseCode_print; +asn_constr_check_f cam_ts_StationaryVehicleSubCauseCode_constraint; +per_type_decoder_f cam_ts_StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngle.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngle.h new file mode 100644 index 000000000..783914f43 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SteeringWheelAngle_H_ +#define _cam_ts_SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_SteeringWheelAngle */ +typedef struct cam_ts_SteeringWheelAngle { + cam_ts_SteeringWheelAngleValue_t steeringWheelAngleValue; + cam_ts_SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SteeringWheelAngle; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_SteeringWheelAngle_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_SteeringWheelAngle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SteeringWheelAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleConfidence.h new file mode 100644 index 000000000..b250a669c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SteeringWheelAngleConfidence_H_ +#define _cam_ts_SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SteeringWheelAngleConfidence { + cam_ts_SteeringWheelAngleConfidence_outOfRange = 126, + cam_ts_SteeringWheelAngleConfidence_unavailable = 127 +} e_cam_ts_SteeringWheelAngleConfidence; + +/* cam_ts_SteeringWheelAngleConfidence */ +typedef long cam_ts_SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SteeringWheelAngleConfidence; +asn_struct_free_f cam_ts_SteeringWheelAngleConfidence_free; +asn_struct_print_f cam_ts_SteeringWheelAngleConfidence_print; +asn_constr_check_f cam_ts_SteeringWheelAngleConfidence_constraint; +per_type_decoder_f cam_ts_SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f cam_ts_SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f cam_ts_SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f cam_ts_SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SteeringWheelAngleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleValue.h new file mode 100644 index 000000000..5c4499e32 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SteeringWheelAngleValue_H_ +#define _cam_ts_SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_SteeringWheelAngleValue { + cam_ts_SteeringWheelAngleValue_negativeOutOfRange = -511, + cam_ts_SteeringWheelAngleValue_positiveOutOfRange = 511, + cam_ts_SteeringWheelAngleValue_unavailable = 512 +} e_cam_ts_SteeringWheelAngleValue; + +/* cam_ts_SteeringWheelAngleValue */ +typedef long cam_ts_SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SteeringWheelAngleValue; +asn_struct_free_f cam_ts_SteeringWheelAngleValue_free; +asn_struct_print_f cam_ts_SteeringWheelAngleValue_print; +asn_constr_check_f cam_ts_SteeringWheelAngleValue_constraint; +per_type_decoder_f cam_ts_SteeringWheelAngleValue_decode_uper; +per_type_encoder_f cam_ts_SteeringWheelAngleValue_encode_uper; +per_type_decoder_f cam_ts_SteeringWheelAngleValue_decode_aper; +per_type_encoder_f cam_ts_SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SteeringWheelAngleValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StoredInformationType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StoredInformationType.h new file mode 100644 index 000000000..95904737c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_StoredInformationType.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_StoredInformationType_H_ +#define _cam_ts_StoredInformationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_StoredInformationType { + cam_ts_StoredInformationType_undefined = 0, + cam_ts_StoredInformationType_staticDb = 1, + cam_ts_StoredInformationType_dynamicDb = 2, + cam_ts_StoredInformationType_realTimeDb = 3, + cam_ts_StoredInformationType_map = 4 +} e_cam_ts_StoredInformationType; + +/* cam_ts_StoredInformationType */ +typedef BIT_STRING_t cam_ts_StoredInformationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_StoredInformationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_StoredInformationType; +asn_struct_free_f cam_ts_StoredInformationType_free; +asn_struct_print_f cam_ts_StoredInformationType_print; +asn_constr_check_f cam_ts_StoredInformationType_constraint; +per_type_decoder_f cam_ts_StoredInformationType_decode_uper; +per_type_encoder_f cam_ts_StoredInformationType_encode_uper; +per_type_decoder_f cam_ts_StoredInformationType_decode_aper; +per_type_encoder_f cam_ts_StoredInformationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_StoredInformationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SubCauseCodeType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SubCauseCodeType.h new file mode 100644 index 000000000..93070dedf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_SubCauseCodeType.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_SubCauseCodeType_H_ +#define _cam_ts_SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_SubCauseCodeType */ +typedef long cam_ts_SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_SubCauseCodeType; +asn_struct_free_f cam_ts_SubCauseCodeType_free; +asn_struct_print_f cam_ts_SubCauseCodeType_print; +asn_constr_check_f cam_ts_SubCauseCodeType_constraint; +per_type_decoder_f cam_ts_SubCauseCodeType_decode_uper; +per_type_encoder_f cam_ts_SubCauseCodeType_encode_uper; +per_type_decoder_f cam_ts_SubCauseCodeType_decode_aper; +per_type_encoder_f cam_ts_SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_SubCauseCodeType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Temperature.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Temperature.h new file mode 100644 index 000000000..3dc027984 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Temperature.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Temperature_H_ +#define _cam_ts_Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Temperature { + cam_ts_Temperature_equalOrSmallerThanMinus60Deg = -60, + cam_ts_Temperature_equalOrGreaterThan67Deg = 67 +} e_cam_ts_Temperature; + +/* cam_ts_Temperature */ +typedef long cam_ts_Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Temperature; +asn_struct_free_f cam_ts_Temperature_free; +asn_struct_print_f cam_ts_Temperature_print; +asn_constr_check_f cam_ts_Temperature_constraint; +per_type_decoder_f cam_ts_Temperature_decode_uper; +per_type_encoder_f cam_ts_Temperature_encode_uper; +per_type_decoder_f cam_ts_Temperature_decode_aper; +per_type_encoder_f cam_ts_Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Temperature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TimestampIts.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TimestampIts.h new file mode 100644 index 000000000..929202a53 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TimestampIts.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TimestampIts_H_ +#define _cam_ts_TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_TimestampIts */ +typedef INTEGER_t cam_ts_TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TimestampIts; +asn_struct_free_f cam_ts_TimestampIts_free; +asn_struct_print_f cam_ts_TimestampIts_print; +asn_constr_check_f cam_ts_TimestampIts_constraint; +per_type_decoder_f cam_ts_TimestampIts_decode_uper; +per_type_encoder_f cam_ts_TimestampIts_encode_uper; +per_type_decoder_f cam_ts_TimestampIts_decode_aper; +per_type_encoder_f cam_ts_TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TimestampIts_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Traces.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Traces.h new file mode 100644 index 000000000..e9d5d99d9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Traces.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Traces_H_ +#define _cam_ts_Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_Path; + +/* cam_ts_Traces */ +typedef struct cam_ts_Traces { + A_SEQUENCE_OF(struct cam_ts_Path) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Traces; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_Path.h" + +#endif /* _cam_ts_Traces_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TracesExtended.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TracesExtended.h new file mode 100644 index 000000000..4aac92367 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TracesExtended.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TracesExtended_H_ +#define _cam_ts_TracesExtended_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_PathExtended; + +/* cam_ts_TracesExtended */ +typedef struct cam_ts_TracesExtended { + A_SEQUENCE_OF(struct cam_ts_PathExtended) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_TracesExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TracesExtended; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_PathExtended.h" + +#endif /* _cam_ts_TracesExtended_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficConditionSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficConditionSubCauseCode.h new file mode 100644 index 000000000..050bdc479 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficConditionSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrafficConditionSubCauseCode_H_ +#define _cam_ts_TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TrafficConditionSubCauseCode { + cam_ts_TrafficConditionSubCauseCode_unavailable = 0, + cam_ts_TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + cam_ts_TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + cam_ts_TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + cam_ts_TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + cam_ts_TrafficConditionSubCauseCode_trafficJam = 5, + cam_ts_TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + cam_ts_TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + cam_ts_TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8, + cam_ts_TrafficConditionSubCauseCode_trafficJamStable = 9 +} e_cam_ts_TrafficConditionSubCauseCode; + +/* cam_ts_TrafficConditionSubCauseCode */ +typedef long cam_ts_TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_TrafficConditionSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficConditionSubCauseCode; +asn_struct_free_f cam_ts_TrafficConditionSubCauseCode_free; +asn_struct_print_f cam_ts_TrafficConditionSubCauseCode_print; +asn_constr_check_f cam_ts_TrafficConditionSubCauseCode_constraint; +per_type_decoder_f cam_ts_TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrafficConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficDirection.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficDirection.h new file mode 100644 index 000000000..61c4883f4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficDirection.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrafficDirection_H_ +#define _cam_ts_TrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TrafficDirection { + cam_ts_TrafficDirection_allTrafficDirections = 0, + cam_ts_TrafficDirection_sameAsReferenceDirection_upstreamOfReferencePosition = 1, + cam_ts_TrafficDirection_sameAsReferenceDirection_downstreamOfReferencePosition = 2, + cam_ts_TrafficDirection_oppositeToReferenceDirection = 3 +} e_cam_ts_TrafficDirection; + +/* cam_ts_TrafficDirection */ +typedef long cam_ts_TrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficDirection; +asn_struct_free_f cam_ts_TrafficDirection_free; +asn_struct_print_f cam_ts_TrafficDirection_print; +asn_constr_check_f cam_ts_TrafficDirection_constraint; +per_type_decoder_f cam_ts_TrafficDirection_decode_uper; +per_type_encoder_f cam_ts_TrafficDirection_encode_uper; +per_type_decoder_f cam_ts_TrafficDirection_decode_aper; +per_type_encoder_f cam_ts_TrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrafficDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficIslandPosition.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficIslandPosition.h new file mode 100644 index 000000000..4b6e0efa8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficIslandPosition.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrafficIslandPosition_H_ +#define _cam_ts_TrafficIslandPosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_LanePositionAndType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_TrafficIslandPosition */ +typedef struct cam_ts_TrafficIslandPosition { + cam_ts_LanePositionAndType_t oneSide; + cam_ts_LanePositionAndType_t otherSide; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_TrafficIslandPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficIslandPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_TrafficIslandPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_TrafficIslandPosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrafficIslandPosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficParticipantType.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficParticipantType.h new file mode 100644 index 000000000..7f3ef5d26 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficParticipantType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrafficParticipantType_H_ +#define _cam_ts_TrafficParticipantType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TrafficParticipantType { + cam_ts_TrafficParticipantType_unknown = 0, + cam_ts_TrafficParticipantType_pedestrian = 1, + cam_ts_TrafficParticipantType_cyclist = 2, + cam_ts_TrafficParticipantType_moped = 3, + cam_ts_TrafficParticipantType_motorcycle = 4, + cam_ts_TrafficParticipantType_passengerCar = 5, + cam_ts_TrafficParticipantType_bus = 6, + cam_ts_TrafficParticipantType_lightTruck = 7, + cam_ts_TrafficParticipantType_heavyTruck = 8, + cam_ts_TrafficParticipantType_trailer = 9, + cam_ts_TrafficParticipantType_specialVehicle = 10, + cam_ts_TrafficParticipantType_tram = 11, + cam_ts_TrafficParticipantType_lightVruVehicle = 12, + cam_ts_TrafficParticipantType_animal = 13, + cam_ts_TrafficParticipantType_agricultural = 14, + cam_ts_TrafficParticipantType_roadSideUnit = 15 +} e_cam_ts_TrafficParticipantType; + +/* cam_ts_TrafficParticipantType */ +typedef long cam_ts_TrafficParticipantType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_TrafficParticipantType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficParticipantType; +asn_struct_free_f cam_ts_TrafficParticipantType_free; +asn_struct_print_f cam_ts_TrafficParticipantType_print; +asn_constr_check_f cam_ts_TrafficParticipantType_constraint; +per_type_decoder_f cam_ts_TrafficParticipantType_decode_uper; +per_type_encoder_f cam_ts_TrafficParticipantType_encode_uper; +per_type_decoder_f cam_ts_TrafficParticipantType_decode_aper; +per_type_encoder_f cam_ts_TrafficParticipantType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrafficParticipantType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficRule.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficRule.h new file mode 100644 index 000000000..13501b03f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrafficRule.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrafficRule_H_ +#define _cam_ts_TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TrafficRule { + cam_ts_TrafficRule_noPassing = 0, + cam_ts_TrafficRule_noPassingForTrucks = 1, + cam_ts_TrafficRule_passToRight = 2, + cam_ts_TrafficRule_passToLeft = 3, + /* + * Enumeration is extensible + */ + cam_ts_TrafficRule_passToLeftOrRight = 4 +} e_cam_ts_TrafficRule; + +/* cam_ts_TrafficRule */ +typedef long cam_ts_TrafficRule_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_TrafficRule_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficRule; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_TrafficRule_specs_1; +asn_struct_free_f cam_ts_TrafficRule_free; +asn_struct_print_f cam_ts_TrafficRule_print; +asn_constr_check_f cam_ts_TrafficRule_constraint; +per_type_decoder_f cam_ts_TrafficRule_decode_uper; +per_type_encoder_f cam_ts_TrafficRule_encode_uper; +per_type_decoder_f cam_ts_TrafficRule_decode_aper; +per_type_encoder_f cam_ts_TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrafficRule_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrailerData.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrailerData.h new file mode 100644 index 000000000..db6703df5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrailerData.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrailerData_H_ +#define _cam_ts_TrailerData_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_VehicleWidth.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_TrailerData */ +typedef struct cam_ts_TrailerData { + cam_ts_Identifier1B_t refPointId; + cam_ts_StandardLength1B_t hitchPointOffset; + cam_ts_StandardLength1B_t *frontOverhang; /* OPTIONAL */ + cam_ts_StandardLength1B_t *rearOverhang; /* OPTIONAL */ + cam_ts_VehicleWidth_t *trailerWidth; /* OPTIONAL */ + cam_ts_CartesianAngle_t hitchAngle; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_TrailerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrailerData; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrailerData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrailerPresenceInformation.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrailerPresenceInformation.h new file mode 100644 index 000000000..199872296 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrailerPresenceInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrailerPresenceInformation_H_ +#define _cam_ts_TrailerPresenceInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TrailerPresenceInformation { + cam_ts_TrailerPresenceInformation_noTrailerPresent = 0, + cam_ts_TrailerPresenceInformation_trailerPresentWithKnownLength = 1, + cam_ts_TrailerPresenceInformation_trailerPresentWithUnknownLength = 2, + cam_ts_TrailerPresenceInformation_trailerPresenceIsUnknown = 3, + cam_ts_TrailerPresenceInformation_unavailable = 4 +} e_cam_ts_TrailerPresenceInformation; + +/* cam_ts_TrailerPresenceInformation */ +typedef long cam_ts_TrailerPresenceInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_TrailerPresenceInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrailerPresenceInformation; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_TrailerPresenceInformation_specs_1; +asn_struct_free_f cam_ts_TrailerPresenceInformation_free; +asn_struct_print_f cam_ts_TrailerPresenceInformation_print; +asn_constr_check_f cam_ts_TrailerPresenceInformation_constraint; +per_type_decoder_f cam_ts_TrailerPresenceInformation_decode_uper; +per_type_encoder_f cam_ts_TrailerPresenceInformation_encode_uper; +per_type_decoder_f cam_ts_TrailerPresenceInformation_decode_aper; +per_type_encoder_f cam_ts_TrailerPresenceInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrailerPresenceInformation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionConfidence.h new file mode 100644 index 000000000..f8dcb3c2e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionConfidence.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrajectoryInterceptionConfidence_H_ +#define _cam_ts_TrajectoryInterceptionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TrajectoryInterceptionConfidence { + cam_ts_TrajectoryInterceptionConfidence_lessthan50percent = 0, + cam_ts_TrajectoryInterceptionConfidence_between50and70Percent = 1, + cam_ts_TrajectoryInterceptionConfidence_between70and90Percent = 2, + cam_ts_TrajectoryInterceptionConfidence_above90Percent = 3 +} e_cam_ts_TrajectoryInterceptionConfidence; + +/* cam_ts_TrajectoryInterceptionConfidence */ +typedef long cam_ts_TrajectoryInterceptionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_TrajectoryInterceptionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrajectoryInterceptionConfidence; +asn_struct_free_f cam_ts_TrajectoryInterceptionConfidence_free; +asn_struct_print_f cam_ts_TrajectoryInterceptionConfidence_print; +asn_constr_check_f cam_ts_TrajectoryInterceptionConfidence_constraint; +per_type_decoder_f cam_ts_TrajectoryInterceptionConfidence_decode_uper; +per_type_encoder_f cam_ts_TrajectoryInterceptionConfidence_encode_uper; +per_type_decoder_f cam_ts_TrajectoryInterceptionConfidence_decode_aper; +per_type_encoder_f cam_ts_TrajectoryInterceptionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrajectoryInterceptionConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionIndication.h new file mode 100644 index 000000000..baa1803c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionIndication.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrajectoryInterceptionIndication_H_ +#define _cam_ts_TrajectoryInterceptionIndication_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_StationId.h" +#include "etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionProbability.h" +#include "etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_TrajectoryInterceptionIndication */ +typedef struct cam_ts_TrajectoryInterceptionIndication { + cam_ts_StationId_t *subjectStation; /* OPTIONAL */ + cam_ts_TrajectoryInterceptionProbability_t trajectoryInterceptionProbability; + cam_ts_TrajectoryInterceptionConfidence_t *trajectoryInterceptionConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_TrajectoryInterceptionIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrajectoryInterceptionIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_TrajectoryInterceptionIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_TrajectoryInterceptionIndication_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrajectoryInterceptionIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionProbability.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionProbability.h new file mode 100644 index 000000000..2b90bf2df --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionProbability.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TrajectoryInterceptionProbability_H_ +#define _cam_ts_TrajectoryInterceptionProbability_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TrajectoryInterceptionProbability { + cam_ts_TrajectoryInterceptionProbability_unavailable = 63 +} e_cam_ts_TrajectoryInterceptionProbability; + +/* cam_ts_TrajectoryInterceptionProbability */ +typedef long cam_ts_TrajectoryInterceptionProbability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_TrajectoryInterceptionProbability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TrajectoryInterceptionProbability; +asn_struct_free_f cam_ts_TrajectoryInterceptionProbability_free; +asn_struct_print_f cam_ts_TrajectoryInterceptionProbability_print; +asn_constr_check_f cam_ts_TrajectoryInterceptionProbability_constraint; +per_type_decoder_f cam_ts_TrajectoryInterceptionProbability_decode_uper; +per_type_encoder_f cam_ts_TrajectoryInterceptionProbability_encode_uper; +per_type_decoder_f cam_ts_TrajectoryInterceptionProbability_decode_aper; +per_type_encoder_f cam_ts_TrajectoryInterceptionProbability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TrajectoryInterceptionProbability_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TransmissionInterval.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TransmissionInterval.h new file mode 100644 index 000000000..5cbac3820 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TransmissionInterval.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TransmissionInterval_H_ +#define _cam_ts_TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_TransmissionInterval */ +typedef long cam_ts_TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TransmissionInterval; +asn_struct_free_f cam_ts_TransmissionInterval_free; +asn_struct_print_f cam_ts_TransmissionInterval_print; +asn_constr_check_f cam_ts_TransmissionInterval_constraint; +per_type_decoder_f cam_ts_TransmissionInterval_decode_uper; +per_type_encoder_f cam_ts_TransmissionInterval_encode_uper; +per_type_decoder_f cam_ts_TransmissionInterval_decode_aper; +per_type_encoder_f cam_ts_TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TransmissionInterval_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TurningDirection.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TurningDirection.h new file mode 100644 index 000000000..b62b6e28d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TurningDirection.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TurningDirection_H_ +#define _cam_ts_TurningDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TurningDirection { + cam_ts_TurningDirection_left = 0, + cam_ts_TurningDirection_right = 1 +} e_cam_ts_TurningDirection; + +/* cam_ts_TurningDirection */ +typedef long cam_ts_TurningDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_TurningDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TurningDirection; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_TurningDirection_specs_1; +asn_struct_free_f cam_ts_TurningDirection_free; +asn_struct_print_f cam_ts_TurningDirection_print; +asn_constr_check_f cam_ts_TurningDirection_constraint; +per_type_decoder_f cam_ts_TurningDirection_decode_uper; +per_type_encoder_f cam_ts_TurningDirection_encode_uper; +per_type_decoder_f cam_ts_TurningDirection_decode_aper; +per_type_encoder_f cam_ts_TurningDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TurningDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TurningRadius.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TurningRadius.h new file mode 100644 index 000000000..6da7f2352 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_TurningRadius.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_TurningRadius_H_ +#define _cam_ts_TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_TurningRadius { + cam_ts_TurningRadius_outOfRange = 254, + cam_ts_TurningRadius_unavailable = 255 +} e_cam_ts_TurningRadius; + +/* cam_ts_TurningRadius */ +typedef long cam_ts_TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_TurningRadius; +asn_struct_free_f cam_ts_TurningRadius_free; +asn_struct_print_f cam_ts_TurningRadius_print; +asn_constr_check_f cam_ts_TurningRadius_constraint; +per_type_decoder_f cam_ts_TurningRadius_decode_uper; +per_type_encoder_f cam_ts_TurningRadius_encode_uper; +per_type_decoder_f cam_ts_TurningRadius_decode_aper; +per_type_encoder_f cam_ts_TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_TurningRadius_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_UsageIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_UsageIndication.h new file mode 100644 index 000000000..d470d2480 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_UsageIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_UsageIndication_H_ +#define _cam_ts_UsageIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_UsageIndication { + cam_ts_UsageIndication_noIndication = 0, + cam_ts_UsageIndication_specialUse = 1, + cam_ts_UsageIndication_rescueOperation = 2 + /* + * Enumeration is extensible + */ +} e_cam_ts_UsageIndication; + +/* cam_ts_UsageIndication */ +typedef long cam_ts_UsageIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_UsageIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_UsageIndication; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_UsageIndication_specs_1; +asn_struct_free_f cam_ts_UsageIndication_free; +asn_struct_print_f cam_ts_UsageIndication_print; +asn_constr_check_f cam_ts_UsageIndication_constraint; +per_type_decoder_f cam_ts_UsageIndication_decode_uper; +per_type_encoder_f cam_ts_UsageIndication_encode_uper; +per_type_decoder_f cam_ts_UsageIndication_decode_aper; +per_type_encoder_f cam_ts_UsageIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_UsageIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VDS.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VDS.h new file mode 100644 index 000000000..b7f409d0f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VDS.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VDS_H_ +#define _cam_ts_VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_VDS */ +typedef IA5String_t cam_ts_VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VDS; +asn_struct_free_f cam_ts_VDS_free; +asn_struct_print_f cam_ts_VDS_print; +asn_constr_check_f cam_ts_VDS_constraint; +per_type_decoder_f cam_ts_VDS_decode_uper; +per_type_encoder_f cam_ts_VDS_encode_uper; +per_type_decoder_f cam_ts_VDS_decode_aper; +per_type_encoder_f cam_ts_VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VDS_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ValidityDuration.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ValidityDuration.h new file mode 100644 index 000000000..22263c667 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_ValidityDuration.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_ValidityDuration_H_ +#define _cam_ts_ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_ValidityDuration { + cam_ts_ValidityDuration_timeOfDetection = 0, + cam_ts_ValidityDuration_oneSecondAfterDetection = 1 +} e_cam_ts_ValidityDuration; + +/* cam_ts_ValidityDuration */ +typedef long cam_ts_ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_ValidityDuration; +asn_struct_free_f cam_ts_ValidityDuration_free; +asn_struct_print_f cam_ts_ValidityDuration_print; +asn_constr_check_f cam_ts_ValidityDuration_constraint; +per_type_decoder_f cam_ts_ValidityDuration_decode_uper; +per_type_encoder_f cam_ts_ValidityDuration_encode_uper; +per_type_decoder_f cam_ts_ValidityDuration_decode_aper; +per_type_encoder_f cam_ts_ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ValidityDuration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VarLengthNumber.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VarLengthNumber.h new file mode 100644 index 000000000..79948b019 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VarLengthNumber.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VarLengthNumber_H_ +#define _cam_ts_VarLengthNumber_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_cam_ts_coding/cam_ts_Ext1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VarLengthNumber_PR { + cam_ts_VarLengthNumber_PR_NOTHING, /* No components present */ + cam_ts_VarLengthNumber_PR_content, + cam_ts_VarLengthNumber_PR_extension +} cam_ts_VarLengthNumber_PR; + +/* cam_ts_VarLengthNumber */ +typedef struct cam_ts_VarLengthNumber { + cam_ts_VarLengthNumber_PR present; + union cam_ts_VarLengthNumber_u { + long content; + cam_ts_Ext1_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VarLengthNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VarLengthNumber; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VarLengthNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleBreakdownSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleBreakdownSubCauseCode.h new file mode 100644 index 000000000..2b211504b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleBreakdownSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleBreakdownSubCauseCode_H_ +#define _cam_ts_VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VehicleBreakdownSubCauseCode { + cam_ts_VehicleBreakdownSubCauseCode_unavailable = 0, + cam_ts_VehicleBreakdownSubCauseCode_lackOfFuel = 1, + cam_ts_VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + cam_ts_VehicleBreakdownSubCauseCode_engineProblem = 3, + cam_ts_VehicleBreakdownSubCauseCode_transmissionProblem = 4, + cam_ts_VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + cam_ts_VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + cam_ts_VehicleBreakdownSubCauseCode_steeringProblem = 7, + cam_ts_VehicleBreakdownSubCauseCode_tyrePuncture = 8, + cam_ts_VehicleBreakdownSubCauseCode_tyrePressureProblem = 9, + cam_ts_VehicleBreakdownSubCauseCode_vehicleOnFire = 10 +} e_cam_ts_VehicleBreakdownSubCauseCode; + +/* cam_ts_VehicleBreakdownSubCauseCode */ +typedef long cam_ts_VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VehicleBreakdownSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleBreakdownSubCauseCode; +asn_struct_free_f cam_ts_VehicleBreakdownSubCauseCode_free; +asn_struct_print_f cam_ts_VehicleBreakdownSubCauseCode_print; +asn_constr_check_f cam_ts_VehicleBreakdownSubCauseCode_constraint; +per_type_decoder_f cam_ts_VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleHeight.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleHeight.h new file mode 100644 index 000000000..7e51e1331 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleHeight.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleHeight_H_ +#define _cam_ts_VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VehicleHeight { + cam_ts_VehicleHeight_outOfRange = 126, + cam_ts_VehicleHeight_unavailable = 127 +} e_cam_ts_VehicleHeight; + +/* cam_ts_VehicleHeight */ +typedef long cam_ts_VehicleHeight_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleHeight; +asn_struct_free_f cam_ts_VehicleHeight_free; +asn_struct_print_f cam_ts_VehicleHeight_print; +asn_constr_check_f cam_ts_VehicleHeight_constraint; +per_type_decoder_f cam_ts_VehicleHeight_decode_uper; +per_type_encoder_f cam_ts_VehicleHeight_encode_uper; +per_type_decoder_f cam_ts_VehicleHeight_decode_aper; +per_type_encoder_f cam_ts_VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleHeight_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleIdentification.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleIdentification.h new file mode 100644 index 000000000..3a7f19740 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleIdentification_H_ +#define _cam_ts_VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_WMInumber.h" +#include "etsi_its_cam_ts_coding/cam_ts_VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_VehicleIdentification */ +typedef struct cam_ts_VehicleIdentification { + cam_ts_WMInumber_t *wMInumber; /* OPTIONAL */ + cam_ts_VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleIdentification_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLength.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLength.h new file mode 100644 index 000000000..3fa2b2f71 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLength.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleLength_H_ +#define _cam_ts_VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_VehicleLengthValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_VehicleLength */ +typedef struct cam_ts_VehicleLength { + cam_ts_VehicleLengthValue_t vehicleLengthValue; + cam_ts_VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleLength; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VehicleLength_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_VehicleLength_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthConfidenceIndication.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthConfidenceIndication.h new file mode 100644 index 000000000..1500363b6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthConfidenceIndication.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleLengthConfidenceIndication_H_ +#define _cam_ts_VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VehicleLengthConfidenceIndication { + cam_ts_VehicleLengthConfidenceIndication_noTrailerPresent = 0, + cam_ts_VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + cam_ts_VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + cam_ts_VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + cam_ts_VehicleLengthConfidenceIndication_unavailable = 4 +} e_cam_ts_VehicleLengthConfidenceIndication; + +/* cam_ts_VehicleLengthConfidenceIndication */ +typedef long cam_ts_VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f cam_ts_VehicleLengthConfidenceIndication_free; +asn_struct_print_f cam_ts_VehicleLengthConfidenceIndication_print; +asn_constr_check_f cam_ts_VehicleLengthConfidenceIndication_constraint; +per_type_decoder_f cam_ts_VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f cam_ts_VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f cam_ts_VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f cam_ts_VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthV2.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthV2.h new file mode 100644 index 000000000..e72ef68a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthV2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleLengthV2_H_ +#define _cam_ts_VehicleLengthV2_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_VehicleLengthValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_TrailerPresenceInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_VehicleLengthV2 */ +typedef struct cam_ts_VehicleLengthV2 { + cam_ts_VehicleLengthValue_t vehicleLengthValue; + cam_ts_TrailerPresenceInformation_t trailerPresenceInformation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VehicleLengthV2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleLengthV2; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleLengthV2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthValue.h new file mode 100644 index 000000000..d58f9e5b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleLengthValue.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleLengthValue_H_ +#define _cam_ts_VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VehicleLengthValue { + cam_ts_VehicleLengthValue_outOfRange = 1022, + cam_ts_VehicleLengthValue_unavailable = 1023 +} e_cam_ts_VehicleLengthValue; + +/* cam_ts_VehicleLengthValue */ +typedef long cam_ts_VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleLengthValue; +asn_struct_free_f cam_ts_VehicleLengthValue_free; +asn_struct_print_f cam_ts_VehicleLengthValue_print; +asn_constr_check_f cam_ts_VehicleLengthValue_constraint; +per_type_decoder_f cam_ts_VehicleLengthValue_decode_uper; +per_type_encoder_f cam_ts_VehicleLengthValue_encode_uper; +per_type_decoder_f cam_ts_VehicleLengthValue_decode_aper; +per_type_encoder_f cam_ts_VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleLengthValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleMass.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleMass.h new file mode 100644 index 000000000..a83bb1bde --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleMass.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleMass_H_ +#define _cam_ts_VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VehicleMass { + cam_ts_VehicleMass_outOfRange = 1023, + cam_ts_VehicleMass_unavailable = 1024 +} e_cam_ts_VehicleMass; + +/* cam_ts_VehicleMass */ +typedef long cam_ts_VehicleMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleMass; +asn_struct_free_f cam_ts_VehicleMass_free; +asn_struct_print_f cam_ts_VehicleMass_print; +asn_constr_check_f cam_ts_VehicleMass_constraint; +per_type_decoder_f cam_ts_VehicleMass_decode_uper; +per_type_encoder_f cam_ts_VehicleMass_encode_uper; +per_type_decoder_f cam_ts_VehicleMass_decode_aper; +per_type_encoder_f cam_ts_VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleMass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleRole.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleRole.h new file mode 100644 index 000000000..7cd63fda5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleRole.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleRole_H_ +#define _cam_ts_VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VehicleRole { + cam_ts_VehicleRole_default = 0, + cam_ts_VehicleRole_publicTransport = 1, + cam_ts_VehicleRole_specialTransport = 2, + cam_ts_VehicleRole_dangerousGoods = 3, + cam_ts_VehicleRole_roadWork = 4, + cam_ts_VehicleRole_rescue = 5, + cam_ts_VehicleRole_emergency = 6, + cam_ts_VehicleRole_safetyCar = 7, + cam_ts_VehicleRole_agriculture = 8, + cam_ts_VehicleRole_commercial = 9, + cam_ts_VehicleRole_military = 10, + cam_ts_VehicleRole_roadOperator = 11, + cam_ts_VehicleRole_taxi = 12, + cam_ts_VehicleRole_uvar = 13, + cam_ts_VehicleRole_rfu1 = 14, + cam_ts_VehicleRole_rfu2 = 15 +} e_cam_ts_VehicleRole; + +/* cam_ts_VehicleRole */ +typedef long cam_ts_VehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_VehicleRole_specs_1; +asn_struct_free_f cam_ts_VehicleRole_free; +asn_struct_print_f cam_ts_VehicleRole_print; +asn_constr_check_f cam_ts_VehicleRole_constraint; +per_type_decoder_f cam_ts_VehicleRole_decode_uper; +per_type_encoder_f cam_ts_VehicleRole_encode_uper; +per_type_decoder_f cam_ts_VehicleRole_decode_aper; +per_type_encoder_f cam_ts_VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleWidth.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleWidth.h new file mode 100644 index 000000000..6f76f6fbd --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VehicleWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VehicleWidth_H_ +#define _cam_ts_VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VehicleWidth { + cam_ts_VehicleWidth_outOfRange = 61, + cam_ts_VehicleWidth_unavailable = 62 +} e_cam_ts_VehicleWidth; + +/* cam_ts_VehicleWidth */ +typedef long cam_ts_VehicleWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VehicleWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleWidth; +asn_struct_free_f cam_ts_VehicleWidth_free; +asn_struct_print_f cam_ts_VehicleWidth_print; +asn_constr_check_f cam_ts_VehicleWidth_constraint; +per_type_decoder_f cam_ts_VehicleWidth_decode_uper; +per_type_encoder_f cam_ts_VehicleWidth_encode_uper; +per_type_decoder_f cam_ts_VehicleWidth_decode_aper; +per_type_encoder_f cam_ts_VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VehicleWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Velocity3dWithConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Velocity3dWithConfidence.h new file mode 100644 index 000000000..c8f0d42ae --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Velocity3dWithConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Velocity3dWithConfidence_H_ +#define _cam_ts_Velocity3dWithConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_VelocityPolarWithZ.h" +#include "etsi_its_cam_ts_coding/cam_ts_VelocityCartesian.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Velocity3dWithConfidence_PR { + cam_ts_Velocity3dWithConfidence_PR_NOTHING, /* No components present */ + cam_ts_Velocity3dWithConfidence_PR_polarVelocity, + cam_ts_Velocity3dWithConfidence_PR_cartesianVelocity +} cam_ts_Velocity3dWithConfidence_PR; + +/* cam_ts_Velocity3dWithConfidence */ +typedef struct cam_ts_Velocity3dWithConfidence { + cam_ts_Velocity3dWithConfidence_PR present; + union cam_ts_Velocity3dWithConfidence_u { + cam_ts_VelocityPolarWithZ_t polarVelocity; + cam_ts_VelocityCartesian_t cartesianVelocity; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Velocity3dWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Velocity3dWithConfidence; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_Velocity3dWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_Velocity3dWithConfidence_1[2]; +extern asn_per_constraints_t asn_PER_type_cam_ts_Velocity3dWithConfidence_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Velocity3dWithConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityCartesian.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityCartesian.h new file mode 100644 index 000000000..877580c07 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityCartesian.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VelocityCartesian_H_ +#define _cam_ts_VelocityCartesian_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_VelocityComponent.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_VelocityComponent; + +/* cam_ts_VelocityCartesian */ +typedef struct cam_ts_VelocityCartesian { + cam_ts_VelocityComponent_t xVelocity; + cam_ts_VelocityComponent_t yVelocity; + struct cam_ts_VelocityComponent *zVelocity; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VelocityCartesian_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VelocityCartesian; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VelocityCartesian_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_VelocityCartesian_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_VelocityComponent.h" + +#endif /* _cam_ts_VelocityCartesian_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityComponent.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityComponent.h new file mode 100644 index 000000000..f818991f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityComponent.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VelocityComponent_H_ +#define _cam_ts_VelocityComponent_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_VelocityComponentValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_VelocityComponent */ +typedef struct cam_ts_VelocityComponent { + cam_ts_VelocityComponentValue_t value; + cam_ts_SpeedConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VelocityComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VelocityComponent; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VelocityComponent_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_VelocityComponent_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VelocityComponent_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityComponentValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityComponentValue.h new file mode 100644 index 000000000..b50f27455 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityComponentValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VelocityComponentValue_H_ +#define _cam_ts_VelocityComponentValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VelocityComponentValue { + cam_ts_VelocityComponentValue_negativeOutOfRange = -16383, + cam_ts_VelocityComponentValue_positiveOutOfRange = 16382, + cam_ts_VelocityComponentValue_unavailable = 16383 +} e_cam_ts_VelocityComponentValue; + +/* cam_ts_VelocityComponentValue */ +typedef long cam_ts_VelocityComponentValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VelocityComponentValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VelocityComponentValue; +asn_struct_free_f cam_ts_VelocityComponentValue_free; +asn_struct_print_f cam_ts_VelocityComponentValue_print; +asn_constr_check_f cam_ts_VelocityComponentValue_constraint; +per_type_decoder_f cam_ts_VelocityComponentValue_decode_uper; +per_type_encoder_f cam_ts_VelocityComponentValue_encode_uper; +per_type_decoder_f cam_ts_VelocityComponentValue_decode_aper; +per_type_encoder_f cam_ts_VelocityComponentValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VelocityComponentValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityPolarWithZ.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityPolarWithZ.h new file mode 100644 index 000000000..bf6b4edff --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VelocityPolarWithZ.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VelocityPolarWithZ_H_ +#define _cam_ts_VelocityPolarWithZ_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Speed.h" +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_VelocityComponent; + +/* cam_ts_VelocityPolarWithZ */ +typedef struct cam_ts_VelocityPolarWithZ { + cam_ts_Speed_t velocityMagnitude; + cam_ts_CartesianAngle_t velocityDirection; + struct cam_ts_VelocityComponent *zVelocity; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VelocityPolarWithZ_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VelocityPolarWithZ; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VelocityPolarWithZ_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_VelocityPolarWithZ_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_VelocityComponent.h" + +#endif /* _cam_ts_VelocityPolarWithZ_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VerticalAcceleration.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VerticalAcceleration.h new file mode 100644 index 000000000..57f43702b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VerticalAcceleration_H_ +#define _cam_ts_VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_VerticalAccelerationValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_VerticalAcceleration */ +typedef struct cam_ts_VerticalAcceleration { + cam_ts_VerticalAccelerationValue_t verticalAccelerationValue; + cam_ts_AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VerticalAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VerticalAccelerationValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VerticalAccelerationValue.h new file mode 100644 index 000000000..5c67cec27 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VerticalAccelerationValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VerticalAccelerationValue_H_ +#define _cam_ts_VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VerticalAccelerationValue { + cam_ts_VerticalAccelerationValue_negativeOutOfRange = -160, + cam_ts_VerticalAccelerationValue_positiveOutOfRange = 160, + cam_ts_VerticalAccelerationValue_unavailable = 161 +} e_cam_ts_VerticalAccelerationValue; + +/* cam_ts_VerticalAccelerationValue */ +typedef long cam_ts_VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VerticalAccelerationValue; +asn_struct_free_f cam_ts_VerticalAccelerationValue_free; +asn_struct_print_f cam_ts_VerticalAccelerationValue_print; +asn_constr_check_f cam_ts_VerticalAccelerationValue_constraint; +per_type_decoder_f cam_ts_VerticalAccelerationValue_decode_uper; +per_type_encoder_f cam_ts_VerticalAccelerationValue_encode_uper; +per_type_decoder_f cam_ts_VerticalAccelerationValue_decode_aper; +per_type_encoder_f cam_ts_VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VerticalAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruClusterInformation.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruClusterInformation.h new file mode 100644 index 000000000..cc126335f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruClusterInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruClusterInformation_H_ +#define _cam_ts_VruClusterInformation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_CardinalNumber1B.h" +#include "etsi_its_cam_ts_coding/cam_ts_VruClusterProfiles.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct cam_ts_Shape; + +/* cam_ts_VruClusterInformation */ +typedef struct cam_ts_VruClusterInformation { + cam_ts_Identifier1B_t *clusterId; /* OPTIONAL */ + struct cam_ts_Shape *clusterBoundingBoxShape; /* OPTIONAL */ + cam_ts_CardinalNumber1B_t clusterCardinalitySize; + cam_ts_VruClusterProfiles_t *clusterProfiles; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VruClusterInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruClusterInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VruClusterInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_VruClusterInformation_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_cam_ts_coding/cam_ts_Shape.h" + +#endif /* _cam_ts_VruClusterInformation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruClusterProfiles.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruClusterProfiles.h new file mode 100644 index 000000000..022212a97 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruClusterProfiles.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruClusterProfiles_H_ +#define _cam_ts_VruClusterProfiles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruClusterProfiles { + cam_ts_VruClusterProfiles_pedestrian = 0, + cam_ts_VruClusterProfiles_bicyclist = 1, + cam_ts_VruClusterProfiles_motorcyclist = 2, + cam_ts_VruClusterProfiles_animal = 3 +} e_cam_ts_VruClusterProfiles; + +/* cam_ts_VruClusterProfiles */ +typedef BIT_STRING_t cam_ts_VruClusterProfiles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VruClusterProfiles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruClusterProfiles; +asn_struct_free_f cam_ts_VruClusterProfiles_free; +asn_struct_print_f cam_ts_VruClusterProfiles_print; +asn_constr_check_f cam_ts_VruClusterProfiles_constraint; +per_type_decoder_f cam_ts_VruClusterProfiles_decode_uper; +per_type_encoder_f cam_ts_VruClusterProfiles_encode_uper; +per_type_decoder_f cam_ts_VruClusterProfiles_decode_aper; +per_type_encoder_f cam_ts_VruClusterProfiles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruClusterProfiles_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruDeviceUsage.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruDeviceUsage.h new file mode 100644 index 000000000..5cf90e883 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruDeviceUsage.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruDeviceUsage_H_ +#define _cam_ts_VruDeviceUsage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruDeviceUsage { + cam_ts_VruDeviceUsage_unavailable = 0, + cam_ts_VruDeviceUsage_other = 1, + cam_ts_VruDeviceUsage_idle = 2, + cam_ts_VruDeviceUsage_listeningToAudio = 3, + cam_ts_VruDeviceUsage_typing = 4, + cam_ts_VruDeviceUsage_calling = 5, + cam_ts_VruDeviceUsage_playingGames = 6, + cam_ts_VruDeviceUsage_reading = 7, + cam_ts_VruDeviceUsage_viewing = 8 +} e_cam_ts_VruDeviceUsage; + +/* cam_ts_VruDeviceUsage */ +typedef long cam_ts_VruDeviceUsage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruDeviceUsage; +asn_struct_free_f cam_ts_VruDeviceUsage_free; +asn_struct_print_f cam_ts_VruDeviceUsage_print; +asn_constr_check_f cam_ts_VruDeviceUsage_constraint; +per_type_decoder_f cam_ts_VruDeviceUsage_decode_uper; +per_type_encoder_f cam_ts_VruDeviceUsage_encode_uper; +per_type_decoder_f cam_ts_VruDeviceUsage_decode_aper; +per_type_encoder_f cam_ts_VruDeviceUsage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruDeviceUsage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruEnvironment.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruEnvironment.h new file mode 100644 index 000000000..6922d3078 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruEnvironment.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruEnvironment_H_ +#define _cam_ts_VruEnvironment_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruEnvironment { + cam_ts_VruEnvironment_unavailable = 0, + cam_ts_VruEnvironment_intersectionCrossing = 1, + cam_ts_VruEnvironment_zebraCrossing = 2, + cam_ts_VruEnvironment_sidewalk = 3, + cam_ts_VruEnvironment_onVehicleRoad = 4, + cam_ts_VruEnvironment_protectedGeographicArea = 5 +} e_cam_ts_VruEnvironment; + +/* cam_ts_VruEnvironment */ +typedef long cam_ts_VruEnvironment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruEnvironment; +asn_struct_free_f cam_ts_VruEnvironment_free; +asn_struct_print_f cam_ts_VruEnvironment_print; +asn_constr_check_f cam_ts_VruEnvironment_constraint; +per_type_decoder_f cam_ts_VruEnvironment_decode_uper; +per_type_encoder_f cam_ts_VruEnvironment_encode_uper; +per_type_decoder_f cam_ts_VruEnvironment_decode_aper; +per_type_encoder_f cam_ts_VruEnvironment_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruEnvironment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruExteriorLights.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruExteriorLights.h new file mode 100644 index 000000000..d743cbda7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruExteriorLights.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruExteriorLights_H_ +#define _cam_ts_VruExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_ExteriorLights.h" +#include "etsi_its_cam_ts_coding/cam_ts_VruSpecificExteriorLights.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_VruExteriorLights */ +typedef struct cam_ts_VruExteriorLights { + cam_ts_ExteriorLights_t vehicular; + cam_ts_VruSpecificExteriorLights_t vruSpecific; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VruExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruExteriorLights; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruExteriorLights_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruMovementControl.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruMovementControl.h new file mode 100644 index 000000000..9cd4e4bdf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruMovementControl.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruMovementControl_H_ +#define _cam_ts_VruMovementControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruMovementControl { + cam_ts_VruMovementControl_unavailable = 0, + cam_ts_VruMovementControl_braking = 1, + cam_ts_VruMovementControl_hardBraking = 2, + cam_ts_VruMovementControl_stopPedaling = 3, + cam_ts_VruMovementControl_brakingAndStopPedaling = 4, + cam_ts_VruMovementControl_hardBrakingAndStopPedaling = 5, + cam_ts_VruMovementControl_noReaction = 6 +} e_cam_ts_VruMovementControl; + +/* cam_ts_VruMovementControl */ +typedef long cam_ts_VruMovementControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruMovementControl; +asn_struct_free_f cam_ts_VruMovementControl_free; +asn_struct_print_f cam_ts_VruMovementControl_print; +asn_constr_check_f cam_ts_VruMovementControl_constraint; +per_type_decoder_f cam_ts_VruMovementControl_decode_uper; +per_type_encoder_f cam_ts_VruMovementControl_encode_uper; +per_type_decoder_f cam_ts_VruMovementControl_decode_aper; +per_type_encoder_f cam_ts_VruMovementControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruMovementControl_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruProfileAndSubprofile.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruProfileAndSubprofile.h new file mode 100644 index 000000000..6d47adc43 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruProfileAndSubprofile.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruProfileAndSubprofile_H_ +#define _cam_ts_VruProfileAndSubprofile_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_VruSubProfilePedestrian.h" +#include "etsi_its_cam_ts_coding/cam_ts_VruSubProfileBicyclist.h" +#include "etsi_its_cam_ts_coding/cam_ts_VruSubProfileMotorcyclist.h" +#include "etsi_its_cam_ts_coding/cam_ts_VruSubProfileAnimal.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruProfileAndSubprofile_PR { + cam_ts_VruProfileAndSubprofile_PR_NOTHING, /* No components present */ + cam_ts_VruProfileAndSubprofile_PR_pedestrian, + cam_ts_VruProfileAndSubprofile_PR_bicyclistAndLightVruVehicle, + cam_ts_VruProfileAndSubprofile_PR_motorcyclist, + cam_ts_VruProfileAndSubprofile_PR_animal + /* Extensions may appear below */ + +} cam_ts_VruProfileAndSubprofile_PR; + +/* cam_ts_VruProfileAndSubprofile */ +typedef struct cam_ts_VruProfileAndSubprofile { + cam_ts_VruProfileAndSubprofile_PR present; + union cam_ts_VruProfileAndSubprofile_u { + cam_ts_VruSubProfilePedestrian_t pedestrian; + cam_ts_VruSubProfileBicyclist_t bicyclistAndLightVruVehicle; + cam_ts_VruSubProfileMotorcyclist_t motorcyclist; + cam_ts_VruSubProfileAnimal_t animal; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_VruProfileAndSubprofile_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruProfileAndSubprofile; +extern asn_CHOICE_specifics_t asn_SPC_cam_ts_VruProfileAndSubprofile_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_VruProfileAndSubprofile_1[4]; +extern asn_per_constraints_t asn_PER_type_cam_ts_VruProfileAndSubprofile_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruProfileAndSubprofile_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSizeClass.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSizeClass.h new file mode 100644 index 000000000..f67f0c976 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSizeClass.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruSizeClass_H_ +#define _cam_ts_VruSizeClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruSizeClass { + cam_ts_VruSizeClass_unavailable = 0, + cam_ts_VruSizeClass_low = 1, + cam_ts_VruSizeClass_medium = 2, + cam_ts_VruSizeClass_high = 3 +} e_cam_ts_VruSizeClass; + +/* cam_ts_VruSizeClass */ +typedef long cam_ts_VruSizeClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSizeClass; +asn_struct_free_f cam_ts_VruSizeClass_free; +asn_struct_print_f cam_ts_VruSizeClass_print; +asn_constr_check_f cam_ts_VruSizeClass_constraint; +per_type_decoder_f cam_ts_VruSizeClass_decode_uper; +per_type_encoder_f cam_ts_VruSizeClass_encode_uper; +per_type_decoder_f cam_ts_VruSizeClass_decode_aper; +per_type_encoder_f cam_ts_VruSizeClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruSizeClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSpecificExteriorLights.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSpecificExteriorLights.h new file mode 100644 index 000000000..eecb72836 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSpecificExteriorLights.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruSpecificExteriorLights_H_ +#define _cam_ts_VruSpecificExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruSpecificExteriorLights { + cam_ts_VruSpecificExteriorLights_unavailable = 0, + cam_ts_VruSpecificExteriorLights_backFlashLight = 1, + cam_ts_VruSpecificExteriorLights_helmetLight = 2, + cam_ts_VruSpecificExteriorLights_armLight = 3, + cam_ts_VruSpecificExteriorLights_legLight = 4, + cam_ts_VruSpecificExteriorLights_wheelLight = 5 +} e_cam_ts_VruSpecificExteriorLights; + +/* cam_ts_VruSpecificExteriorLights */ +typedef BIT_STRING_t cam_ts_VruSpecificExteriorLights_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VruSpecificExteriorLights_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSpecificExteriorLights; +asn_struct_free_f cam_ts_VruSpecificExteriorLights_free; +asn_struct_print_f cam_ts_VruSpecificExteriorLights_print; +asn_constr_check_f cam_ts_VruSpecificExteriorLights_constraint; +per_type_decoder_f cam_ts_VruSpecificExteriorLights_decode_uper; +per_type_encoder_f cam_ts_VruSpecificExteriorLights_encode_uper; +per_type_decoder_f cam_ts_VruSpecificExteriorLights_decode_aper; +per_type_encoder_f cam_ts_VruSpecificExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruSpecificExteriorLights_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileAnimal.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileAnimal.h new file mode 100644 index 000000000..e4c6845b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileAnimal.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruSubProfileAnimal_H_ +#define _cam_ts_VruSubProfileAnimal_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruSubProfileAnimal { + cam_ts_VruSubProfileAnimal_unavailable = 0, + cam_ts_VruSubProfileAnimal_wild_animal = 1, + cam_ts_VruSubProfileAnimal_farm_animal = 2, + cam_ts_VruSubProfileAnimal_service_animal = 3 +} e_cam_ts_VruSubProfileAnimal; + +/* cam_ts_VruSubProfileAnimal */ +typedef long cam_ts_VruSubProfileAnimal_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VruSubProfileAnimal_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSubProfileAnimal; +asn_struct_free_f cam_ts_VruSubProfileAnimal_free; +asn_struct_print_f cam_ts_VruSubProfileAnimal_print; +asn_constr_check_f cam_ts_VruSubProfileAnimal_constraint; +per_type_decoder_f cam_ts_VruSubProfileAnimal_decode_uper; +per_type_encoder_f cam_ts_VruSubProfileAnimal_encode_uper; +per_type_decoder_f cam_ts_VruSubProfileAnimal_decode_aper; +per_type_encoder_f cam_ts_VruSubProfileAnimal_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruSubProfileAnimal_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileBicyclist.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileBicyclist.h new file mode 100644 index 000000000..d523fd7a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileBicyclist.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruSubProfileBicyclist_H_ +#define _cam_ts_VruSubProfileBicyclist_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruSubProfileBicyclist { + cam_ts_VruSubProfileBicyclist_unavailable = 0, + cam_ts_VruSubProfileBicyclist_bicyclist = 1, + cam_ts_VruSubProfileBicyclist_wheelchair_user = 2, + cam_ts_VruSubProfileBicyclist_horse_and_rider = 3, + cam_ts_VruSubProfileBicyclist_rollerskater = 4, + cam_ts_VruSubProfileBicyclist_e_scooter = 5, + cam_ts_VruSubProfileBicyclist_personal_transporter = 6, + cam_ts_VruSubProfileBicyclist_pedelec = 7, + cam_ts_VruSubProfileBicyclist_speed_pedelec = 8, + cam_ts_VruSubProfileBicyclist_roadbike = 9, + cam_ts_VruSubProfileBicyclist_childrensbike = 10 +} e_cam_ts_VruSubProfileBicyclist; + +/* cam_ts_VruSubProfileBicyclist */ +typedef long cam_ts_VruSubProfileBicyclist_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VruSubProfileBicyclist_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSubProfileBicyclist; +asn_struct_free_f cam_ts_VruSubProfileBicyclist_free; +asn_struct_print_f cam_ts_VruSubProfileBicyclist_print; +asn_constr_check_f cam_ts_VruSubProfileBicyclist_constraint; +per_type_decoder_f cam_ts_VruSubProfileBicyclist_decode_uper; +per_type_encoder_f cam_ts_VruSubProfileBicyclist_encode_uper; +per_type_decoder_f cam_ts_VruSubProfileBicyclist_decode_aper; +per_type_encoder_f cam_ts_VruSubProfileBicyclist_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruSubProfileBicyclist_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileMotorcyclist.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileMotorcyclist.h new file mode 100644 index 000000000..aab91e542 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfileMotorcyclist.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruSubProfileMotorcyclist_H_ +#define _cam_ts_VruSubProfileMotorcyclist_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruSubProfileMotorcyclist { + cam_ts_VruSubProfileMotorcyclist_unavailable = 0, + cam_ts_VruSubProfileMotorcyclist_moped = 1, + cam_ts_VruSubProfileMotorcyclist_motorcycle = 2, + cam_ts_VruSubProfileMotorcyclist_motorcycle_and_sidecar_right = 3, + cam_ts_VruSubProfileMotorcyclist_motorcycle_and_sidecar_left = 4 +} e_cam_ts_VruSubProfileMotorcyclist; + +/* cam_ts_VruSubProfileMotorcyclist */ +typedef long cam_ts_VruSubProfileMotorcyclist_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VruSubProfileMotorcyclist_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSubProfileMotorcyclist; +asn_struct_free_f cam_ts_VruSubProfileMotorcyclist_free; +asn_struct_print_f cam_ts_VruSubProfileMotorcyclist_print; +asn_constr_check_f cam_ts_VruSubProfileMotorcyclist_constraint; +per_type_decoder_f cam_ts_VruSubProfileMotorcyclist_decode_uper; +per_type_encoder_f cam_ts_VruSubProfileMotorcyclist_encode_uper; +per_type_decoder_f cam_ts_VruSubProfileMotorcyclist_decode_aper; +per_type_encoder_f cam_ts_VruSubProfileMotorcyclist_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruSubProfileMotorcyclist_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfilePedestrian.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfilePedestrian.h new file mode 100644 index 000000000..bdfc8ea1a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_VruSubProfilePedestrian.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_VruSubProfilePedestrian_H_ +#define _cam_ts_VruSubProfilePedestrian_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_VruSubProfilePedestrian { + cam_ts_VruSubProfilePedestrian_unavailable = 0, + cam_ts_VruSubProfilePedestrian_ordinary_pedestrian = 1, + cam_ts_VruSubProfilePedestrian_road_worker = 2, + cam_ts_VruSubProfilePedestrian_first_responder = 3 +} e_cam_ts_VruSubProfilePedestrian; + +/* cam_ts_VruSubProfilePedestrian */ +typedef long cam_ts_VruSubProfilePedestrian_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_VruSubProfilePedestrian_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSubProfilePedestrian; +asn_struct_free_f cam_ts_VruSubProfilePedestrian_free; +asn_struct_print_f cam_ts_VruSubProfilePedestrian_print; +asn_constr_check_f cam_ts_VruSubProfilePedestrian_constraint; +per_type_decoder_f cam_ts_VruSubProfilePedestrian_decode_uper; +per_type_encoder_f cam_ts_VruSubProfilePedestrian_encode_uper; +per_type_decoder_f cam_ts_VruSubProfilePedestrian_decode_aper; +per_type_encoder_f cam_ts_VruSubProfilePedestrian_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_VruSubProfilePedestrian_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WMInumber.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WMInumber.h new file mode 100644 index 000000000..8366dc28e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WMInumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_WMInumber_H_ +#define _cam_ts_WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_WMInumber */ +typedef IA5String_t cam_ts_WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_WMInumber; +asn_struct_free_f cam_ts_WMInumber_free; +asn_struct_print_f cam_ts_WMInumber_print; +asn_constr_check_f cam_ts_WMInumber_constraint; +per_type_decoder_f cam_ts_WMInumber_decode_uper; +per_type_encoder_f cam_ts_WMInumber_encode_uper; +per_type_decoder_f cam_ts_WMInumber_decode_aper; +per_type_encoder_f cam_ts_WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_WMInumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84Angle.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84Angle.h new file mode 100644 index 000000000..e3c4f840a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84Angle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Wgs84Angle_H_ +#define _cam_ts_Wgs84Angle_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_Wgs84AngleValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_Wgs84AngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_Wgs84Angle */ +typedef struct cam_ts_Wgs84Angle { + cam_ts_Wgs84AngleValue_t value; + cam_ts_Wgs84AngleConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_Wgs84Angle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Wgs84Angle; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Wgs84Angle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84AngleConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84AngleConfidence.h new file mode 100644 index 000000000..946102fd5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84AngleConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Wgs84AngleConfidence_H_ +#define _cam_ts_Wgs84AngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Wgs84AngleConfidence { + cam_ts_Wgs84AngleConfidence_outOfRange = 126, + cam_ts_Wgs84AngleConfidence_unavailable = 127 +} e_cam_ts_Wgs84AngleConfidence; + +/* cam_ts_Wgs84AngleConfidence */ +typedef long cam_ts_Wgs84AngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_Wgs84AngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Wgs84AngleConfidence; +asn_struct_free_f cam_ts_Wgs84AngleConfidence_free; +asn_struct_print_f cam_ts_Wgs84AngleConfidence_print; +asn_constr_check_f cam_ts_Wgs84AngleConfidence_constraint; +per_type_decoder_f cam_ts_Wgs84AngleConfidence_decode_uper; +per_type_encoder_f cam_ts_Wgs84AngleConfidence_encode_uper; +per_type_decoder_f cam_ts_Wgs84AngleConfidence_decode_aper; +per_type_encoder_f cam_ts_Wgs84AngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Wgs84AngleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84AngleValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84AngleValue.h new file mode 100644 index 000000000..7f7afaa73 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_Wgs84AngleValue.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_Wgs84AngleValue_H_ +#define _cam_ts_Wgs84AngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_Wgs84AngleValue { + cam_ts_Wgs84AngleValue_wgs84North = 0, + cam_ts_Wgs84AngleValue_wgs84East = 900, + cam_ts_Wgs84AngleValue_wgs84South = 1800, + cam_ts_Wgs84AngleValue_wgs84West = 2700, + cam_ts_Wgs84AngleValue_doNotUse = 3600, + cam_ts_Wgs84AngleValue_unavailable = 3601 +} e_cam_ts_Wgs84AngleValue; + +/* cam_ts_Wgs84AngleValue */ +typedef long cam_ts_Wgs84AngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_Wgs84AngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_Wgs84AngleValue; +asn_struct_free_f cam_ts_Wgs84AngleValue_free; +asn_struct_print_f cam_ts_Wgs84AngleValue_print; +asn_constr_check_f cam_ts_Wgs84AngleValue_constraint; +per_type_decoder_f cam_ts_Wgs84AngleValue_decode_uper; +per_type_encoder_f cam_ts_Wgs84AngleValue_encode_uper; +per_type_decoder_f cam_ts_Wgs84AngleValue_decode_aper; +per_type_encoder_f cam_ts_Wgs84AngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_Wgs84AngleValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WheelBaseVehicle.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WheelBaseVehicle.h new file mode 100644 index 000000000..266a3cf08 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WheelBaseVehicle.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_WheelBaseVehicle_H_ +#define _cam_ts_WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_WheelBaseVehicle { + cam_ts_WheelBaseVehicle_outOfRange = 126, + cam_ts_WheelBaseVehicle_unavailable = 127 +} e_cam_ts_WheelBaseVehicle; + +/* cam_ts_WheelBaseVehicle */ +typedef long cam_ts_WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_WheelBaseVehicle; +asn_struct_free_f cam_ts_WheelBaseVehicle_free; +asn_struct_print_f cam_ts_WheelBaseVehicle_print; +asn_constr_check_f cam_ts_WheelBaseVehicle_constraint; +per_type_decoder_f cam_ts_WheelBaseVehicle_decode_uper; +per_type_encoder_f cam_ts_WheelBaseVehicle_encode_uper; +per_type_decoder_f cam_ts_WheelBaseVehicle_decode_aper; +per_type_encoder_f cam_ts_WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_WheelBaseVehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WrongWayDrivingSubCauseCode.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WrongWayDrivingSubCauseCode.h new file mode 100644 index 000000000..d3ab2a314 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_WrongWayDrivingSubCauseCode.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_WrongWayDrivingSubCauseCode_H_ +#define _cam_ts_WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_WrongWayDrivingSubCauseCode { + cam_ts_WrongWayDrivingSubCauseCode_unavailable = 0, + cam_ts_WrongWayDrivingSubCauseCode_wrongLane = 1, + cam_ts_WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_cam_ts_WrongWayDrivingSubCauseCode; + +/* cam_ts_WrongWayDrivingSubCauseCode */ +typedef long cam_ts_WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_WrongWayDrivingSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_WrongWayDrivingSubCauseCode; +asn_struct_free_f cam_ts_WrongWayDrivingSubCauseCode_free; +asn_struct_print_f cam_ts_WrongWayDrivingSubCauseCode_print; +asn_constr_check_f cam_ts_WrongWayDrivingSubCauseCode_constraint; +per_type_decoder_f cam_ts_WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f cam_ts_WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f cam_ts_WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f cam_ts_WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRate.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRate.h new file mode 100644 index 000000000..23844fd2f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRate.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_YawRate_H_ +#define _cam_ts_YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_cam_ts_coding/cam_ts_YawRateValue.h" +#include "etsi_its_cam_ts_coding/cam_ts_YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* cam_ts_YawRate */ +typedef struct cam_ts_YawRate { + cam_ts_YawRateValue_t yawRateValue; + cam_ts_YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} cam_ts_YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_YawRate; +extern asn_SEQUENCE_specifics_t asn_SPC_cam_ts_YawRate_specs_1; +extern asn_TYPE_member_t asn_MBR_cam_ts_YawRate_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_YawRate_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRateConfidence.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRateConfidence.h new file mode 100644 index 000000000..078451afa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRateConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_YawRateConfidence_H_ +#define _cam_ts_YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_YawRateConfidence { + cam_ts_YawRateConfidence_degSec_000_01 = 0, + cam_ts_YawRateConfidence_degSec_000_05 = 1, + cam_ts_YawRateConfidence_degSec_000_10 = 2, + cam_ts_YawRateConfidence_degSec_001_00 = 3, + cam_ts_YawRateConfidence_degSec_005_00 = 4, + cam_ts_YawRateConfidence_degSec_010_00 = 5, + cam_ts_YawRateConfidence_degSec_100_00 = 6, + cam_ts_YawRateConfidence_outOfRange = 7, + cam_ts_YawRateConfidence_unavailable = 8 +} e_cam_ts_YawRateConfidence; + +/* cam_ts_YawRateConfidence */ +typedef long cam_ts_YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_cam_ts_YawRateConfidence_specs_1; +asn_struct_free_f cam_ts_YawRateConfidence_free; +asn_struct_print_f cam_ts_YawRateConfidence_print; +asn_constr_check_f cam_ts_YawRateConfidence_constraint; +per_type_decoder_f cam_ts_YawRateConfidence_decode_uper; +per_type_encoder_f cam_ts_YawRateConfidence_encode_uper; +per_type_decoder_f cam_ts_YawRateConfidence_decode_aper; +per_type_encoder_f cam_ts_YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_YawRateConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRateValue.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRateValue.h new file mode 100644 index 000000000..1a2f041a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_YawRateValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _cam_ts_YawRateValue_H_ +#define _cam_ts_YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum cam_ts_YawRateValue { + cam_ts_YawRateValue_negativeOutOfRange = -32766, + cam_ts_YawRateValue_positiveOutOfRange = 32766, + cam_ts_YawRateValue_unavailable = 32767 +} e_cam_ts_YawRateValue; + +/* cam_ts_YawRateValue */ +typedef long cam_ts_YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_cam_ts_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_cam_ts_YawRateValue; +asn_struct_free_f cam_ts_YawRateValue_free; +asn_struct_print_f cam_ts_YawRateValue_print; +asn_constr_check_f cam_ts_YawRateValue_constraint; +per_type_decoder_f cam_ts_YawRateValue_decode_uper; +per_type_encoder_f cam_ts_YawRateValue_encode_uper; +per_type_decoder_f cam_ts_YawRateValue_decode_aper; +per_type_encoder_f cam_ts_YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_YawRateValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_asn_constant.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_asn_constant.h new file mode 100644 index 000000000..7af361816 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/cam_ts_asn_constant.h @@ -0,0 +1,294 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _cam_ts_ASN_CONSTANT_H +#define _cam_ts_ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_cam_ts_AccelerationConfidence (0) +#define max_val_cam_ts_AccelerationConfidence (102) +#define min_val_cam_ts_AccelerationMagnitudeValue (0) +#define max_val_cam_ts_AccelerationMagnitudeValue (161) +#define min_val_cam_ts_AccelerationValue (-160) +#define max_val_cam_ts_AccelerationValue (161) +#define min_val_cam_ts_AccidentSubCauseCode (0) +#define max_val_cam_ts_AccidentSubCauseCode (255) +#define min_val_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_cam_ts_AirHumidity (1) +#define max_val_cam_ts_AirHumidity (1001) +#define min_val_cam_ts_AltitudeValue (-100000) +#define max_val_cam_ts_AltitudeValue (800001) +#define min_val_cam_ts_AngleConfidence (1) +#define max_val_cam_ts_AngleConfidence (127) +#define min_val_cam_ts_AxlesCount (2) +#define max_val_cam_ts_AxlesCount (1002) +#define min_val_cam_ts_BarometricPressure (2999) +#define max_val_cam_ts_BarometricPressure (12002) +#define min_val_cam_ts_BogiesCount (2) +#define max_val_cam_ts_BogiesCount (101) +#define min_val_cam_ts_CardinalNumber1B (0) +#define max_val_cam_ts_CardinalNumber1B (255) +#define min_val_cam_ts_CardinalNumber3b (1) +#define max_val_cam_ts_CardinalNumber3b (8) +#define min_val_cam_ts_CartesianAngleValue (0) +#define max_val_cam_ts_CartesianAngleValue (3601) +#define min_val_cam_ts_CartesianAngularAccelerationComponentValue (-255) +#define max_val_cam_ts_CartesianAngularAccelerationComponentValue (256) +#define min_val_cam_ts_CartesianAngularVelocityComponentValue (-255) +#define max_val_cam_ts_CartesianAngularVelocityComponentValue (256) +#define min_val_cam_ts_CauseCodeType (0) +#define max_val_cam_ts_CauseCodeType (255) +#define min_val_cam_ts_CartesianCoordinateSmall (-3094) +#define max_val_cam_ts_CartesianCoordinateSmall (1001) +#define min_val_cam_ts_CartesianCoordinate (-32768) +#define max_val_cam_ts_CartesianCoordinate (32767) +#define min_val_cam_ts_CartesianCoordinateLarge (-131072) +#define max_val_cam_ts_CartesianCoordinateLarge (131071) +#define min_val_cam_ts_ClusterBreakupReason (0) +#define max_val_cam_ts_ClusterBreakupReason (15) +#define min_val_cam_ts_ClusterLeaveReason (0) +#define max_val_cam_ts_ClusterLeaveReason (15) +#define min_val_cam_ts_CollisionRiskSubCauseCode (0) +#define max_val_cam_ts_CollisionRiskSubCauseCode (255) +#define min_val_cam_ts_ConfidenceLevel (1) +#define max_val_cam_ts_ConfidenceLevel (101) +#define min_val_cam_ts_CoordinateConfidence (1) +#define max_val_cam_ts_CoordinateConfidence (4096) +#define min_val_cam_ts_CorrelationCellValue (-100) +#define max_val_cam_ts_CorrelationCellValue (101) +#define min_val_cam_ts_CurvatureValue (-1023) +#define max_val_cam_ts_CurvatureValue (1023) +#define min_val_cam_ts_DangerousEndOfQueueSubCauseCode (0) +#define max_val_cam_ts_DangerousEndOfQueueSubCauseCode (255) +#define min_val_cam_ts_DangerousSituationSubCauseCode (0) +#define max_val_cam_ts_DangerousSituationSubCauseCode (255) +#define min_val_cam_ts_DeltaAltitude (-12700) +#define max_val_cam_ts_DeltaAltitude (12800) +#define min_val_cam_ts_DeltaLatitude (-131071) +#define max_val_cam_ts_DeltaLatitude (131072) +#define min_val_cam_ts_DeltaLongitude (-131071) +#define max_val_cam_ts_DeltaLongitude (131072) +#define min_val_cam_ts_DeltaTimeMilliSecondPositive (1) +#define max_val_cam_ts_DeltaTimeMilliSecondPositive (10000) +#define min_val_cam_ts_DeltaTimeMilliSecondSigned (-2048) +#define max_val_cam_ts_DeltaTimeMilliSecondSigned (2047) +#define min_val_cam_ts_DeltaTimeQuarterSecond (1) +#define max_val_cam_ts_DeltaTimeQuarterSecond (255) +#define min_val_cam_ts_DeltaTimeTenthOfSecond (0) +#define max_val_cam_ts_DeltaTimeTenthOfSecond (127) +#define min_val_cam_ts_DeltaTimeSecond (0) +#define max_val_cam_ts_DeltaTimeSecond (86400) +#define min_val_cam_ts_DeltaTimeTenSeconds (0) +#define max_val_cam_ts_DeltaTimeTenSeconds (127) +#define min_val_cam_ts_Direction (0) +#define max_val_cam_ts_Direction (3) +#define min_val_cam_ts_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_cam_ts_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_cam_ts_GenerationDeltaTime (0) +#define max_val_cam_ts_GenerationDeltaTime (65535) +#define min_val_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_cam_ts_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_cam_ts_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_cam_ts_HeadingConfidence (1) +#define max_val_cam_ts_HeadingConfidence (127) +#define min_val_cam_ts_HeadingValue (0) +#define max_val_cam_ts_HeadingValue (3601) +#define min_val_cam_ts_HeightLonCarr (1) +#define max_val_cam_ts_HeightLonCarr (100) +#define min_val_cam_ts_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_cam_ts_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_cam_ts_HumanProblemSubCauseCode (0) +#define max_val_cam_ts_HumanProblemSubCauseCode (255) +#define min_val_cam_ts_Identifier1B (0) +#define max_val_cam_ts_Identifier1B (255) +#define min_val_cam_ts_Identifier2B (0) +#define max_val_cam_ts_Identifier2B (65535) +#define min_val_cam_ts_ImpassabilitySubCauseCode (0) +#define max_val_cam_ts_ImpassabilitySubCauseCode (255) +#define min_val_cam_ts_InformationQuality (0) +#define max_val_cam_ts_InformationQuality (7) +#define min_val_cam_ts_Iso3833VehicleType (0) +#define max_val_cam_ts_Iso3833VehicleType (255) +#define min_val_cam_ts_IssuerIdentifier (0) +#define max_val_cam_ts_IssuerIdentifier (16383) +#define min_val_cam_ts_LanePosition (-1) +#define max_val_cam_ts_LanePosition (14) +#define min_val_cam_ts_LaneType (0) +#define max_val_cam_ts_LaneType (31) +#define min_val_cam_ts_LaneWidth (0) +#define max_val_cam_ts_LaneWidth (1023) +#define min_val_cam_ts_Latitude (-900000000) +#define max_val_cam_ts_Latitude (900000001) +#define min_val_cam_ts_LateralAccelerationValue (-160) +#define max_val_cam_ts_LateralAccelerationValue (161) +#define min_val_cam_ts_Longitude (-1800000000) +#define max_val_cam_ts_Longitude (1800000001) +#define min_val_cam_ts_LongitudinalAccelerationValue (-160) +#define max_val_cam_ts_LongitudinalAccelerationValue (161) +#define min_val_cam_ts_LongitudinalLanePositionValue (0) +#define max_val_cam_ts_LongitudinalLanePositionValue (32767) +#define min_val_cam_ts_LongitudinalLanePositionConfidence (0) +#define max_val_cam_ts_LongitudinalLanePositionConfidence (1023) +#define min_val_cam_ts_MessageId (0) +#define max_val_cam_ts_MessageId (255) +#define min_val_cam_ts_NumberOfOccupants (0) +#define max_val_cam_ts_NumberOfOccupants (127) +#define min_val_cam_ts_ObjectPerceptionQuality (0) +#define max_val_cam_ts_ObjectPerceptionQuality (15) +#define min_val_cam_ts_ObjectDimensionValue (1) +#define max_val_cam_ts_ObjectDimensionValue (256) +#define min_val_cam_ts_ObjectDimensionConfidence (1) +#define max_val_cam_ts_ObjectDimensionConfidence (32) +#define min_val_cam_ts_OrdinalNumber1B (0) +#define max_val_cam_ts_OrdinalNumber1B (255) +#define min_val_cam_ts_OrdinalNumber3b (1) +#define max_val_cam_ts_OrdinalNumber3b (8) +#define min_val_cam_ts_OtherSubClass (0) +#define max_val_cam_ts_OtherSubClass (255) +#define min_val_cam_ts_PathId (0) +#define max_val_cam_ts_PathId (14) +#define min_val_cam_ts_PerformanceClass (0) +#define max_val_cam_ts_PerformanceClass (7) +#define min_val_cam_ts_PosCentMass (1) +#define max_val_cam_ts_PosCentMass (63) +#define min_val_cam_ts_PosFrontAx (1) +#define max_val_cam_ts_PosFrontAx (20) +#define min_val_cam_ts_Position1d (-8190) +#define max_val_cam_ts_Position1d (8191) +#define min_val_cam_ts_PosLonCarr (1) +#define max_val_cam_ts_PosLonCarr (127) +#define min_val_cam_ts_PosPillar (1) +#define max_val_cam_ts_PosPillar (30) +#define min_val_cam_ts_PostCrashSubCauseCode (0) +#define max_val_cam_ts_PostCrashSubCauseCode (255) +#define min_val_cam_ts_PrecipitationIntensity (1) +#define max_val_cam_ts_PrecipitationIntensity (2001) +#define min_val_cam_ts_ProtectedZoneId (0) +#define max_val_cam_ts_ProtectedZoneId (134217727) +#define min_val_cam_ts_PtActivationType (0) +#define max_val_cam_ts_PtActivationType (255) +#define min_val_cam_ts_RailwayLevelCrossingSubCauseCode (0) +#define max_val_cam_ts_RailwayLevelCrossingSubCauseCode (255) +#define min_val_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_cam_ts_RoadworksSubCauseCode (0) +#define max_val_cam_ts_RoadworksSubCauseCode (255) +#define min_val_cam_ts_SemiAxisLength (0) +#define max_val_cam_ts_SemiAxisLength (4095) +#define min_val_cam_ts_SensorType (0) +#define max_val_cam_ts_SensorType (31) +#define min_val_cam_ts_SequenceNumber (0) +#define max_val_cam_ts_SequenceNumber (65535) +#define min_val_cam_ts_SignalViolationSubCauseCode (0) +#define max_val_cam_ts_SignalViolationSubCauseCode (255) +#define min_val_cam_ts_SlowVehicleSubCauseCode (0) +#define max_val_cam_ts_SlowVehicleSubCauseCode (255) +#define min_val_cam_ts_SpeedConfidence (1) +#define max_val_cam_ts_SpeedConfidence (127) +#define min_val_cam_ts_SpeedLimit (1) +#define max_val_cam_ts_SpeedLimit (255) +#define min_val_cam_ts_SpeedValue (0) +#define max_val_cam_ts_SpeedValue (16383) +#define min_val_cam_ts_VelocityComponentValue (-16383) +#define max_val_cam_ts_VelocityComponentValue (16383) +#define min_val_cam_ts_StabilityLossProbability (0) +#define max_val_cam_ts_StabilityLossProbability (63) +#define min_val_cam_ts_StandardLength12b (0) +#define max_val_cam_ts_StandardLength12b (4095) +#define min_val_cam_ts_StandardLength9b (0) +#define max_val_cam_ts_StandardLength9b (511) +#define min_val_cam_ts_StandardLength1B (0) +#define max_val_cam_ts_StandardLength1B (255) +#define min_val_cam_ts_StandardLength2B (0) +#define max_val_cam_ts_StandardLength2B (65535) +#define min_val_cam_ts_StationaryVehicleSubCauseCode (0) +#define max_val_cam_ts_StationaryVehicleSubCauseCode (255) +#define min_val_cam_ts_StationId (0) +#define max_val_cam_ts_StationId (4294967295) +#define min_val_cam_ts_StationType (0) +#define max_val_cam_ts_StationType (255) +#define min_val_cam_ts_SteeringWheelAngleConfidence (1) +#define max_val_cam_ts_SteeringWheelAngleConfidence (127) +#define min_val_cam_ts_SteeringWheelAngleValue (-511) +#define max_val_cam_ts_SteeringWheelAngleValue (512) +#define min_val_cam_ts_SubCauseCodeType (0) +#define max_val_cam_ts_SubCauseCodeType (255) +#define min_val_cam_ts_Temperature (-60) +#define max_val_cam_ts_Temperature (67) +#define min_val_cam_ts_TimestampIts (0) +#define max_val_cam_ts_TimestampIts (4398046511103) +#define min_val_cam_ts_TrafficConditionSubCauseCode (0) +#define max_val_cam_ts_TrafficConditionSubCauseCode (255) +#define min_val_cam_ts_TrafficParticipantType (0) +#define max_val_cam_ts_TrafficParticipantType (255) +#define min_val_cam_ts_TrajectoryInterceptionProbability (0) +#define max_val_cam_ts_TrajectoryInterceptionProbability (63) +#define min_val_cam_ts_TrajectoryInterceptionConfidence (0) +#define max_val_cam_ts_TrajectoryInterceptionConfidence (3) +#define min_val_cam_ts_TransmissionInterval (1) +#define max_val_cam_ts_TransmissionInterval (10000) +#define min_val_cam_ts_TurningRadius (1) +#define max_val_cam_ts_TurningRadius (255) +#define min_val_cam_ts_ValidityDuration (0) +#define max_val_cam_ts_ValidityDuration (86400) +#define min_val_cam_ts_VehicleBreakdownSubCauseCode (0) +#define max_val_cam_ts_VehicleBreakdownSubCauseCode (255) +#define min_val_cam_ts_VehicleHeight (1) +#define max_val_cam_ts_VehicleHeight (128) +#define min_val_cam_ts_VehicleLengthValue (1) +#define max_val_cam_ts_VehicleLengthValue (1023) +#define min_val_cam_ts_VehicleMass (1) +#define max_val_cam_ts_VehicleMass (1024) +#define min_val_cam_ts_VehicleWidth (1) +#define max_val_cam_ts_VehicleWidth (62) +#define min_val_cam_ts_VerticalAccelerationValue (-160) +#define max_val_cam_ts_VerticalAccelerationValue (161) +#define min_val_cam_ts_VruDeviceUsage (0) +#define max_val_cam_ts_VruDeviceUsage (15) +#define min_val_cam_ts_VruEnvironment (0) +#define max_val_cam_ts_VruEnvironment (15) +#define min_val_cam_ts_VruMovementControl (0) +#define max_val_cam_ts_VruMovementControl (15) +#define min_val_cam_ts_VruSubProfilePedestrian (0) +#define max_val_cam_ts_VruSubProfilePedestrian (15) +#define min_val_cam_ts_VruSubProfileBicyclist (0) +#define max_val_cam_ts_VruSubProfileBicyclist (15) +#define min_val_cam_ts_VruSubProfileMotorcyclist (0) +#define max_val_cam_ts_VruSubProfileMotorcyclist (15) +#define min_val_cam_ts_VruSubProfileAnimal (0) +#define max_val_cam_ts_VruSubProfileAnimal (15) +#define min_val_cam_ts_VruSizeClass (0) +#define max_val_cam_ts_VruSizeClass (15) +#define min_val_cam_ts_WheelBaseVehicle (1) +#define max_val_cam_ts_WheelBaseVehicle (127) +#define min_val_cam_ts_Wgs84AngleConfidence (1) +#define max_val_cam_ts_Wgs84AngleConfidence (127) +#define min_val_cam_ts_Wgs84AngleValue (0) +#define max_val_cam_ts_Wgs84AngleValue (3601) +#define min_val_cam_ts_WrongWayDrivingSubCauseCode (0) +#define max_val_cam_ts_WrongWayDrivingSubCauseCode (255) +#define min_val_cam_ts_YawRateValue (-32766) +#define max_val_cam_ts_YawRateValue (32767) + + +#ifdef __cplusplus +} +#endif + +#endif /* _cam_ts_ASN_CONSTANT_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_CHOICE.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_CHOICE.h new file mode 100644 index 000000000..88d744f02 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_CHOICE.h @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_CHOICE_H_ +#define _CONSTR_CHOICE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_CHOICE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ + unsigned pres_offset; /* Identifier of the present member */ + unsigned pres_size; /* Size of the identifier (enum) */ + + /* + * Tags to members mapping table. + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* Canonical ordering of CHOICE elements, for PER */ + const unsigned *to_canonical_order; + const unsigned *from_canonical_order; + + /* + * Extensions-related stuff. + */ + signed ext_start; /* First member of extensions, or -1 */ +} asn_CHOICE_specifics_t; + +/* + * A set specialized functions dealing with the CHOICE type. + */ +asn_struct_free_f CHOICE_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f CHOICE_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f CHOICE_compare; +asn_struct_copy_f CHOICE_copy; + +asn_constr_check_f CHOICE_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f CHOICE_decode_ber; +der_type_encoder_f CHOICE_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f CHOICE_decode_xer; +xer_type_encoder_f CHOICE_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f CHOICE_decode_jer; +jer_type_encoder_f CHOICE_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f CHOICE_decode_oer; +oer_type_encoder_f CHOICE_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f CHOICE_decode_uper; +per_type_encoder_f CHOICE_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f CHOICE_decode_aper; +per_type_encoder_f CHOICE_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f CHOICE_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +asn_outmost_tag_f CHOICE_outmost_tag; + +extern asn_TYPE_operation_t asn_OP_CHOICE; + +unsigned _fetch_present_idx( + const void *struct_ptr, + unsigned off, + unsigned size); + +void _set_present_idx( + void *sptr, + unsigned offset, + unsigned size, + unsigned present); + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, + const void *structure_ptr); + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, + void *structure_ptr, unsigned present); + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_CHOICE_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SEQUENCE.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SEQUENCE.h new file mode 100644 index 000000000..530e12449 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SEQUENCE.h @@ -0,0 +1,97 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_H_ +#define _CONSTR_SEQUENCE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SEQUENCE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* + * Tags to members mapping table (sorted). + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* + * Optional members of the extensions root (roms) or additions (aoms). + * Meaningful for PER. + */ + const int *oms; /* Optional MemberS */ + unsigned roms_count; /* Root optional members count */ + unsigned aoms_count; /* Additions optional members count */ + + /* + * Description of an extensions group. + * Root components are clustered at the beginning of the structure, + * whereas extensions are clustered at the end. -1 means not extensible. + */ + signed first_extension; /* First extension addition */ +} asn_SEQUENCE_specifics_t; + + +/* + * A set specialized functions dealing with the SEQUENCE type. + */ +asn_struct_free_f SEQUENCE_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f SEQUENCE_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SEQUENCE_compare; +asn_struct_copy_f SEQUENCE_copy; + +asn_constr_check_f SEQUENCE_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f SEQUENCE_decode_ber; +der_type_encoder_f SEQUENCE_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f SEQUENCE_decode_xer; +xer_type_encoder_f SEQUENCE_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f SEQUENCE_decode_jer; +jer_type_encoder_f SEQUENCE_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f SEQUENCE_decode_oer; +oer_type_encoder_f SEQUENCE_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f SEQUENCE_decode_uper; +per_type_encoder_f SEQUENCE_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f SEQUENCE_decode_aper; +per_type_encoder_f SEQUENCE_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f SEQUENCE_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SEQUENCE; + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SEQUENCE_OF.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SEQUENCE_OF.h new file mode 100644 index 000000000..395af1653 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SEQUENCE_OF.h @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_OF_H_ +#define _CONSTR_SEQUENCE_OF_H_ + +#include +#include /* Implemented using SET OF */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A set specialized functions dealing with the SEQUENCE OF type. + * Generally implemented using SET OF. + */ +#define SEQUENCE_OF_free SET_OF_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define SEQUENCE_OF_print SET_OF_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SEQUENCE_OF_compare; +#define SEQUENCE_OF_copy SET_OF_copy + +#define SEQUENCE_OF_constraint SET_OF_constraint + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define SEQUENCE_OF_decode_ber SET_OF_decode_ber +der_type_encoder_f SEQUENCE_OF_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define SEQUENCE_OF_decode_xer SET_OF_decode_xer +xer_type_encoder_f SEQUENCE_OF_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define SEQUENCE_OF_decode_jer SET_OF_decode_jer +jer_type_encoder_f SEQUENCE_OF_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#define SEQUENCE_OF_decode_oer SET_OF_decode_oer +#define SEQUENCE_OF_encode_oer SET_OF_encode_oer +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define SEQUENCE_OF_decode_uper SET_OF_decode_uper +per_type_encoder_f SEQUENCE_OF_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define SEQUENCE_OF_decode_aper SET_OF_decode_aper +per_type_encoder_f SEQUENCE_OF_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#define SEQUENCE_OF_random_fill SET_OF_random_fill +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SET_OF_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SET_OF.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SET_OF.h new file mode 100644 index 000000000..57c4992cc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_SET_OF.h @@ -0,0 +1,104 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef CONSTR_SET_OF_H +#define CONSTR_SET_OF_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SET_OF_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* XER-specific stuff */ + int as_XMLValueList; /* The member type must be encoded like this */ +} asn_SET_OF_specifics_t; + +/* + * A set specialized functions dealing with the SET OF type. + */ +asn_struct_free_f SET_OF_free; + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +asn_struct_print_f SET_OF_print; +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +asn_struct_compare_f SET_OF_compare; +asn_struct_copy_f SET_OF_copy; + +asn_constr_check_f SET_OF_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +ber_type_decoder_f SET_OF_decode_ber; +der_type_encoder_f SET_OF_encode_der; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +xer_type_decoder_f SET_OF_decode_xer; +xer_type_encoder_f SET_OF_encode_xer; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +jer_type_decoder_f SET_OF_decode_jer; +jer_type_encoder_f SET_OF_encode_jer; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +oer_type_decoder_f SET_OF_decode_oer; +oer_type_encoder_f SET_OF_encode_oer; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +per_type_decoder_f SET_OF_decode_uper; +per_type_encoder_f SET_OF_encode_uper; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +per_type_decoder_f SET_OF_decode_aper; +per_type_encoder_f SET_OF_encode_aper; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +asn_random_fill_f SET_OF_random_fill; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +extern asn_TYPE_operation_t asn_OP_SET_OF; + +/* + * Internally visible buffer holding a single encoded element. + */ +struct _el_buffer { + uint8_t *buf; + size_t length; + size_t allocated_size; + unsigned bits_unused; +}; + +enum SET_OF__encode_method { + SOES_DER, /* Distinguished Encoding Rules */ + SOES_CUPER, /* Canonical Unaligned Packed Encoding Rules */ + SOES_CAPER /* Canonical Aligned Packed Encoding Rules */ +}; + +struct _el_buffer * SET_OF__encode_sorted( + const asn_TYPE_member_t *elm, + const asn_anonymous_set_ *list, + enum SET_OF__encode_method method); + +void SET_OF__encode_sorted_free( + struct _el_buffer *el_buf, + size_t count); + +#ifdef __cplusplus +} +#endif + +#endif /* CONSTR_SET_OF_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_TYPE.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_TYPE.h new file mode 100644 index 000000000..a091df1f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constr_TYPE.h @@ -0,0 +1,323 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This file contains the declaration structure called "ASN.1 Type Definition", + * which holds all information necessary for encoding and decoding routines. + * This structure even contains pointer to these encoding and decoding routines + * for each defined ASN.1 type. + */ +#ifndef _CONSTR_TYPE_H_ +#define _CONSTR_TYPE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_TYPE_member_s; /* Forward declaration */ + +/* + * This type provides the context information for various ASN.1 routines, + * primarily ones doing decoding. A member _asn_ctx of this type must be + * included into certain target language's structures, such as compound types. + */ +typedef struct asn_struct_ctx_s { + short phase; /* Decoding phase */ + short step; /* Elementary step of a phase */ + int context; /* Other context information */ + void *ptr; /* Decoder-specific stuff (stack elements) */ + ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ +} asn_struct_ctx_t; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#include /* Basic Encoding Rules decoder */ +#include /* Distinguished Encoding Rules encoder */ +#else +typedef void (ber_type_decoder_f)(void); +typedef void (der_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#include /* Decoder of XER (XML, text) */ +#include /* Encoder into XER (XML, text) */ +#else +typedef void (xer_type_decoder_f)(void); +typedef void (xer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#include /* Decoder of JER (JSON, text) */ +#include /* Encoder into JER (JSON, text) */ +#else +typedef void (jer_type_decoder_f)(void); +typedef void (jer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +#include /* Packet Encoding Rules decoder */ +#include /* Packet Encoding Rules encoder */ +#else +typedef void (per_type_decoder_f)(void); +typedef void (per_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + +#include /* Subtype constraints support */ + +#if !defined(ASN_DISABLE_RFILL_SUPPORT) +#include /* Random structures support */ +#else +typedef void (asn_random_fill_f)(void); +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) +#include /* Octet Encoding Rules encoder */ +#include /* Octet Encoding Rules encoder */ +#else +typedef void (oer_type_decoder_f)(void); +typedef void (oer_type_encoder_f)(void); +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +/* + * Free the structure according to its specification. + * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. + * Do not use directly. + */ +enum asn_struct_free_method { + ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ + ASFM_FREE_UNDERLYING, /* free underlying members */ + ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ +}; +typedef void (asn_struct_free_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + void *struct_ptr, enum asn_struct_free_method); + +/* + * Free the structure including freeing the memory pointed to by ptr itself. + */ +#define ASN_STRUCT_FREE(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) + +/* + * Free the memory used by the members of the structure without freeing the + * the structure pointer itself. + * ZERO-OUT the structure to the safe clean state. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + */ +#define ASN_STRUCT_RESET(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) + +/* + * Free memory used by the members of the structure without freeing + * the structure pointer itself. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + * AVOID using it in the application code; + * Use a safer ASN_STRUCT_RESET() instead. + */ +#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) + +/* + * Print the structure according to its specification. + */ +typedef int(asn_struct_print_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, + int level, /* Indentation level */ + asn_app_consume_bytes_f *callback, void *app_key); + +/* + * Compare two structs between each other. + * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", + * and =0 if "equal to", for some type-specific, stable definition of + * "smaller", "greater" and "equal to". + */ +typedef int (asn_struct_compare_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_A, + const void *struct_B); + +/* + * Copies struct B into struct A. + * Allocates memory for struct A, if necessary. + */ +typedef int (asn_struct_copy_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_A, + const void *struct_B + ); + +/* + * Return the outmost tag of the type. + * If the type is untagged CHOICE, the dynamic operation is performed. + * NOTE: This function pointer type is only useful internally. + * Do not use it in your application. + */ +typedef ber_tlv_tag_t (asn_outmost_tag_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); +/* The instance of the above function type; used internally. */ +asn_outmost_tag_f asn_TYPE_outmost_tag; + +/* + * Fetch the desired type of the Open Type based on the + * Information Object Set driven constraints. + */ +typedef struct asn_type_selector_result_s { + const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ + unsigned presence_index; /* Associated choice variant. */ +} asn_type_selector_result_t; +typedef asn_type_selector_result_t(asn_type_selector_f)( + const struct asn_TYPE_descriptor_s *parent_type_descriptor, + const void *parent_structure_ptr); + +/* + * Generalized functions for dealing with the speciic type. + * May be directly invoked by applications. + */ +typedef struct asn_TYPE_operation_s { + asn_struct_free_f *free_struct; /* Free the structure */ + asn_struct_print_f *print_struct; /* Human readable output */ + asn_struct_compare_f *compare_struct; /* Compare two structures */ + asn_struct_copy_f *copy_struct; /* Copy method */ + ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ + der_type_encoder_f *der_encoder; /* Canonical DER encoder */ + xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ + xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ + jer_type_decoder_f *jer_decoder; /* Generic JER encoder */ + jer_type_encoder_f *jer_encoder; /* Generic JER encoder */ + oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ + oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ + per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ + per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ + per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ + per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ + asn_random_fill_f *random_fill; /* Initialize with a random value */ + asn_outmost_tag_f *outmost_tag; /* */ +} asn_TYPE_operation_t; + +/* + * A constraints tuple specifying both the OER and PER constraints. + */ +typedef struct asn_encoding_constraints_s { +#if !defined(ASN_DISABLE_OER_SUPPORT) + const struct asn_oer_constraints_s *oer_constraints; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + const struct asn_per_constraints_s *per_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + const struct asn_jer_constraints_s *jer_constraints; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + asn_constr_check_f *general_constraints; +} asn_encoding_constraints_t; + +/* + * The definitive description of the destination language's structure. + */ +typedef struct asn_TYPE_descriptor_s { + const char *name; /* A name of the ASN.1 type. "" in some cases. */ + const char *xml_tag; /* Name used in XML tag */ + + /* + * Generalized functions for dealing with the specific type. + * May be directly invoked by applications. + */ + asn_TYPE_operation_t *op; + + /*********************************************************************** + * Internally useful members. Not to be used by applications directly. * + **********************************************************************/ + + /* + * Tags that are expected to occur. + */ + const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ + unsigned tags_count; /* Number of tags which are expected */ + const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ + unsigned all_tags_count; /* Number of tags */ + + /* OER, PER, and general constraints */ + asn_encoding_constraints_t encoding_constraints; + + /* + * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). + */ + struct asn_TYPE_member_s *elements; + unsigned elements_count; + + /* + * Additional information describing the type, used by appropriate + * functions above. + */ + const void *specifics; +} asn_TYPE_descriptor_t; + +/* + * This type describes an element of the constructed type, + * i.e. SEQUENCE, SET, CHOICE, etc. + */ + enum asn_TYPE_flags_e { + ATF_NOFLAGS, + ATF_POINTER = 0x01, /* Represented by the pointer */ + ATF_OPEN_TYPE = 0x02, /* Open Type */ + ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ + }; +typedef struct asn_TYPE_member_s { + enum asn_TYPE_flags_e flags; /* Element's presentation flags */ + unsigned optional; /* Following optional members, including current */ + unsigned memb_offset; /* Offset of the element */ + ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ + int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ + asn_TYPE_descriptor_t *type; /* Member type descriptor */ + asn_type_selector_f *type_selector; /* IoS runtime type selector */ + asn_encoding_constraints_t encoding_constraints; + int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ + int (*default_value_set)(void **sptr); /* Set DEFAULT */ + const char *name; /* ASN.1 identifier of the element */ +} asn_TYPE_member_t; + +/* + * BER tag to element number mapping. + */ +typedef struct asn_TYPE_tag2member_s { + ber_tlv_tag_t el_tag; /* Outmost tag of the member */ + unsigned el_no; /* Index of the associated member, base 0 */ + int toff_first; /* First occurrence of the el_tag, relative */ + int toff_last; /* Last occurrence of the el_tag, relative */ +} asn_TYPE_tag2member_t; + +/* + * This function prints out the contents of the target language's structure + * (struct_ptr) into the file pointer (stream) in human readable form. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem dumping the structure. + * (See also xer_fprint() in xer_encoder.h) + */ +int asn_fprint(FILE *stream, /* Destination stream descriptor */ + const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ + const void *struct_ptr); /* Structure to be printed */ + +/* + * Copies a source structure (struct_src) into destination structure + * (struct_dst). Allocates memory for the destination structure, if necessary. + * RETURN VALUES: + * 0: Copy OK. + * -1: Problem copying the structure. + */ +int asn_copy(const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ + void **struct_dst, /* Structure to be populated */ + const void *struct_src); /* Structure to be copied */ + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_TYPE_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constraints.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constraints.h new file mode 100644 index 000000000..9bac9ce2e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/constraints.h @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN1_CONSTRAINTS_VALIDATOR_H +#define ASN1_CONSTRAINTS_VALIDATOR_H + +#include /* Platform-dependent types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Validate the structure according to the ASN.1 constraints. + * If errbuf and errlen are given, they shall be pointing to the appropriate + * buffer space and its length before calling this function. Alternatively, + * they could be passed as NULL's. If constraints validation fails, + * errlen will contain the actual number of bytes taken from the errbuf + * to encode an error message (properly 0-terminated). + * + * RETURN VALUES: + * This function returns 0 in case all ASN.1 constraints are met + * and -1 if one or more constraints were failed. + */ +int asn_check_constraints( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Target language's structure */ + char *errbuf, /* Returned error description */ + size_t *errlen /* Length of the error description */ +); + + +/* + * Generic type for constraint checking callback, + * associated with every type descriptor. + */ +typedef int(asn_constr_check_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, + asn_app_constraint_failed_f *optional_callback, /* Log the error */ + void *optional_app_key /* Opaque key passed to a callback */ +); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ +asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ + +/* + * Invoke the callback with a complete error message. + */ +#define ASN__CTFAIL if(ctfailcb) ctfailcb + +#ifdef __cplusplus +} +#endif + +#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_decoder.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_decoder.h new file mode 100644 index 000000000..000d7dc59 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_decoder.h @@ -0,0 +1,30 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_DECODER_H_ +#define _PER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Type of the type-specific PER decoder function. + */ +typedef asn_dec_rval_t(per_type_decoder_f)( + const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, void **struct_ptr, + asn_per_data_t *per_data); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_DECODER_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_encoder.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_encoder.h new file mode 100644 index 000000000..9a26cf13f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_encoder.h @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_ENCODER_H_ +#define _PER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Type of the generic PER encoder function. + */ +typedef asn_enc_rval_t(per_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +int ignore_output(const void *data, size_t size, void *app_key); + +typedef struct enc_dyn_arg { + void *buffer; + size_t length; + size_t allocated; +} enc_dyn_arg; +int encode_dyn_cb(const void *buffer, size_t size, void *key); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_ENCODER_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_opentype.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_opentype.h new file mode 100644 index 000000000..554352d90 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_opentype.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_OPENTYPE_H_ +#define _PER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t uper_sot_suck( + const asn_codec_ctx_t *, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_OPENTYPE_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_support.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_support.h new file mode 100644 index 000000000..935ae46d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/per_support.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_SUPPORT_H_ +#define _PER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Pre-computed PER constraints. + */ +typedef struct asn_per_constraint_s { + enum asn_per_constraint_flags { + APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ + APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ + APC_CONSTRAINED = 0x2, /* Fully constrained */ + APC_EXTENSIBLE = 0x4 /* May have extension */ + } flags; + int range_bits; /* Full number of bits in the range */ + int effective_bits; /* Effective bits */ + intmax_t lower_bound; /* "lb" value */ + intmax_t upper_bound; /* "ub" value */ +} asn_per_constraint_t; +typedef struct asn_per_constraints_s { + asn_per_constraint_t value; + asn_per_constraint_t size; + int (*value2code)(unsigned int value); + int (*code2value)(unsigned int code); +} asn_per_constraints_t; + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_data_s asn_per_data_t; +#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) +#define per_get_undo(data, bits) asn_get_undo(data, bits) +#define per_get_many_bits(data, dst, align, bits) \ + asn_get_many_bits(data, dst, align, bits) + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_outp_s asn_per_outp_t; +#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) +#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) +#define per_put_aligned_flush(out) asn_put_aligned_flush(out) + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_SUPPORT_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_decoder.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_decoder.h new file mode 100644 index 000000000..6395394f9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_decoder.h @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_DECODER_H_ +#define _UPER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. + * On success, this call always returns (.consumed >= 1), as per #11.1.3. + */ +asn_dec_rval_t uper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ +); + +/* + * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t uper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of the input data buffer, in bytes */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_DECODER_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_encoder.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_encoder.h new file mode 100644 index 000000000..7ebfe4953 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_encoder.h @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_ENCODER_H_ +#define _UPER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. Use the following formula to convert to bytes: + * bytes = ((.encoded + 7) / 8) + */ +asn_enc_rval_t uper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * A variant of uper_encode() which encodes data into the existing buffer + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. + */ +asn_enc_rval_t uper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); + +/* + * A variant of uper_encode_to_buffer() which allocates buffer itself. + * Returns the number of bytes in the buffer or -1 in case of failure. + * WARNING: This function produces a "Production of the complete encoding", + * with length of at least one octet. Contrast this to precise bit-packing + * encoding of uper_encode() and uper_encode_to_buffer(). + */ +ssize_t uper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void **buffer_r /* Buffer allocated and returned */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_ENCODER_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_opentype.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_opentype.h new file mode 100644 index 000000000..79bf4fad1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_opentype.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_OPENTYPE_H_ +#define _UPER_OPENTYPE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, + asn_per_data_t *pd); + +/* + * X.691 (2015/08), #11.2 + * Returns -1 if error is encountered. 0 if all OK. + */ +int uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_OPENTYPE_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_support.h b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_support.h new file mode 100644 index 000000000..a857fe08e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/include/etsi_its_cam_ts_coding/uper_support.h @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UPER_SUPPORT_H_ +#define _UPER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Get the length "n" from the Unaligned PER stream. + */ +ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, + size_t lower_bound, int *repeat); + +/* + * Get the normally small length "n". + */ +ssize_t uper_get_nslength(asn_per_data_t *pd); + +/* + * Get the normally small non-negative whole number. + */ +ssize_t uper_get_nsnnwn(asn_per_data_t *pd); + +/* X.691-2008/11, #11.5.6 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, uintmax_t *v, int nbits); + +/* + * Rebase the given value as an offset into the range specified by the + * lower bound (lb) and upper bound (ub). + * RETURN VALUES: + * -1: Conversion failed due to range problems. + * 0: Conversion was successful. + */ +int per_long_range_rebase(long, intmax_t lb, intmax_t ub, unsigned long *output); +int per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output); +/* The inverse operation: restores the value by the offset and its bounds. */ +int per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp); +int per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp); + +/* X.691-2008/11, #11.5 */ +int uper_put_constrained_whole_number_u(asn_per_outp_t *po, uintmax_t v, int nbits); + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "whole_length" to the Unaligned PER stream. + * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. + * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. + * This function returns the number of units which may be flushed + * in the next units saving iteration. + */ +ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, + int *opt_need_eom); + +/* + * Put the normally small length "n" to the Unaligned PER stream. + * Returns 0 or -1. + */ +int uper_put_nslength(asn_per_outp_t *po, size_t length); + +/* + * Put the normally small non-negative whole number. + */ +int uper_put_nsnnwn(asn_per_outp_t *po, int n); + +#ifdef __cplusplus +} +#endif + +#endif /* _UPER_SUPPORT_H_ */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/package.xml b/etsi_its_coding/etsi_its_cam_ts_coding/package.xml new file mode 100644 index 000000000..a5461454d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/package.xml @@ -0,0 +1,28 @@ + + + + etsi_its_cam_ts_coding + 2.1.0 + C++ compatible C source code for ETSI ITS CAMs (TS) generated from ASN.1 using asn1c + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + ros_environment + + catkin + ament_cmake + + + catkin + ament_cmake + + + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY.c new file mode 100644 index 000000000..af78d2297 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY.c @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { + sizeof(ANY_t), + offsetof(ANY_t, _asn_ctx), + ASN_OSUBV_ANY +}; +asn_TYPE_operation_t asn_OP_ANY = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, + OCTET_STRING_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + ANY_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_decode_jer_hex, + ANY_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, + 0, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + ANY_decode_uper, + ANY_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + ANY_decode_aper, + ANY_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + 0, /* Random fill is not defined for ANY type */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ANY = { + "ANY", + "ANY", + &asn_OP_ANY, + 0, 0, 0, 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) */ + asn_generic_no_constraint + }, /* No constraints */ + 0, 0, /* No members */ + &asn_SPC_ANY_specs, +}; diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY_aper.c new file mode 100644 index 000000000..35b63c9a3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY_aper.c @@ -0,0 +1,190 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +int +ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + uint8_t *buffer = NULL; + ssize_t erval; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); + + if(erval == -1) { + if(buffer) FREEMEM(buffer); + return -1; + } + assert((size_t)erval > 0); + + if(st->buf) FREEMEM(st->buf); + st->buf = buffer; + st->size = erval; + + return 0; +} + +ANY_t * +ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType_aper(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +int +ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} + +asn_dec_rval_t +ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("APER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = aper_get_length(pd, -1, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = aper_put_length(po, -1, -1, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && aper_put_length(po, -1, -1, 0, NULL)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY_uper.c new file mode 100644 index 000000000..776ed9ea1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ANY_uper.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +asn_dec_rval_t +ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("UPER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING.c new file mode 100644 index 000000000..395cd0541 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING.c @@ -0,0 +1,253 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BIT STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { + sizeof(BIT_STRING_t), + offsetof(BIT_STRING_t, _asn_ctx), + ASN_OSUBV_BIT +}; +asn_TYPE_operation_t asn_OP_BIT_STRING = { + OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + BIT_STRING_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + BIT_STRING_compare, + BIT_STRING_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_binary, + BIT_STRING_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + BIT_STRING_decode_jer, + BIT_STRING_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + BIT_STRING_decode_oer, + BIT_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + BIT_STRING_decode_uper, /* Unaligned PER decoder */ + BIT_STRING_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + BIT_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { + "BIT STRING", + "BIT_STRING", + &asn_OP_BIT_STRING, + asn_DEF_BIT_STRING_tags, + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + asn_DEF_BIT_STRING_tags, /* Same as above */ + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[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) */ + BIT_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs +}; + +/* + * BIT STRING generic constraint. + */ +int +BIT_STRING_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; + + if(st && st->buf) { + if((st->size == 0 && st->bits_unused) + || st->bits_unused < 0 || st->bits_unused > 7) { + ASN__CTFAIL(app_key, td, sptr, + "%s: invalid padding byte (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + +/* + * Non-destructively remove the trailing 0-bits from the given bit string. + */ +const BIT_STRING_t * +BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { + const uint8_t *b; + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + + if(st->size == 0) { + assert(st->bits_unused == 0); + return st; + } else { + for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { + ; + } + /* b points to the last byte which may contain data */ + if(*b) { + int unused = 7; + uint8_t v = *b; + v &= -(int8_t)v; + if(v & 0x0F) unused -= 4; + if(v & 0x33) unused -= 2; + if(v & 0x55) unused -= 1; + tmp->size = b-st->buf + 1; + tmp->bits_unused = unused; + } else { + tmp->size = b-st->buf; + tmp->bits_unused = 0; + } + + assert(b >= st->buf); + } + + unconst.c_buf = st->buf; + tmp->buf = unconst.nc_buf; + return tmp; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + /* + * Remove information about trailing bits, since + * X.680 (08/2015) #22.7 "ensure that different semantics are not" + * "associated with [values that differ only in] the trailing 0 bits." + */ + BIT_STRING_t compact_a, compact_b; + const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); + const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + + (void)specs; + assert(specs && specs->subvariant == ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + /* Figure out how many unused bits */ + if(a->bits_unused > b->bits_unused) { + return -1; + } else if(a->bits_unused < b->bits_unused) { + return 1; + } else { + return 0; + } + } + } else { + return ret; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } +} + +int +BIT_STRING_copy(const asn_TYPE_descriptor_t *td, void **aptr, + const void *bptr) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + BIT_STRING_t *a = (BIT_STRING_t *)*aptr; + const BIT_STRING_t *b = (const BIT_STRING_t *)bptr; + + if(!b) { + if(a) { + FREEMEM(a->buf); + FREEMEM(a); + *aptr = 0; + } + return 0; + } + + if(!a) { + a = *aptr = CALLOC(1, specs->struct_size); + if(!a) return -1; + } + + uint8_t* buf = MALLOC(b->size + 1); + if(!buf) return -1; + memcpy(buf, b->buf, b->size); + buf[b->size] = 0; + + FREEMEM(a->buf); + a->buf = buf; + a->size = b->size; + a->bits_unused = b->bits_unused; + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_print.c new file mode 100644 index 000000000..0f20cee73 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_print.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BIT STRING specific contents printer. + */ +int +BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + char scratch[64]; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + uint8_t *buf; + uint8_t *end; + char *p = scratch; + + (void)td; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + ilevel++; + buf = st->buf; + end = buf + st->size; + + /* + * Hexadecimal dump. + */ + for(; buf < end; buf++) { + if((buf - st->buf) % 16 == 0 && (st->size > 16) + && buf != st->buf) { + _i_INDENT(1); + /* Dump the string */ + if(cb(scratch, p - scratch, app_key) < 0) return -1; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Eat the tailing space */ + + if((st->size > 16)) { + _i_INDENT(1); + } + + /* Dump the incomplete 16-bytes row */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + if(st->bits_unused) { + int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", + st->bits_unused, st->bits_unused == 1 ? "" : "s"); + assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); + if(ret > 0 && ret < (ssize_t)sizeof(scratch) + && cb(scratch, ret, app_key) < 0) + return -1; + } + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_rfill.c new file mode 100644 index 000000000..6828aad7c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_rfill.c @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_bits, rnd_len; + BIT_STRING_t *st; + + if(max_length == 0) return result_skipped; + + switch(specs->subvariant) { + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + break; + default: + break; + } + + /* Figure out how far we should go */ + rnd_bits = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length < (size_t)pc->lower_bound) { + return result_skipped; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_bits = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_bits = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_bits from the table */ + if(rnd_bits < max_length) { + break; + } + /* Fall through */ + default: + rnd_bits = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_bits = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_bits = asn_random_between(0, max_length - 1); + } + } else { +#else + if(!constraints) constraints = &td->encoding_constraints; + { +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + if(rnd_bits >= max_length) { + rnd_bits = asn_random_between(0, max_length - 1); + } + } + + rnd_len = (rnd_bits + 7) / 8; + buf = CALLOC(1, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[rnd_len]; + + for(b = buf; b < bend; b++) { + *(uint8_t *)b = asn_random_between(0, 255); + } + *b = 0; /* Zero-terminate just in case. */ + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = rnd_len; + st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; + if(st->bits_unused) { + assert(st->size > 0); + st->buf[st->size-1] &= 0xff << st->bits_unused; + } + + result_ok.length = st->size; + return result_ok; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_uper.c new file mode 100644 index 000000000..27a1b3e7e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BIT_STRING_uper.c @@ -0,0 +1,244 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { + APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; + +asn_dec_rval_t +BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + + (void)opt_codec_ctx; + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + + if(specs->subvariant != ASN_OSUBV_BIT) { + ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); + RETURN(RC_FAIL); + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %"ASN_PRIdMAX" .. %"ASN_PRIdMAX" bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + st->size = (csiz->upper_bound + 7) >> 3; + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + ASN_DEBUG("Encoding BIT STRING size %"ASN_PRIdMAX"", csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += csiz->upper_bound; + st->buf[st->size] = 0; + st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + BIT_STRING_t compact_bstr; /* Do not modify this directly! */ + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + size_t size_in_bits; + const uint8_t *buf; + int ret; + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(specs->subvariant == ASN_OSUBV_BIT) { + if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + /* Figure out the size without the trailing bits */ + st = BIT_STRING__compactify(st, &compact_bstr); + size_in_bits = 8 * st->size - st->bits_unused; + + ASN_DEBUG( + "Encoding %s into %" ASN_PRI_SIZE " bits" + " (%"ASN_PRIdMAX"..%"ASN_PRIdMAX", effective %d)%s", + td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_bits > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; + ASN_DEBUG( + "Encoding %" ASN_PRI_SIZE " bytes (%"ASN_PRIdMAX"), length (in %d bits) trailer %d; actual " + "value %" ASN_PRI_SSIZE "", + st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, + add_trailer, + add_trailer ? 0 : (ssize_t)size_in_bits - (ssize_t)csiz->lower_bound); + ret = per_put_few_bits( + po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = per_put_many_bits(po, st->buf, size_in_bits); + if(ret) ASN__ENCODE_FAILED; + if(add_trailer) { + static const uint8_t zeros[16]; + size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; + while(trailing_zero_bits > 0) { + if(trailing_zero_bits > 8 * sizeof(zeros)) { + ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); + trailing_zero_bits -= 8 * sizeof(zeros); + } else { + ret = per_put_many_bits(po, zeros, trailing_zero_bits); + trailing_zero_bits = 0; + } + if(ret) ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + do { + int need_eom = 0; + ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); + + ret = per_put_many_bits(po, buf, maySave); + if(ret) ASN__ENCODE_FAILED; + + buf += maySave >> 3; + size_in_bits -= maySave; + assert(!(maySave & 0x07) || !size_in_bits); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_bits); + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN.c new file mode 100644 index 000000000..c05a88e3c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN.c @@ -0,0 +1,160 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * BOOLEAN basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_operation_t asn_OP_BOOLEAN = { + BOOLEAN_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + BOOLEAN_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + BOOLEAN_compare, + BOOLEAN_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + BOOLEAN_decode_ber, + BOOLEAN_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + BOOLEAN_decode_xer, + BOOLEAN_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + BOOLEAN_decode_jer, + BOOLEAN_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + BOOLEAN_decode_oer, + BOOLEAN_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + BOOLEAN_decode_uper, /* Unaligned PER decoder */ + BOOLEAN_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + BOOLEAN_decode_aper, /* Aligned PER decoder */ + BOOLEAN_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + BOOLEAN_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BOOLEAN = { + "BOOLEAN", + "BOOLEAN", + &asn_OP_BOOLEAN, + asn_DEF_BOOLEAN_tags, + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + asn_DEF_BOOLEAN_tags, /* Same as above */ + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[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) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +void +BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(BOOLEAN_t)); + break; + } + } +} + +int +BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const BOOLEAN_t *a = aptr; + const BOOLEAN_t *b = bptr; + + (void)td; + + if(a && b) { + if(!*a == !*b) { /* TRUE can be encoded by any non-zero byte. */ + return 0; + } else if(!*a) { + return -1; + } else { + return 1; + } + } else if(!a) { + return -1; + } else { + return 1; + } +} + +int +BOOLEAN_copy(const asn_TYPE_descriptor_t *td, void **aptr, + const void *bptr) { + BOOLEAN_t *a = *aptr; + const BOOLEAN_t *b = bptr; + + (void)td; + + if(!b) { + if(a) { + FREEMEM(a); + *aptr = 0; + } + return 0; + } + + if(!a) { + a = *aptr = MALLOC(sizeof(BOOLEAN_t)); + if(!a) return -1; + } + + *a = *b; + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_aper.c new file mode 100644 index 000000000..4048a5a07 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_aper.c @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +BOOLEAN_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + (void)td; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: + *st = 1; + break; + case 0: + *st = 0; + break; + case -1: + default: + ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + +asn_enc_rval_t +BOOLEAN_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_print.c new file mode 100644 index 000000000..692fbd5c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_print.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +BOOLEAN_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + const char *buf; + size_t buflen; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st) { + if(*st) { + buf = "TRUE"; + buflen = 4; + } else { + buf = "FALSE"; + buflen = 5; + } + } else { + buf = ""; + buflen = 8; + } + + return (cb(buf, buflen, app_key) < 0) ? -1 : 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_rfill.c new file mode 100644 index 000000000..1a0c31169 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_rfill.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +BOOLEAN_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + BOOLEAN_t *st = *sptr; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(st == NULL) { + return result_failed; + } + } + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_CONSTRAINED) { + *st = asn_random_between(pc->lower_bound, pc->upper_bound); + return result_ok; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + /* Simulate booleans that are sloppily set and biased. */ + switch(asn_random_between(0, 7)) { + case 0: + case 1: + case 2: + *st = 0; break; + case 3: *st = -1; break; + case 4: *st = 1; break; + case 5: *st = INT_MIN; break; + case 6: *st = INT_MAX; break; + default: + *st = asn_random_between(INT_MIN, INT_MAX); + break; + } + return result_ok; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_uper.c new file mode 100644 index 000000000..e02016169 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/BOOLEAN_uper.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +BOOLEAN_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: *st = 1; break; + case 0: *st = 0; break; + case -1: default: ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + + +asn_enc_rval_t +BOOLEAN_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED.c new file mode 100644 index 000000000..29dbf1b34 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED.c @@ -0,0 +1,95 @@ +/*- + * Copyright (c) 2003, 2005, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ENUMERATED basic type description. + */ +static const ber_tlv_tag_t asn_DEF_ENUMERATED_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_operation_t asn_OP_ENUMERATED = { + ASN__PRIMITIVE_TYPE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + INTEGER_print, /* Implemented in terms of INTEGER */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + INTEGER_compare, /* Implemented in terms of INTEGER */ + INTEGER_copy, /* Implemented in terms of INTEGER */ +#if !defined(ASN_DISABLE_BER_SUPPORT) + ber_decode_primitive, + INTEGER_encode_der, /* Implemented in terms of INTEGER */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + INTEGER_decode_xer, /* This is temporary! */ + INTEGER_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + ENUMERATED_decode_jer, + INTEGER_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + ENUMERATED_decode_oer, + ENUMERATED_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + ENUMERATED_decode_uper, /* Unaligned PER decoder */ + ENUMERATED_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + ENUMERATED_decode_aper, /* Aligned PER decoder */ + ENUMERATED_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + ENUMERATED_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ENUMERATED = { + "ENUMERATED", + "ENUMERATED", + &asn_OP_ENUMERATED, + asn_DEF_ENUMERATED_tags, + sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]), + asn_DEF_ENUMERATED_tags, /* Same as above */ + sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[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) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED_aper.c new file mode 100644 index 000000000..29bf8d8f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED_aper.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +ENUMERATED_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rval; + ENUMERATED_t *st = (ENUMERATED_t *)*sptr; + long value; + void *vptr = &value; + + if(!st) { + st = (ENUMERATED_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + rval = NativeEnumerated_decode_aper(opt_codec_ctx, td, constraints, + (void **)&vptr, pd); + if(rval.code == RC_OK) + if(asn_long2INTEGER(st, value)) + rval.code = RC_FAIL; + return rval; +} + +asn_enc_rval_t +ENUMERATED_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const ENUMERATED_t *st = (const ENUMERATED_t *)sptr; + long value; + + if(asn_INTEGER2long(st, &value)) + ASN__ENCODE_FAILED; + + return NativeEnumerated_encode_aper(td, constraints, &value, po); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED_uper.c new file mode 100644 index 000000000..7dd061aa6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ENUMERATED_uper.c @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +ENUMERATED_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rval; + ENUMERATED_t *st = (ENUMERATED_t *)*sptr; + long value; + void *vptr = &value; + + if(!st) { + st = (ENUMERATED_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + rval = NativeEnumerated_decode_uper(opt_codec_ctx, td, constraints, + (void **)&vptr, pd); + if(rval.code == RC_OK) { + if(asn_long2INTEGER(st, value)) { + rval.code = RC_FAIL; + } + } + return rval; +} + +asn_enc_rval_t +ENUMERATED_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const ENUMERATED_t *st = (const ENUMERATED_t *)sptr; + long value; + + if(asn_INTEGER2long(st, &value)) { + ASN__ENCODE_FAILED; + } + + return NativeEnumerated_encode_uper(td, constraints, &value, po); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/GraphicString.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/GraphicString.c new file mode 100644 index 000000000..d91dd9ffa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/GraphicString.c @@ -0,0 +1,97 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * GraphicString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_GraphicString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (25 << 2)), /* [UNIVERSAL 25] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_GraphicString = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, /* non-ascii string */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, + OCTET_STRING_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, /* Can't expect it to be ASCII/UTF8 */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_decode_jer_hex, + OCTET_STRING_encode_jer, /* Can't expect it to be ASCII/UTF8 */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_GraphicString = { + "GraphicString", + "GraphicString", + &asn_OP_GraphicString, + asn_DEF_GraphicString_tags, + sizeof(asn_DEF_GraphicString_tags) + / sizeof(asn_DEF_GraphicString_tags[0]) - 1, + asn_DEF_GraphicString_tags, + sizeof(asn_DEF_GraphicString_tags) + / sizeof(asn_DEF_GraphicString_tags[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) */ + asn_generic_unknown_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/IA5String.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/IA5String.c new file mode 100644 index 000000000..a39878f09 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/IA5String.c @@ -0,0 +1,139 @@ +/*- + * Copyright (c) 2003 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * IA5String basic type description. + */ +static const ber_tlv_tag_t asn_DEF_IA5String_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)), /* [UNIVERSAL 22] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_DEF_IA5String_per_constraints = { + { APC_CONSTRAINED, 7, 7, 0, 0x7f }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + 0, 0 +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_operation_t asn_OP_IA5String = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print_utf8, /* ASCII subset */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, + OCTET_STRING_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_decode_jer_utf8, + OCTET_STRING_encode_jer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_IA5String = { + "IA5String", + "IA5String", + &asn_OP_IA5String, + asn_DEF_IA5String_tags, + sizeof(asn_DEF_IA5String_tags) + / sizeof(asn_DEF_IA5String_tags[0]) - 1, + asn_DEF_IA5String_tags, + sizeof(asn_DEF_IA5String_tags) + / sizeof(asn_DEF_IA5String_tags[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) + &asn_DEF_IA5String_per_constraints, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + IA5String_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +IA5String_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + /* + * IA5String is generally equivalent to 7bit ASCII. + * ISO/ITU-T T.50, 1963. + */ + for(; buf < end; buf++) { + if(*buf > 0x7F) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld out of range: " + "%d > 127 (%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER.c new file mode 100644 index 000000000..b37195ab5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER.c @@ -0,0 +1,808 @@ +/* + * Copyright (c) 2003-2019 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * INTEGER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_INTEGER = { + INTEGER_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + INTEGER_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + INTEGER_compare, + INTEGER_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + ber_decode_primitive, + INTEGER_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + INTEGER_decode_xer, + INTEGER_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + INTEGER_decode_jer, + INTEGER_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + INTEGER_decode_oer, /* OER decoder */ + INTEGER_encode_oer, /* Canonical OER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + INTEGER_decode_uper, /* Unaligned PER decoder */ + INTEGER_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + INTEGER_decode_aper, /* Aligned PER decoder */ + INTEGER_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + INTEGER_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ +0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_INTEGER = { + "INTEGER", + "INTEGER", + &asn_OP_INTEGER, + asn_DEF_INTEGER_tags, + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + asn_DEF_INTEGER_tags, /* Same as above */ + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[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) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * INTEGER specific human-readable output. + */ +ssize_t +INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; + uint8_t *buf = st->buf; + uint8_t *buf_end = st->buf + st->size; + intmax_t value = 0; + ssize_t wrote = 0; + char *p = NULL; + int ret = -1; + + if(specs && specs->field_unsigned) + ret = asn_INTEGER2umax(st, (uintmax_t *)&value); + else + ret = asn_INTEGER2imax(st, &value); + + /* Simple case: the integer size is small */ + if(ret == 0) { + const asn_INTEGER_enum_map_t *el; + el = (value >= 0 || !specs || !specs->field_unsigned) + ? INTEGER_map_value2enum(specs, value) : 0; + if(el) { + if(plainOrXER == 0) + return asn__format_to_callback(cb, app_key, + "%" ASN_PRIdMAX " (%s)", value, el->enum_name); + else + return asn__format_to_callback(cb, app_key, + "<%s/>", el->enum_name); + } else if(plainOrXER && specs && specs->strict_enumeration) { + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } else { + return asn__format_to_callback(cb, app_key, + (specs && specs->field_unsigned) + ? "%" ASN_PRIuMAX + : "%" ASN_PRIdMAX, + value); + } + } else if(plainOrXER && specs && specs->strict_enumeration) { + /* + * Here and earlier, we cannot encode the ENUMERATED values + * if there is no corresponding identifier. + */ + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } + + /* Output in the long xx:yy:zz... format */ + /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ + for(p = scratch; buf < buf_end; buf++) { + const char * const h2c = "0123456789ABCDEF"; + if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { + /* Flush buffer */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + wrote += p - scratch; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x3a; /* ":" */ + } + if(p != scratch) + p--; /* Remove the last ":" */ + + wrote += p - scratch; + return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; +} + +static int +INTEGER__compar_value2enum(const void *kp, const void *am) { + long a = *(const long *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + long b = el->nat_value; + if(a < b) return -1; + else if(a == b) return 0; + else return 1; +} + +const asn_INTEGER_enum_map_t * +INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { + int count = specs ? specs->map_count : 0; + if(!count) return 0; + return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, + count, sizeof(specs->value2enum[0]), + INTEGER__compar_value2enum); +} + +static intmax_t +asn__integer_convert(const uint8_t *b, const uint8_t *end) { + uintmax_t value; + + /* Perform the sign initialization */ + /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ + if((*b >> 7)) { + value = (uintmax_t)(-1); + } else { + value = 0; + } + + /* Conversion engine */ + for(; b < end; b++) { + value = (value << 8) | *b; + } + + return value; +} + +int +asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { + uint8_t *b, *end; + size_t size = 0; + + /* Sanity checking */ + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + /* Cache the begin/end of the buffer */ + b = iptr->buf; /* Start of the INTEGER buffer */ + size = iptr->size; + end = b + size; /* Where to stop */ + + if(size > sizeof(intmax_t)) { + uint8_t *end1 = end - 1; + /* + * Slightly more advanced processing, + * able to process INTEGERs with >sizeof(intmax_t) bytes + * when the actual value is small, e.g. for intmax_t == int32_t + * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) + */ + /* Skip out the insignificant leading bytes */ + for(; b < end1; b++) { + switch(*b) { + case 0x00: if((b[1] & 0x80) == 0) continue; break; + case 0xff: if((b[1] & 0x80) != 0) continue; break; + } + break; + } + + size = end - b; + if(size > sizeof(intmax_t)) { + /* Still cannot fit the sizeof(intmax_t) */ + errno = ERANGE; + return -1; + } + } + + /* Shortcut processing of a corner case */ + if(end == b) { + *lptr = 0; + return 0; + } + + *lptr = asn__integer_convert(b, end); + return 0; +} + +/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ +int +asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { + uint8_t *b, *end; + uintmax_t value; + size_t size; + + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + b = iptr->buf; + size = iptr->size; + end = b + size; + + /* If all extra leading bytes are zeroes, ignore them */ + for(; size > sizeof(value); b++, size--) { + if(*b) { + /* Value won't fit into uintmax_t */ + errno = ERANGE; + return -1; + } + } + + /* Conversion engine */ + for(value = 0; b < end; b++) + value = (value << 8) | *b; + + *lptr = value; + return 0; +} + +int +asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= ((~(uintmax_t)0) >> 1)) { + return asn_imax2INTEGER(st, value); + } + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ + for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { + uint8_t *buf, *bp; + volatile uint8_t *p; + volatile uint8_t *pstart; + volatile uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + volatile int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)(long *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +int +asn_INTEGER2long(const INTEGER_t *iptr, long *l) { + intmax_t v; + if(asn_INTEGER2imax(iptr, &v) == 0) { + if(v < LONG_MIN || v > LONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { + uintmax_t v; + if(asn_INTEGER2umax(iptr, &v) == 0) { + if(v > ULONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_long2INTEGER(INTEGER_t *st, long value) { + return asn_imax2INTEGER(st, value); +} + +int +asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { + return asn_imax2INTEGER(st, value); +} + +int asn_INTEGER2int64(const INTEGER_t *st, int64_t *value) { + intmax_t v; + if(asn_INTEGER2imax(st, &v) == 0) { + if(v < INT64_MIN || v > INT64_MAX) { + errno = ERANGE; + return -1; + } + *value = v; + return 0; + } else { + return -1; + } +} + +int asn_INTEGER2uint64(const INTEGER_t *st, uint64_t *value) { + uintmax_t v; + if(asn_INTEGER2umax(st, &v) == 0) { + if(v > UINT64_MAX) { + errno = ERANGE; + return -1; + } + *value = v; + return 0; + } else { + return -1; + } +} + +int +asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= INT64_MAX) + return asn_int642INTEGER(st, value); + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; + for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_int642INTEGER(INTEGER_t *st, int64_t value) { + uint8_t *buf, *bp; + volatile uint8_t *p; + volatile uint8_t *pstart; + volatile uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + volatile int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtol/strtoimax(3). + */ +enum asn_strtox_result_e +asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { + int sign = 1; + intmax_t value; + + const intmax_t asn1_intmax_max = ((~(uintmax_t)0) >> 1); + const intmax_t upper_boundary = asn1_intmax_max / 10; + intmax_t last_digit_max = asn1_intmax_max % 10; + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + last_digit_max++; + sign = -1; + /* FALL THROUGH */ + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + if(*str >= 0x30 && *str <= 0x39) { + int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + if(sign > 0) { + value = value * 10 + d; + } else { + sign = 1; + value = -value * 10 - d; + } + str += 1; + if(str < *end) { + // If digits continue, we're guaranteed out of range. + *end = str; + if(*str >= 0x30 && *str <= 0x39) { + return ASN_STRTOX_ERROR_RANGE; + } else { + *intp = sign * value; + return ASN_STRTOX_EXTRA_DATA; + } + } + break; + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + *intp = sign * value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *intp = sign * value; + return ASN_STRTOX_OK; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtoul/strtoumax(3). + */ +enum asn_strtox_result_e +asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { + uintmax_t value; + + const uintmax_t asn1_uintmax_max = ((~(uintmax_t)0)); + const uintmax_t upper_boundary = asn1_uintmax_max / 10; + uintmax_t last_digit_max = asn1_uintmax_max % 10; + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + return ASN_STRTOX_ERROR_INVAL; + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + if(*str >= 0x30 && *str <= 0x39) { + unsigned int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + value = value * 10 + d; + str += 1; + if(str < *end) { + // If digits continue, we're guaranteed out of range. + *end = str; + if(*str >= 0x30 && *str <= 0x39) { + return ASN_STRTOX_ERROR_RANGE; + } else { + *uintp = value; + return ASN_STRTOX_EXTRA_DATA; + } + } + break; + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + *uintp = value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *uintp = value; + return ASN_STRTOX_OK; +} + +enum asn_strtox_result_e +asn_strtol_lim(const char *str, const char **end, long *lp) { + intmax_t value; + switch(asn_strtoimax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +enum asn_strtox_result_e +asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { + uintmax_t value; + switch(asn_strtoumax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +int +INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const INTEGER_t *a = aptr; + const INTEGER_t *b = bptr; + + (void)td; + + if(a && b) { + if(a->size && b->size) { + int sign_a = (a->buf[0] & 0x80) ? -1 : 1; + int sign_b = (b->buf[0] & 0x80) ? -1 : 1; + + if(sign_a < sign_b) return -1; + if(sign_a > sign_b) return 1; + + /* The shortest integer wins, unless comparing negatives */ + if(a->size < b->size) { + return -1 * sign_a; + } else if(a->size > b->size) { + return 1 * sign_b; + } + + return sign_a * memcmp(a->buf, b->buf, a->size); + } else if(a->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (1) * sign; + } else if(b->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (-1) * sign; + } else { + return 0; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + +int +INTEGER_copy(const asn_TYPE_descriptor_t *td, void **aptr, + const void *bptr) { + (void)td; + INTEGER_t *a = *aptr; + const INTEGER_t *b = bptr; + + if(!b) { + if(a) { + FREEMEM(a->buf); + FREEMEM(a); + *aptr = 0; + } + return 0; + } + + if(!a) { + a = *aptr = CALLOC(1, sizeof(*a)); + if(!a) return -1; + } + + if(b->size) { + uint8_t* buf = MALLOC(b->size); + if(!buf) return -1; + memcpy(buf, b->buf, b->size); + FREEMEM(a->buf); + a->buf = buf; + a->size = b->size; + } else { + FREEMEM(a->buf); + a->buf = 0; + a->size = 0; + } + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_aper.c new file mode 100644 index 000000000..689108abe --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_aper.c @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #10.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if (ct->range_bits > 16) { + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + int length = 0, i; + intmax_t value = 0; + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, + max_range_bytes, i); + + if ((length = per_get_few_bits(pd, i)) < 0) + ASN__DECODE_FAILED; + + /* X.691 #12.2.6 length determinant + lb (1) */ + length += 1; + ASN_DEBUG("Got length %d", length); + if (aper_get_align(pd) != 0) + ASN__DECODE_FAILED; + while (length--) { + int buf = per_get_few_bits(pd, 8); + if (buf < 0) + ASN__DECODE_FAILED; + value += (((intmax_t)buf) << (8 * length)); + } + + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_umax2INTEGER(st, (uintmax_t)value) + : asn_imax2INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %"ASN_PRIdMAX" + low %"ASN_PRIdMAX"", + value, (intmax_t)ct->lower_bound); + } else { + intmax_t value = 0; + if (ct->range_bits < 8) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else if (ct->range_bits == 8) { + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else { + /* Align */ + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, 16); + if(value < 0) ASN__DECODE_STARVED; + } + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_umax2INTEGER(st, (uintmax_t)value) + : asn_imax2INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %"ASN_PRIdMAX" + low %"ASN_PRIdMAX"", + value, (intmax_t)ct->lower_bound); + } + return rval; + } else { + ASN__DECODE_FAILED; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len; + void *p; + int ret; + + /* Get the PER length */ + len = aper_get_length(pd, -1, -1, -1, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetics. + */ + long value; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_long2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + intmax_t value = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + uintmax_t uval; + if(asn_INTEGER2umax(st, &uval)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(uval < (uintmax_t)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(uval < (uintmax_t)ct->lower_bound + || uval > (uintmax_t)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %"ASN_PRIdMAX" (%02x/%"ASN_PRI_SIZE") lb %"ASN_PRIdMAX" ub %"ASN_PRIdMAX" %s", + uval, st->buf[0], st->size, + (intmax_t)ct->lower_bound, + (intmax_t)ct->upper_bound, + inext ? "ext" : "fix"); + value = uval; + } else { + if(asn_INTEGER2imax(st, &value)) ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value < ct->lower_bound + || value > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %"ASN_PRIdMAX" (%02x/%"ASN_PRI_SIZE") lb %"ASN_PRIdMAX" ub %"ASN_PRIdMAX" %s", + value, st->buf[0], st->size, + (intmax_t)ct->lower_bound, + (intmax_t)ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->range_bits >= 0) { + uintmax_t v; + + /* #10.5.6 */ + ASN_DEBUG("Encoding integer %"ASN_PRIdMAX" (%"ASN_PRIdMAX") with range %d bits", + value, (intmax_t)(value - ct->lower_bound), + ct->range_bits); + + v = value - ct->lower_bound; + + /* #12 <= 8 -> alignment ? */ + int range = ct->upper_bound - ct->lower_bound + 1; + if (ct->range_bits < 8 || (ct->range_bits == 8 && range < 256)) { + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits == 8) { + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits <= 16) { + /* Consume the bytes to align on octet */ + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x0000 | v, 16)) + ASN__ENCODE_FAILED; + } else { + /* TODO: extend to >64 bits */ + int64_t v64 = v; + int i, j; + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + + for (j = sizeof(int64_t) -1; j != 0; j--) { + int64_t val; + val = v64 >> (j * 8); + if (val != 0) + break; + } + + /* Putting length in the minimum number of bits ex: 5 = 3bits */ + if (per_put_few_bits(po, j, i)) + ASN__ENCODE_FAILED; + + /* Consume the bits to align on octet */ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + /* Put the value */ + for (i = 0; i <= j; i++) { + if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) + ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %"ASN_PRIdMAX"", (intmax_t)ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + int need_eom = 0; + ssize_t mayEncode = aper_put_length(po, -1, -1, end - buf, &need_eom); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_print.c new file mode 100644 index 000000000..b801e951c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_print.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * INTEGER specific human-readable output. + */ +int +INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + ssize_t ret; + + (void)ilevel; + + if(!st || !st->buf) + ret = cb("", 8, app_key); + else + ret = INTEGER__dump(td, st, cb, app_key, 0); + + return (ret < 0) ? -1 : 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_rfill.c new file mode 100644 index 000000000..8b9ee004c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_rfill.c @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + INTEGER_t *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (INTEGER_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + const asn_per_constraints_t *ct; + + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + } + + if(asn_imax2INTEGER(st, value)) { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } else { + *sptr = st; + result_ok.length = st->size; + return result_ok; + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_uper.c new file mode 100644 index 000000000..69caea801 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/INTEGER_uper.c @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691-2008/11, #13.2.2, constrained whole number */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #11.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if((size_t)ct->range_bits > 8 * sizeof(uintmax_t)) + ASN__DECODE_FAILED; + + if(specs && specs->field_unsigned) { + uintmax_t uvalue = 0; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %"ASN_PRIuMAX" + low %"ASN_PRIdMAX"", + uvalue, ct->lower_bound); + uvalue += ct->lower_bound; + if(asn_umax2INTEGER(st, uvalue)) + ASN__DECODE_FAILED; + } else { + uintmax_t uvalue = 0; + intmax_t svalue; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %"ASN_PRIuMAX" + low %"ASN_PRIdMAX"", + uvalue, ct->lower_bound); + if(per_imax_range_unrebase(uvalue, ct->lower_bound, + ct->upper_bound, &svalue) + || asn_imax2INTEGER(st, svalue)) { + ASN__DECODE_FAILED; + } + } + return rval; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len = 0; + void *p = NULL; + int ret = 0; + + /* Get the PER length */ + len = uper_get_length(pd, -1, 0, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetic. + */ + long value = 0; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_imax2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + union { + intmax_t s; + uintmax_t u; + } value; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + if(asn_INTEGER2umax(st, &value.u)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value.u < (uintmax_t)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value.u < (uintmax_t)ct->lower_bound + || value.u > (uintmax_t)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %"ASN_PRIuMAX" (%02x/%" ASN_PRI_SIZE ") lb %"ASN_PRIuMAX" ub %"ASN_PRIuMAX" %s", + value.u, st->buf[0], st->size, + (uintmax_t)ct->lower_bound, (uintmax_t)ct->upper_bound, + inext ? "ext" : "fix"); + } else { + if(asn_INTEGER2imax(st, &value.s)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value.s < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value.s < ct->lower_bound + || value.s > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %"ASN_PRIdMAX" (%02x/%" ASN_PRI_SIZE ") lb %"ASN_PRIdMAX" ub %"ASN_PRIdMAX" %s", + value.s, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + /* X.691-11/2008, #13.2.2, test if constrained whole number */ + if(ct && ct->range_bits >= 0) { + uintmax_t v; + /* #11.5.6 -> #11.3 */ + if(specs && specs->field_unsigned) { + if(((uintmax_t)ct->lower_bound > (uintmax_t)(ct->upper_bound) + || (value.u < (uintmax_t)ct->lower_bound)) + || (value.u > (uintmax_t)ct->upper_bound)) { + ASN_DEBUG("Value %"ASN_PRIuMAX" to-be-encoded is outside the bounds [%"ASN_PRIuMAX", %"ASN_PRIuMAX"]!", + value.u, (uintmax_t)ct->lower_bound, (uintmax_t)ct->upper_bound); + ASN__ENCODE_FAILED; + } + v = value.u - (uintmax_t)ct->lower_bound; + } else { + if(per_imax_range_rebase(value.s, ct->lower_bound, ct->upper_bound, &v)) { + ASN__ENCODE_FAILED; + } + } + ASN_DEBUG("Encoding integer %"ASN_PRIuMAX" with range %d bits", + v, ct->range_bits); + if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %"ASN_PRIdMAX"", ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + int need_eom = 0; + ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL.c new file mode 100644 index 000000000..7ee786e89 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL.c @@ -0,0 +1,131 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * NULL basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NULL_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)) +}; +asn_TYPE_operation_t asn_OP_NULL = { + NULL_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NULL_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NULL_compare, + NULL_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NULL_decode_ber, + NULL_encode_der, /* Special handling of DER encoding */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NULL_decode_xer, + NULL_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NULL_decode_jer, + NULL_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NULL_decode_oer, + NULL_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NULL_decode_uper, /* Unaligned PER decoder */ + NULL_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NULL_decode_aper, /* Aligned PER decoder */ + NULL_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NULL_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NULL = { + "NULL", + "NULL", + &asn_OP_NULL, + asn_DEF_NULL_tags, + sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]), + asn_DEF_NULL_tags, /* Same as above */ + sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[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) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +void +NULL_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(NULL_t)); + break; + } + } +} + +int +NULL_compare(const asn_TYPE_descriptor_t *td, const void *a, const void *b) { + (void)td; + (void)a; + (void)b; + return 0; +} + +int +NULL_copy(const asn_TYPE_descriptor_t *td, void **a, const void *b) { + (void)td; + + if(b && !*a) { + *a = CALLOC(1, sizeof(NULL_t)); + if (!*a) return -1; + } + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_aper.c new file mode 100644 index 000000000..1f12cb578 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_aper.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NULL_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + (void)pd; + + if(!*sptr) { + *sptr = MALLOC(sizeof(NULL_t)); + if(*sptr) { + *(NULL_t *)*sptr = 0; + } else { + ASN__DECODE_FAILED; + } + } + + /* + * NULL type does not have content octets. + */ + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + + +asn_enc_rval_t +NULL_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + asn_enc_rval_t er = {0,0,0}; + + (void)td; + (void)constraints; + (void)sptr; + (void)po; + + er.encoded = 0; + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_print.c new file mode 100644 index 000000000..22f2188e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_print.c @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +NULL_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(sptr) { + return (cb("", 9, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_rfill.c new file mode 100644 index 000000000..fbcd6c1e1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_rfill.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +NULL_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + NULL_t *st = *sptr; + + (void)td; + (void)constr; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (NULL_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(st == NULL) { + return result_failed; + } + } + + return result_ok; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_uper.c new file mode 100644 index 000000000..ab293e2b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NULL_uper.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NULL_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + (void)pd; + + if(!*sptr) { + *sptr = MALLOC(sizeof(NULL_t)); + if(*sptr) { + *(NULL_t *)*sptr = 0; + } else { + ASN__DECODE_FAILED; + } + } + + /* + * NULL type does not have content octets. + */ + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +asn_enc_rval_t +NULL_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + asn_enc_rval_t er = {0,0,0}; + + (void)td; + (void)constraints; + (void)sptr; + (void)po; + + er.encoded = 0; + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated.c new file mode 100644 index 000000000..e52b38dc4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated.c @@ -0,0 +1,114 @@ +/*- + * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeEnumerated basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeEnumerated = { + NativeInteger_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NativeInteger_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NativeInteger_compare, + NativeInteger_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NativeInteger_decode_ber, + NativeInteger_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NativeInteger_decode_xer, + NativeEnumerated_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NativeEnumerated_decode_jer, + NativeEnumerated_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NativeEnumerated_decode_oer, + NativeEnumerated_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NativeEnumerated_decode_uper, + NativeEnumerated_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NativeEnumerated_decode_aper, + NativeEnumerated_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NativeEnumerated_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { + "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ + "ENUMERATED", + &asn_OP_NativeEnumerated, + asn_DEF_NativeEnumerated_tags, + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + asn_DEF_NativeEnumerated_tags, /* Same as above */ + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[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) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int +NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { + const asn_INTEGER_enum_map_t *a = ap; + const asn_INTEGER_enum_map_t *b = bp; + if(a->nat_value == b->nat_value) + return 0; + if(a->nat_value < b->nat_value) + return -1; + return 1; +} +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated_aper.c new file mode 100644 index 000000000..fdcd43a13 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated_aper.c @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + /* Deal with APER padding */ + if(ct && ct->upper_bound >= 255) { + int padding = 0; + padding = (8 - (pd->moved % 8)) % 8; + ASN_DEBUG("For NativeEnumerated %s,offset = %zu Padding bits = %d", + td->name, pd->moved, padding); + ASN_DEBUG("For NativeEnumerated %s, upper bound = %llu", + td->name, (unsigned long long)ct->upper_bound); + if(padding > 0) + per_get_few_bits(pd, padding); + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + + /* XXX handle indefinite index length > 64k */ + value = aper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + //if(value >= specs->map_count) + // ASN__DECODE_FAILED; + if(value >= specs->map_count) { + ASN_DEBUG("Decoded unknown index value %s = %ld", td->name, value); + /* unknown index. Workaround => set the first enumeration value */ + *native = specs->value2enum[0].nat_value; + return rval; + } + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +asn_enc_rval_t +NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0, range_bits = 1; + asn_INTEGER_enum_map_t key; + asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + if(native < 0) ASN__ENCODE_FAILED; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) range_bits = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(range_bits && ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(aper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated_uper.c new file mode 100644 index 000000000..354e46538 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeEnumerated_uper.c @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + if(value >= specs->map_count) + ASN__DECODE_FAILED; + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +asn_enc_rval_t +NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0; + asn_INTEGER_enum_map_t key; + const asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger.c new file mode 100644 index 000000000..27de4f312 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger.c @@ -0,0 +1,185 @@ +/*- + * Copyright (c) 2004, 2005, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeInteger basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeInteger = { + NativeInteger_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + NativeInteger_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + NativeInteger_compare, + NativeInteger_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + NativeInteger_decode_ber, + NativeInteger_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + NativeInteger_decode_xer, + NativeInteger_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + NativeInteger_decode_jer, + NativeInteger_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + NativeInteger_decode_oer, /* OER decoder */ + NativeInteger_encode_oer, /* Canonical OER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + NativeInteger_decode_uper, /* Unaligned PER decoder */ + NativeInteger_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + NativeInteger_decode_aper, /* Aligned PER decoder */ + NativeInteger_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + NativeInteger_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeInteger = { + "INTEGER", /* The ASN.1 type is still INTEGER */ + "INTEGER", + &asn_OP_NativeInteger, + asn_DEF_NativeInteger_tags, + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + asn_DEF_NativeInteger_tags, /* Same as above */ + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[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) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +void +NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", + td->name, method, ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(long)); + break; + } +} + +int +NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + (void)td; + + if(aptr && bptr) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + if(specs && specs->field_unsigned) { + const unsigned long *a = aptr; + const unsigned long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } else { + const long *a = aptr; + const long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } + } else if(!aptr) { + return -1; + } else { + return 1; + } +} + +int +NativeInteger_copy(const asn_TYPE_descriptor_t *td, void **aptr, const void *bptr) { + unsigned long *a = *aptr; + const unsigned long *b = bptr; + + (void)td; + + /* Check if source has data */ + if(!b) { + /* Clear destination */ + if(a) { + FREEMEM(a); + *aptr = 0; + } + return 0; + } + + if(!a) { + a = *aptr = MALLOC(sizeof(*a)); + if(!a) return -1; + } + + *a = *b; + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_aper.c new file mode 100644 index 000000000..00187d759 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_aper.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_aper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_print.c new file mode 100644 index 000000000..8ad7aa5c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_print.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * INTEGER specific human-readable output. + */ +int +NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + const long *native = (const long *)sptr; + char scratch[32]; /* Enough for 64-bit int */ + int ret; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(native) { + long value = *native; + ret = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) ? "%lu" : "%ld", value); + assert(ret > 0 && (size_t)ret < sizeof(scratch)); + if(cb(scratch, ret, app_key) < 0) return -1; + if(specs && (value >= 0 || !specs->field_unsigned)) { + const asn_INTEGER_enum_map_t *el = + INTEGER_map_value2enum(specs, value); + if(el) { + if(cb(" (", 2, app_key) < 0) return -1; + if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; + if(cb(")", 1, app_key) < 0) return -1; + } + } + return 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_rfill.c new file mode 100644 index 000000000..882ce849f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_rfill.c @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + long *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (long *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + + const asn_per_constraints_t *ct; + + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + } + + *sptr = st; + *st = value; + return result_ok; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_uper.c new file mode 100644 index 000000000..4b3f56b8c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NativeInteger_uper.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_uper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/NumericString.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/NumericString.c new file mode 100644 index 000000000..8e9189c61 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/NumericString.c @@ -0,0 +1,163 @@ +/*- + * Copyright (c) 2003, 2006 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * NumericString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NumericString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)), /* [UNIVERSAL 18] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static int asn_DEF_NumericString_v2c(unsigned int value) { + switch(value) { + case 0x20: return 0; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + return value - (0x30 - 1); + } + return -1; +} +static int asn_DEF_NumericString_c2v(unsigned int code) { + if(code > 0) { + if(code <= 10) + return code + (0x30 - 1); + else + return -1; + } else { + return 0x20; + } +} +static asn_per_constraints_t asn_DEF_NumericString_per_constraints = { + { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + asn_DEF_NumericString_v2c, + asn_DEF_NumericString_c2v +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_operation_t asn_OP_NumericString = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print_utf8, /* ASCII subset */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, + OCTET_STRING_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_decode_jer_utf8, + OCTET_STRING_encode_jer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NumericString = { + "NumericString", + "NumericString", + &asn_OP_NumericString, + asn_DEF_NumericString_tags, + sizeof(asn_DEF_NumericString_tags) + / sizeof(asn_DEF_NumericString_tags[0]) - 1, + asn_DEF_NumericString_tags, + sizeof(asn_DEF_NumericString_tags) + / sizeof(asn_DEF_NumericString_tags[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) + &asn_DEF_NumericString_per_constraints, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NumericString_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +NumericString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + + /* + * Check the alphabet of the NumericString. + * ASN.1:1984 (X.409) + */ + for(; buf < end; buf++) { + switch(*buf) { + case 0x20: + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + continue; + } + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld (%d) " + "not in NumericString alphabet (%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER.c new file mode 100644 index 000000000..a8e61ef13 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER.c @@ -0,0 +1,538 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include /* for CHAR_BIT */ +#include +#include + +/* + * OBJECT IDENTIFIER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OBJECT_IDENTIFIER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)) +}; +asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = { + ASN__PRIMITIVE_TYPE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OBJECT_IDENTIFIER_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, /* Implemented in terms of a string comparison */ + OCTET_STRING_copy, /* Implemented in terms of a string copy */ +#if !defined(ASN_DISABLE_BER_SUPPORT) + ber_decode_primitive, + der_encode_primitive, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OBJECT_IDENTIFIER_decode_xer, + OBJECT_IDENTIFIER_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OBJECT_IDENTIFIER_decode_jer, + OBJECT_IDENTIFIER_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OBJECT_IDENTIFIER_decode_oer, + OBJECT_IDENTIFIER_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OBJECT_IDENTIFIER_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = { + "OBJECT IDENTIFIER", + "OBJECT_IDENTIFIER", + &asn_OP_OBJECT_IDENTIFIER, + asn_DEF_OBJECT_IDENTIFIER_tags, + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + asn_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */ + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[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) */ + OBJECT_IDENTIFIER_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +OBJECT_IDENTIFIER_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + if(st && st->buf) { + if(st->size < 1) { + ASN__CTFAIL(app_key, td, sptr, + "%s: at least one numerical value " + "expected (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + +static ssize_t +OBJECT_IDENTIFIER_get_first_arcs(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *arc0, asn_oid_arc_t *arc1) { + asn_oid_arc_t value; + + ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(arcbuf, arcbuf_len, &value); + if(rd <= 0) return rd; + + if(value >= 80) { + *arc0 = 2; + *arc1 = value - 80; + } else if(value >= 40) { + *arc0 = 1; + *arc1 = value - 40; + } else { + *arc0 = 0; + *arc1 = value; + } + + return rd; +} + +ssize_t +OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *ret_value) { + const uint8_t *b = arcbuf; + const uint8_t *arcend = arcbuf + arcbuf_len; /* End of arc */ + + if(arcbuf == arcend) { + return 0; + } else { + asn_oid_arc_t accum; + asn_oid_arc_t upper_limit = (ASN_OID_ARC_MAX >> 7); + /* When the value reaches "upper_limit", it can take */ + /* at most one more digit. If it exceeds "upper_limit" */ + /* but there are more digits - it's an Overflow condition */ + /* Gather all bits into the accumulator */ + for(accum = 0; b < arcend; b++) { + accum = (accum << 7) | (*b & ~0x80); + if((*b & 0x80) == 0) { // no more digits + if(accum <= ASN_OID_ARC_MAX) { + *ret_value = accum; + return 1 + (b - arcbuf); + } else { + errno = ERANGE; /* Overflow */ + return -1; + } + } else { // to make sure we aren't wrapping around + if(accum > upper_limit) { + errno = ERANGE; /* Overflow */ + return -1; + } + } + } + errno = EINVAL; + return -1; + } + +} + +ssize_t +OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, + asn_app_consume_bytes_f *cb, void *app_key) { + char scratch[32]; + asn_oid_arc_t arc0 = 0; + asn_oid_arc_t arc1 = 0; + size_t produced = 0; + size_t off = 0; + ssize_t rd; + int ret; + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + + ret = snprintf(scratch, sizeof(scratch), "%"PRIu32".%"PRIu32, arc0, arc1); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) + return -1; + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + assert(off <= st->size); + ret = snprintf(scratch, sizeof(scratch), ".%" PRIu32, arc); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) return -1; + } + } + + if(off != st->size) { + ASN_DEBUG("Could not scan to the end of Object Identifier"); + return -1; + } + + return produced; +} + +ssize_t +OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *st, asn_oid_arc_t *arcs, + size_t arc_slots) { + asn_oid_arc_t arc0 = 0; + asn_oid_arc_t arc1 = 0; + size_t num_arcs = 0; + size_t off; + ssize_t rd; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + num_arcs = 2; + switch(arc_slots) { + default: + case 2: + arcs[1] = arc1; + /* Fall through */ + case 1: + arcs[0] = arc0; + /* Fall through */ + case 0: + break; + } + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + if(num_arcs < arc_slots) { + arcs[num_arcs] = arc; + } + num_arcs++; + } + } + + if(off != st->size) { + return -1; + } + + return num_arcs; +} + + +/* + * Save the single value as an object identifier arc. + */ +ssize_t +OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t value) { + /* + * The following conditions must hold: + * assert(arcbuf); + */ + uint8_t scratch[((sizeof(value) * CHAR_BIT + 6) / 7)]; + uint8_t *scratch_end = &scratch[sizeof(scratch)-1]; + uint8_t *b; + size_t result_len; + uint8_t mask; + + for(b = scratch_end, mask = 0; ; mask = 0x80, b--) { + *b = mask | (value & 0x7f); + value >>= 7; + if(!value) { + break; + } + } + + result_len = (scratch_end - b) + 1; + + if(result_len > arcbuf_len) { + return -1; + } + + memcpy(arcbuf, b, result_len); + + return result_len; +} + +int +OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *st, const asn_oid_arc_t *arcs, + size_t arc_slots) { + uint8_t *buf; + uint8_t *bp; + ssize_t wrote; + asn_oid_arc_t arc0; + asn_oid_arc_t arc1; + size_t size; + size_t i; + + if(!st || !arcs || arc_slots < 2) { + errno = EINVAL; + return -1; + } + + arc0 = arcs[0]; + arc1 = arcs[1]; + + if(arc0 <= 1) { + if(arc1 >= 40) { + /* 8.19.4: At most 39 subsequent values (including 0) */ + errno = ERANGE; + return -1; + } + } else if(arc0 == 2) { + if(arc1 > ASN_OID_ARC_MAX - 80) { + errno = ERANGE; + return -1; + } + } else if(arc0 > 2) { + /* 8.19.4: Only three values are allocated from the root node */ + errno = ERANGE; + return -1; + } + + /* + * After above tests it is known that the value of arc0 is completely + * trustworthy (0..2). However, the arc1's value is still meaningless. + */ + + /* + * Roughly estimate the maximum size necessary to encode these arcs. + * This estimation implicitly takes in account the following facts, + * that cancel each other: + * * the first two arcs are encoded in a single value. + * * the first value may require more space (+1 byte) + * * the value of the first arc which is in range (0..2) + */ + size = ((sizeof(asn_oid_arc_t) * CHAR_BIT + 6) / 7) * arc_slots; + bp = buf = (uint8_t *)MALLOC(size + 1); + if(!buf) { + /* ENOMEM */ + return -1; + } + + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arc0 * 40 + arc1); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + + for(i = 2; i < arc_slots; i++) { + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arcs[i]); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + } + + /* + * Replace buffer. + */ + st->size = bp - buf; + bp = st->buf; + st->buf = buf; + st->buf[st->size] = '\0'; + if(bp) FREEMEM(bp); + + return 0; +} + +ssize_t +OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end) { + size_t num_arcs = 0; + const char *oid_end; + enum { + ST_LEADSPACE, + ST_TAILSPACE, + ST_AFTERVALUE, /* Next character ought to be '.' or a space */ + ST_WAITDIGITS /* Next character is expected to be a digit */ + } state = ST_LEADSPACE; + + if(!oid_text || oid_txt_length < -1 || (arcs_count && !arcs)) { + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + errno = EINVAL; + return -1; + } + + if(oid_txt_length == -1) + oid_txt_length = strlen(oid_text); + +#define _OID_CAPTURE_ARC(oid_text, oid_end) \ + do { \ + const char *endp = oid_end; \ + unsigned long value; \ + switch(asn_strtoul_lim(oid_text, &endp, &value)) { \ + case ASN_STRTOX_EXTRA_DATA: \ + case ASN_STRTOX_OK: \ + if(value <= ASN_OID_ARC_MAX) { \ + if(num_arcs < arcs_count) arcs[num_arcs] = value; \ + num_arcs++; \ + oid_text = endp - 1; \ + break; \ + } \ + /* Fall through */ \ + case ASN_STRTOX_ERROR_RANGE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = ERANGE; \ + return -1; \ + case ASN_STRTOX_ERROR_INVAL: \ + case ASN_STRTOX_EXPECT_MORE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = EINVAL; \ + return -1; \ + } \ + } while(0) + + for(oid_end = oid_text + oid_txt_length; oid_text broken OID */ + return -1; + case ST_LEADSPACE: + case ST_WAITDIGITS: + _OID_CAPTURE_ARC(oid_text, oid_end); + state = ST_AFTERVALUE; + continue; + } + break; + default: + /* Unexpected symbols */ + state = ST_WAITDIGITS; + break; + } /* switch() */ + break; + } /* for() */ + + + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + + /* Finalize last arc */ + switch(state) { + case ST_LEADSPACE: + return 0; /* No OID found in input data */ + case ST_WAITDIGITS: + errno = EINVAL; /* Broken OID */ + return -1; + case ST_AFTERVALUE: + case ST_TAILSPACE: + return num_arcs; + } + + errno = EINVAL; /* Broken OID */ + return -1; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER_print.c new file mode 100644 index 000000000..a33b1800f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER_print.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +OBJECT_IDENTIFIER_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb("{ ", 2, app_key) < 0) + return -1; + + if(OBJECT_IDENTIFIER__dump_body(st, cb, app_key) < 0) { + return -1; + } + + return (cb(" }", 2, app_key) < 0) ? -1 : 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER_rfill.c new file mode 100644 index 000000000..7cb5c49d1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OBJECT_IDENTIFIER_rfill.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Generate values from the list of interesting values, or just a random + * value up to the upper limit. + */ +static asn_oid_arc_t +OBJECT_IDENTIFIER__biased_random_arc(asn_oid_arc_t upper_bound) { + const asn_oid_arc_t values[] = {0, 1, 127, 128, 129, 254, 255, 256}; + size_t idx; + + switch(asn_random_between(0, 2)) { + case 0: + idx = asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1); + if(values[idx] < upper_bound) { + return values[idx]; + } + /* Fall through */ + case 1: + return asn_random_between(0, upper_bound); + case 2: + default: + return upper_bound; + } +} + +asn_random_fill_result_t +OBJECT_IDENTIFIER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + OBJECT_IDENTIFIER_t *st; + asn_oid_arc_t arcs[5]; + size_t arcs_len = asn_random_between(2, 5); + size_t i; + + (void)constraints; + + if(max_length < arcs_len) return result_skipped; + + if(*sptr) { + st = *sptr; + } else { + st = CALLOC(1, sizeof(*st)); + } + + arcs[0] = asn_random_between(0, 2); + arcs[1] = OBJECT_IDENTIFIER__biased_random_arc( + arcs[0] <= 1 ? 39 : (ASN_OID_ARC_MAX - 80)); + for(i = 2; i < arcs_len; i++) { + arcs[i] = OBJECT_IDENTIFIER__biased_random_arc(ASN_OID_ARC_MAX); + } + + if(OBJECT_IDENTIFIER_set_arcs(st, arcs, arcs_len)) { + if(st != *sptr) { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } + + *sptr = st; + + result_ok.length = st->size; + return result_ok; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING.c new file mode 100644 index 000000000..88bc3925b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING.c @@ -0,0 +1,426 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * OCTET STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { + sizeof(OCTET_STRING_t), + offsetof(OCTET_STRING_t, _asn_ctx), + ASN_OSUBV_STR +}; +asn_TYPE_operation_t asn_OP_OCTET_STRING = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, + OCTET_STRING_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_decode_jer_hex, + OCTET_STRING_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, /* Unaligned PER decoder */ + OCTET_STRING_encode_uper, /* Unaligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + OCTET_STRING_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { + "OCTET STRING", /* Canonical name */ + "OCTET_STRING", /* XML tag name */ + &asn_OP_OCTET_STRING, + asn_DEF_OCTET_STRING_tags, + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + asn_DEF_OCTET_STRING_tags, /* Same as above */ + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[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) */ + asn_generic_no_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs +}; + +void +OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + + if(!td || !st) + return; + + ASN_DEBUG("Freeing %s as OCTET STRING", td->name); + + if(st->buf) { + FREEMEM(st->buf); + st->buf = 0; + } + +#if !defined(ASN_DISABLE_BER_SUPPORT) + const asn_OCTET_STRING_specifics_t *specs; + asn_struct_ctx_t *ctx; + + specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Remove decode-time stack. + */ + struct _stack *stck; + stck = (struct _stack *)ctx->ptr; + if(stck) { + while(stck->tail) { + struct _stack_el *sel = stck->tail; + stck->tail = sel->prev; + FREEMEM(sel); + } + FREEMEM(stck); + } +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, + td->specifics + ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) + ->struct_size + : sizeof(OCTET_STRING_t)); + break; + } +} + +/* + * Conversion routines. + */ +int +OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { + void *buf; + + if(st == 0 || (str == 0 && len)) { + errno = EINVAL; + return -1; + } + + /* + * Clear the OCTET STRING. + */ + if(str == NULL) { + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + return 0; + } + + /* Determine the original string size, if not explicitly given */ + if(len < 0) + len = strlen(str); + + /* Allocate and fill the memory */ + buf = MALLOC(len + 1); + if(buf == NULL) + return -1; + + memcpy(buf, str, len); + ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ + FREEMEM(st->buf); + st->buf = (uint8_t *)buf; + st->size = len; + + return 0; +} + +OCTET_STRING_t * +OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, + int len) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + OCTET_STRING_t *st; + + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + if(st && str && OCTET_STRING_fromBuf(st, str, len)) { + FREEMEM(st); + st = NULL; + } + + return st; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + const OCTET_STRING_t *a = aptr; + const OCTET_STRING_t *b = bptr; + + (void)specs; + assert(!specs || specs->subvariant != ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + return 0; + } + } else { + return ret < 0 ? -1 : 1; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + +int +OCTET_STRING_copy(const asn_TYPE_descriptor_t *td, void **aptr, + const void *bptr) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + OCTET_STRING_t *a = *aptr; + const OCTET_STRING_t *b = bptr; + + if(!b) { + if(a) { + FREEMEM(a->buf); + a->buf = 0; + a->size = 0; + FREEMEM(a); + } + *aptr = 0; + return 0; + } + + if(!a) { + a = *aptr = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + if(!a) return -1; + } + + void *buf = MALLOC(b->size + 1); + if(!buf) return -1; + memcpy(buf, b->buf, b->size); + ((uint8_t *)buf)[b->size] = '\0'; + + FREEMEM(a->buf); + a->buf = (uint8_t *)buf; + a->size = b->size; + + return 0; +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +int +OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", + (int)units, lb, ub, unit_bits); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Decode without translation */ + lb = 0; + } else if(pc && pc->code2value) { + if(unit_bits > 16) + return 1; /* FATAL: can't have constrained + * UniversalString with more than + * 16 million code points */ + for(; buf < end; buf += bpc) { + int value; + int code = per_get_few_bits(po, unit_bits); + if(code < 0) return -1; /* WMORE */ + value = pc->code2value(code); + if(value < 0) { + ASN_DEBUG("Code %d (0x%02x) is" + " not in map (%ld..%ld)", + code, code, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = value; break; + case 2: buf[0] = value >> 8; buf[1] = value; break; + case 4: buf[0] = value >> 24; buf[1] = value >> 16; + buf[2] = value >> 8; buf[3] = value; break; + } + } + return 0; + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_get_many_bits(po, buf, 0, unit_bits * units); + } + + for(; buf < end; buf += bpc) { + int32_t code = per_get_few_bits(po, unit_bits); + int32_t ch = code + lb; + if(code < 0) return -1; /* WMORE */ + if(ch > ub) { + ASN_DEBUG("Code %d is out of range (%ld..%ld)", + ch, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = ch; break; + case 2: buf[0] = ch >> 8; buf[1] = ch; break; + case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; + buf[2] = ch >> 8; buf[3] = ch; break; + } + } + + return 0; +} + +int +OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + const uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", + (int)units, lb, ub, unit_bits, bpc); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Encode as is */ + lb = 0; + } else if(pc && pc->value2code) { + for(; buf < end; buf += bpc) { + int code; + uint32_t value; + switch(bpc) { + case 1: value = *(const uint8_t *)buf; break; + case 2: value = (buf[0] << 8) | buf[1]; break; + case 4: value = (buf[0] << 24) | (buf[1] << 16) + | (buf[2] << 8) | buf[3]; break; + default: return -1; + } + code = pc->value2code(value); + if(code < 0) { + ASN_DEBUG("Character %d (0x%02x) is" + " not in map (%ld..%ld)", + *buf, *buf, lb, ub); + return -1; + } + if(per_put_few_bits(po, code, unit_bits)) + return -1; + } + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_put_many_bits(po, buf, unit_bits * units); + } + + for(ub -= lb; buf < end; buf += bpc) { + int ch; + uint32_t value; + switch(bpc) { + case 1: + value = *(const uint8_t *)buf; + break; + case 2: + value = (buf[0] << 8) | buf[1]; + break; + case 4: + value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + break; + default: + return -1; + } + ch = value - lb; + if(ch < 0 || ch > ub) { + ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, + value, lb, ub + lb); + return -1; + } + if(per_put_few_bits(po, ch, unit_bits)) return -1; + } + + return 0; +} +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_aper.c new file mode 100644 index 000000000..306843881 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_aper.c @@ -0,0 +1,411 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +#undef RETURN +#define RETURN(_code) do {\ + asn_dec_rval_t tmprval;\ + tmprval.code = _code;\ + tmprval.consumed = consumed_myself;\ + return tmprval;\ + } while(0) + +static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { + { APC_CONSTRAINED, 8, 8, 0, 255 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; + +asn_dec_rval_t +OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: +/* + case ASN_OSUBV_ANY: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); +*/ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %lld .. %lld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + (long long int)csiz->lower_bound, (long long int)csiz->upper_bound, + csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + cval = &asn_DEF_OCTET_STRING_constraints.value; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + /* X.691 #16 NOTE 1 for fixed length (<= 16 bits) strings */ + if (st->size > 2 || csiz->range_bits != 0) { + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + if(bpc) { + ASN_DEBUG("Decoding OCTET STRING size %lld", + (long long int)csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Decoding BIT STRING size %lld", + (long long int)csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + if(bpc == 0) { + int ubs = (csiz->upper_bound & 0x7); + st->bits_unused = ubs ? 8 - ubs : 0; + } + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + repeat = 0; + /* Get the PER length */ + if (csiz->upper_bound - csiz->lower_bound == 0) + /* Indefinite length case */ + raw_len = aper_get_length(pd, -1, -1, csiz->effective_bits, &repeat); + else + raw_len = aper_get_length(pd, csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + + /* X.691 #16 NOTE 1 for fixed length (<=16 bits) strings */ + if ((raw_len > 2) || (csiz->upper_bound > 2) || (csiz->range_bits != 0)) + { + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + + if(bpc) { + len_bytes = raw_len * bpc; + len_bits = len_bytes * unit_bits; + } else { + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) + st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + } + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + if(bpc) { + ret = OCTET_STRING_per_get_characters(pd, + &st->buf[st->size], + raw_len, bpc, + unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ret = per_get_many_bits(pd, &st->buf[st->size], + 0, len_bits); + } + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + unsigned int sizeinunits; + const uint8_t *buf; + int ret; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: +/* + case ASN_OSUBV_ANY: + ASN__ENCODE_FAILED; +*/ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + sizeinunits = st->size * 8 - (st->bits_unused & 0x07); + ASN_DEBUG("BIT STRING of %d bytes", + sizeinunits); + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* + if(cval->flags & APC_CONSTRAINED) + unit_bits = 8; +*/ + bpc = OS__BPC_CHAR; + sizeinunits = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + sizeinunits = st->size / 2; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + sizeinunits = st->size / 4; + break; + } + + ASN_DEBUG("Encoding %s into %d units of %d bits" + " (%lld..%lld, effective %d)%s", + td->name, sizeinunits, unit_bits, + (long long int)csiz->lower_bound, + (long long int)csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out wheter size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((int)sizeinunits < csiz->lower_bound + || (int)sizeinunits > csiz->upper_bound) { + if(ct_extensible) { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else + ASN__ENCODE_FAILED; + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits >= 0) { + ASN_DEBUG("Encoding %zu bytes (%lld), length in %d bits", + st->size, (long long int)(sizeinunits - csiz->lower_bound), + csiz->effective_bits); + if (csiz->effective_bits > 0) { + ret = aper_put_length(po, csiz->lower_bound, csiz->upper_bound, + sizeinunits - csiz->lower_bound, NULL); + if(ret < 0) ASN__ENCODE_FAILED; + } + if (csiz->effective_bits > 0 || (st->size > 2) + || (csiz->upper_bound > (2 * 8 / unit_bits)) + || (csiz->range_bits != 0)) + { /* X.691 #16 NOTE 1 for fixed length (<=16 bits) strings*/ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + } + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, st->buf, + sizeinunits, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + } else { + ret = per_put_many_bits(po, st->buf, + sizeinunits * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %zu bytes", st->size); + + if(sizeinunits == 0) { + if(aper_put_length(po, -1, -1, 0, NULL) < 0) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + buf = st->buf; + while(sizeinunits) { + int need_eom = 0; + ssize_t maySave = aper_put_length(po, -1, -1, sizeinunits, &need_eom); + + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %ld of %ld", + (long)maySave, (long)sizeinunits); + + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, buf, maySave, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + } else { + ret = per_put_many_bits(po, buf, maySave * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + + if(bpc) + buf += maySave * bpc; + else + buf += maySave >> 3; + sizeinunits -= maySave; + assert(!(maySave & 0x07) || !sizeinunits); + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_print.c new file mode 100644 index 000000000..b051eb5d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_print.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + (void)td; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = (buf == NULL)? NULL : buf + st->size; + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + _i_INDENT(1); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Remove the tail space */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + return 0; +} + +int +OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && (st->buf || !st->size)) { + return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_rfill.c new file mode 100644 index 000000000..a4e2e01b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_rfill.c @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Biased function for randomizing character values around their limits. + */ +static uint32_t +OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { + assert(lb <= ub); + switch(asn_random_between(0, 16)) { + case 0: + if(lb < ub) return lb + 1; + /* Fall through */ + case 1: + return lb; + case 2: + if(lb < ub) return ub - 1; + /* Fall through */ + case 3: + return ub; + default: + return asn_random_between(lb, ub); + } +} + +asn_random_fill_result_t +OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + unsigned int unit_bytes = 1; + unsigned long clb = 0; /* Lower bound on char */ + unsigned long cub = 255; /* Higher bound on char value */ + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_len; + OCTET_STRING_t *st; + + if(max_length == 0 && !*sptr) return result_skipped; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + /* Handled by BIT_STRING itself. */ + return result_failed; + case ASN_OSUBV_STR: + unit_bytes = 1; + clb = 0; + cub = 255; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + clb = 0; + cub = 65535; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + clb = 0; + cub = 0x10FFFF; + break; + } + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_SEMI_CONSTRAINED) { + clb = pc->lower_bound; + } else if(pc->flags & APC_CONSTRAINED) { + clb = pc->lower_bound; + cub = pc->upper_bound; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + rnd_len = + OCTET_STRING_random_length_constrained(td, constraints, max_length); + + buf = CALLOC(unit_bytes, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[unit_bytes * rnd_len]; + + switch(unit_bytes) { + case 1: + for(b = buf; b < bend; b += unit_bytes) { + *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); + } + *(uint8_t *)b = 0; + break; + case 2: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 8; + b[1] = code; + } + *(uint16_t *)b = 0; + break; + case 4: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 24; + b[1] = code >> 16; + b[2] = code >> 8; + b[3] = code; + } + *(uint32_t *)b = 0; + break; + } + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = unit_bytes * rnd_len; + + result_ok.length = st->size; + return result_ok; +} + +size_t +OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *td, + const asn_encoding_constraints_t *constraints, size_t max_length) { + const unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + size_t rnd_len; + + /* Figure out how far we should go */ + rnd_len = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length <= (size_t)pc->lower_bound) { + return pc->lower_bound; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_len = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_len = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_len from the table */ + if(rnd_len <= max_length) { + break; + } + /* Fall through */ + default: + rnd_len = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_len = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_len = asn_random_between(0, max_length); + } + } else { +#else + if(!constraints) constraints = &td->encoding_constraints; + { +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + if(rnd_len > max_length) { + rnd_len = asn_random_between(0, max_length); + } + } + + return rnd_len; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_uper.c new file mode 100644 index 000000000..1203644a1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OCTET_STRING_uper.c @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ + +#undef RETURN +#define RETURN(_code) do {\ + asn_dec_rval_t tmprval;\ + tmprval.code = _code;\ + tmprval.consumed = consumed_myself;\ + return tmprval;\ + } while(0) + +static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { + { APC_CONSTRAINED, 8, 8, 0, 255 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; + +asn_dec_rval_t +OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); + break; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %"ASN_PRIdMAX" .. %"ASN_PRIdMAX" bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + if(bpc) { + ASN_DEBUG("Encoding OCTET STRING size %"ASN_PRIdMAX"", + csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, + bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, + pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Encoding BIT STRING size %"ASN_PRIdMAX"", + csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len * bpc; + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, + bpc, unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints + ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + size_t size_in_units; + const uint8_t *buf; + int ret; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN__ENCODE_FAILED; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + size_in_units = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + size_in_units = st->size >> 1; + if(st->size & 1) { + ASN_DEBUG("%s string size is not modulo 2", td->name); + ASN__ENCODE_FAILED; + } + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + size_in_units = st->size >> 2; + if(st->size & 3) { + ASN_DEBUG("%s string size is not modulo 4", td->name); + ASN__ENCODE_FAILED; + } + break; + } + + ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" + " (%"ASN_PRIdMAX"..%"ASN_PRIdMAX", effective %d)%s", + td->name, size_in_units, unit_bits, + csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_units < csiz->lower_bound + || (ssize_t)size_in_units > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%"ASN_PRIdMAX"), length in %d bits", st->size, + size_in_units - csiz->lower_bound, csiz->effective_bits); + ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, + unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, + need_eom ? ",+EOM" : ""); + + ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save * bpc; + size_in_units -= may_save; + assert(!(may_save & 0x07) || !size_in_units); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_units); + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE.c new file mode 100644 index 000000000..90b370f9f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_TYPE_operation_t asn_OP_OPEN_TYPE = { + OPEN_TYPE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OPEN_TYPE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OPEN_TYPE_compare, + OPEN_TYPE_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OPEN_TYPE_decode_ber, + OPEN_TYPE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OPEN_TYPE_decode_xer, + OPEN_TYPE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OPEN_TYPE_decode_jer, + OPEN_TYPE_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OPEN_TYPE_decode_oer, + OPEN_TYPE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OPEN_TYPE_decode_uper, + OPEN_TYPE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OPEN_TYPE_decode_aper, + OPEN_TYPE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + 0, /* Random fill is not supported for open type */ +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE_aper.c new file mode 100644 index 000000000..a9c1c1b0e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE_aper.c @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, + elm->type->elements[selected.presence_index - 1].encoding_constraints.per_constraints, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er = {0,0,0}; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + + +int OPEN_TYPE_aper_is_unknown_type(const asn_TYPE_descriptor_t *td, void *sptr, const asn_TYPE_member_t *elm) { + asn_type_selector_result_t selected; + + if(!elm->type_selector) { + return 1; + } + else { + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + return 1; + } + } + return 0; +} + +asn_dec_rval_t +OPEN_TYPE_aper_unknown_type_discard_bytes (asn_per_data_t *pd) { +#define ASN_DUMMY_BYTES 256 + unsigned char dummy[ASN_DUMMY_BYTES], *dummy_ptr = NULL; + ssize_t bytes; + int repeat; + asn_dec_rval_t rv; + + rv.consumed = 0; + rv.code = RC_FAIL; + + do { + bytes = aper_get_length(pd, -1, -1, -1, &repeat); + if (bytes > 10 * ASN_DUMMY_BYTES) + { + return rv; + } + else if (bytes > ASN_DUMMY_BYTES) + { + dummy_ptr = CALLOC(1, bytes); + if (!dummy_ptr) + return rv; + } + + per_get_many_bits(pd, (dummy_ptr ? dummy_ptr : dummy), 0, bytes << 3); + + if (dummy_ptr) + { + FREEMEM(dummy_ptr); + dummy_ptr = NULL; + } + } while (repeat); + + rv.code = RC_OK; + return rv; +#undef ASN_DUMMY_BYTES +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE_uper.c new file mode 100644 index 000000000..e1d3b2e90 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/OPEN_TYPE_uper.c @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +asn_dec_rval_t +OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, + elm->type->elements[selected.presence_index - 1].encoding_constraints.per_constraints, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er = {0,0,0}; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ObjectDescriptor.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ObjectDescriptor.c new file mode 100644 index 000000000..95f7d5f2c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ObjectDescriptor.c @@ -0,0 +1,97 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ObjectDescriptor basic type description. + */ +static const ber_tlv_tag_t asn_DEF_ObjectDescriptor_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), /* [UNIVERSAL 7] IMPLICIT ... */ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_ObjectDescriptor = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + OCTET_STRING_print_utf8, /* Treat as ASCII subset (it's not) */ +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, + OCTET_STRING_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_decode_jer_utf8, + OCTET_STRING_encode_jer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, + 0, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + 0, /* Not supported for ObjectDescriptor */ +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor = { + "ObjectDescriptor", + "ObjectDescriptor", + &asn_OP_ObjectDescriptor, + asn_DEF_ObjectDescriptor_tags, + sizeof(asn_DEF_ObjectDescriptor_tags) + / sizeof(asn_DEF_ObjectDescriptor_tags[0]) - 1, + asn_DEF_ObjectDescriptor_tags, + sizeof(asn_DEF_ObjectDescriptor_tags) + / sizeof(asn_DEF_ObjectDescriptor_tags[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) */ + asn_generic_unknown_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String.c new file mode 100644 index 000000000..062b06f39 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String.c @@ -0,0 +1,230 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * UTF8String basic type description. + */ +static const ber_tlv_tag_t asn_DEF_UTF8String_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)), /* [UNIVERSAL 12] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_UTF8String = { + OCTET_STRING_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + UTF8String_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + OCTET_STRING_compare, + OCTET_STRING_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + OCTET_STRING_decode_jer_utf8, + OCTET_STRING_encode_jer_utf8, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + UTF8String_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_UTF8String = { + "UTF8String", + "UTF8String", + &asn_OP_UTF8String, + asn_DEF_UTF8String_tags, + sizeof(asn_DEF_UTF8String_tags) + / sizeof(asn_DEF_UTF8String_tags[0]) - 1, + asn_DEF_UTF8String_tags, + sizeof(asn_DEF_UTF8String_tags) + / sizeof(asn_DEF_UTF8String_tags[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) */ + UTF8String_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * This is the table of length expectations. + * The second half of this table is only applicable to the long sequences. + */ +static const int UTF8String_ht[2][16] = { + { /* 0x0 ... 0x7 */ + /* 0000..0111 */ + 1, 1, 1, 1, 1, 1, 1, 1, + /* 1000..1011(0), 1100..1101(2), 1110(3), 1111(-1) */ + 0, 0, 0, 0, 2, 2, 3, -1 }, + { /* 0xF0 .. 0xF7 */ + /* 11110000..11110111 */ + 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 6, 6, -1, -1 } +}; +static const int32_t UTF8String_mv[7] = { 0, 0, + 0x00000080, + 0x00000800, + 0x00010000, + 0x00200000, + 0x04000000 +}; + +/* Internal aliases for return codes */ +#define U8E_TRUNC -1 /* UTF-8 sequence truncated */ +#define U8E_ILLSTART -2 /* Illegal UTF-8 sequence start */ +#define U8E_NOTCONT -3 /* Continuation expectation failed */ +#define U8E_NOTMIN -4 /* Not minimal length encoding */ +#define U8E_EINVAL -5 /* Invalid arguments */ + +int +UTF8String_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + ssize_t len = UTF8String_length((const UTF8String_t *)sptr); + switch(len) { + case U8E_EINVAL: + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given", td->name); + break; + case U8E_TRUNC: + ASN__CTFAIL(app_key, td, sptr, + "%s: truncated UTF-8 sequence (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_ILLSTART: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 illegal start of encoding (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_NOTCONT: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 not continuation (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_NOTMIN: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 not minimal sequence (%s:%d)", + td->name, __FILE__, __LINE__); + break; + } + return (len < 0) ? -1 : 0; +} + +static ssize_t +UTF8String__process(const UTF8String_t *st, uint32_t *dst, size_t dstlen) { + size_t length = 0; + uint8_t *buf = (st == NULL)? NULL : st->buf; + uint8_t *end = (buf == NULL)? NULL : buf + st->size; + uint32_t *dstend = (dst == NULL)? NULL : dst + dstlen; + + for(length = 0; buf < end; length++) { + int ch = *buf; + uint8_t *cend; + int32_t value; + int want; + + /* Compute the sequence length */ + want = UTF8String_ht[0][ch >> 4]; + switch(want) { + case -1: + /* Second half of the table, long sequence */ + want = UTF8String_ht[1][ch & 0x0F]; + if(want != -1) break; + /* Fall through */ + case 0: + return U8E_ILLSTART; + } + + /* assert(want >= 1 && want <= 6) */ + + /* Check character sequence length */ + if(buf + want > end) return U8E_TRUNC; + + value = ch & (0xff >> want); + cend = buf + want; + for(buf++; buf < cend; buf++) { + ch = *buf; + if(ch < 0x80 || ch > 0xbf) return U8E_NOTCONT; + value = (value << 6) | (ch & 0x3F); + } + if(value < UTF8String_mv[want]) + return U8E_NOTMIN; + if(dst < dstend) + *dst++ = value; /* Record value */ + } + + if(dst < dstend) *dst = 0; /* zero-terminate */ + + return length; +} + + +ssize_t +UTF8String_length(const UTF8String_t *st) { + if(st && st->buf) { + return UTF8String__process(st, 0, 0); + } else { + return U8E_EINVAL; + } +} + +size_t +UTF8String_to_wcs(const UTF8String_t *st, uint32_t *dst, size_t dstlen) { + if(st && st->buf) { + ssize_t ret = UTF8String__process(st, dst, dstlen); + return (ret < 0) ? 0 : ret; + } else { + return 0; + } +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String_print.c new file mode 100644 index 000000000..fdc0f0101 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String_print.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +UTF8String_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && st->buf) { + return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String_rfill.c new file mode 100644 index 000000000..0161ea6bb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/UTF8String_rfill.c @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * Biased function for randomizing UTF-8 sequences. + */ +static size_t +UTF8String__random_char(uint8_t *b, size_t size) { + static const struct rnd_value { + const char *value; + size_t size; + } values[] = {{"\0", 1}, + {"\x01", 1}, + {"\x7f", 1}, + {"\xc2\xa2", 2}, + {"\xe2\x82\xac", 3}, + {"\xf0\x90\x8d\x88", 4}, + {"\xf4\x8f\xbf\xbf", 4}}; + + const struct rnd_value *v; + size_t max_idx = 0; + + switch(size) { + case 0: + assert(size != 0); + return 0; + case 1: + max_idx = 2; + break; + case 2: + max_idx = 3; + break; + default: + case 4: + max_idx = sizeof(values) / sizeof(values[0]) - 1; + break; + } + + v = &values[asn_random_between(0, max_idx)]; + memcpy(b, v->value, v->size); + return v->size; +} + +asn_random_fill_result_t +UTF8String_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_len; + size_t idx; + UTF8String_t *st; + + if(max_length == 0 && !*sptr) return result_skipped; + + /* Figure out how far we should go */ + rnd_len = OCTET_STRING_random_length_constrained(td, constraints, + max_length / 4); + + buf = CALLOC(4, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[4 * rnd_len]; + + for(b = buf, idx = 0; idx < rnd_len; idx++) { + b += UTF8String__random_char(b, (bend - b)); + } + *(uint8_t *)b = 0; + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, sizeof(UTF8String_t))); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = b - buf; + + assert(UTF8String_length(st) == (ssize_t)rnd_len); + + return result_ok; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_decoder.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_decoder.c new file mode 100644 index 000000000..53cc00095 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_decoder.c @@ -0,0 +1,91 @@ +#include +#include +#include + +asn_dec_rval_t +aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +aper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->aper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %zu, counted %zu", + rval.consumed, pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_encoder.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_encoder.c new file mode 100644 index 000000000..1cc75f5ef --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_encoder.c @@ -0,0 +1,129 @@ +#include +#include +#include + +/* + * Argument type and callback necessary for aper_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +asn_enc_rval_t +aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); + + return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +ssize_t +aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er = {0,0,0}; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +/* + * Internally useful functions. + */ + +/* Flush partially filled buffer */ +static int +_aper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + if (po->output) { + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); + } + return 0; +} + +asn_enc_rval_t +aper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er = {0,0,0}; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->aper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb ? cb : ignore_output; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->aper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_aper_encode_flush_outp(&po)) + ASN__ENCODE_FAILED; + } + + return er; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_opentype.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_opentype.c new file mode 100644 index 000000000..1553d0bb0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_opentype.c @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +static asn_dec_rval_t +aper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = aper_get_length(pd, -1, -1, -1, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* Noone would give us more */ + } + + return rv; +} + +int +aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + size_t toGo; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + for(bptr = buf, toGo = size; toGo;) { + int need_eom = 0; + ssize_t maySave = aper_put_length(po, -1, -1, toGo, &need_eom); + if(maySave < 0) break; + if(per_put_many_bits(po, bptr, maySave * 8)) break; + bptr = (char *)bptr + maySave; + toGo -= maySave; + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) { + FREEMEM(buf); + return -1; + } + } + + FREEMEM(buf); + if(toGo) return -1; + + ASN_DEBUG("Open type put %s of length %zd + overhead (1byte?)", + td->name, size); + + return 0; +} + +asn_dec_rval_t +aper_open_type_get(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_dec_rval_t rv; + asn_TYPE_operation_t op_t; + + memset(&op_t, 0, sizeof(op_t)); + s_td.name = ""; + s_td.op = &op_t; + s_td.op->aper_decoder = uper_sot_suck; + + rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_support.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_support.c new file mode 100644 index 000000000..7a317dc40 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/aper_support.c @@ -0,0 +1,360 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +int32_t +aper_get_align(asn_per_data_t *pd) { + + if(pd->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); + return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); + } + return 0; +} + +ssize_t +aper_get_length(asn_per_data_t *pd, ssize_t lb, ssize_t ub, + int ebits, int *repeat) { + int constrained = (lb >= 0) && (ub >= 0); + ssize_t value; + + *repeat = 0; + + if (constrained && ub < 65536) { + return aper_get_constrained_whole_number(pd, lb, ub); + } + + if (aper_get_align(pd) < 0) + return -1; + + if(ebits >= 0) return per_get_few_bits(pd, ebits); + + value = per_get_few_bits(pd, 8); + if(value < 0) return -1; + if((value & 128) == 0) /* #11.9.3.6 */ + return (value & 0x7F); + if((value & 64) == 0) { /* #11.9.3.7 */ + value = ((value & 63) << 8) | per_get_few_bits(pd, 8); + if(value < 0) return -1; + return value; + } + value &= 63; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) + return -1; + *repeat = 1; + return (16384 * value); +} + +ssize_t +aper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%zd", length); + return length; + } else { + int repeat; + length = aper_get_length(pd, -1, -1, -1, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +ssize_t +aper_get_nsnnwn(asn_per_data_t *pd) { + int b; + int length; + + ASN_DEBUG("getting nsnnwn"); + + b = per_get_few_bits(pd, 1); + if (b == -1) + return -1; + + /* X.691 2002 10.6.1 */ + if (b == 0) + return per_get_few_bits(pd, 6); + + if (aper_get_align(pd) < 0) + return -1; + + /* X.691 2002 10.6.2 */ + /* X.691 2002 10.9.3.5 */ + b = per_get_few_bits(pd, 1); + if (b == -1) + return -1; + + if (b == 1) { + /* other 10.9.3.x cases not handled, it's doubtful we reach them in practice */ + ASN_DEBUG("todo: X.691 2002 10.9.3.x"); + return -1; + } + + /* X.691 2002 10.9.3.6 */ + length = per_get_few_bits(pd, 7); + if (length > 4) { + /* todo */ + ASN_DEBUG("todo: X.691 2002 10.9.3.6 for length > 4"); + return -1; + } + ASN_DEBUG("length %d\n", length); + + /* todo: 0xffffffff will be seen as -1 and will lead to decoding failure */ + return per_get_few_bits(pd, length * 8); +} + +/* X.691 2002 10.5 - Decoding of a constrained whole number */ +long +aper_get_constrained_whole_number(asn_per_data_t *pd, long lb, long ub) { + assert(ub >= lb); + long range = ub - lb + 1; + int range_len; + int value_len; + long value; + + ASN_DEBUG("aper get constrained_whole_number with lb %ld and ub %ld", lb, ub); + + /* X.691 2002 10.5.4 */ + if (range == 1) + return lb; + + /* X.691 2002 10.5.7.1 - The bit-field case. */ + if (range <= 255) { + int bitfield_size = 8; + for (bitfield_size = 8; bitfield_size >= 2; bitfield_size--) + if ((range - 1) & (1 << (bitfield_size-1))) + break; + value = per_get_few_bits(pd, bitfield_size); + if (value < 0 || value >= range) + return -1; + return value + lb; + } + + /* X.691 2002 10.5.7.2 - The one-octet case. */ + if (range == 256) { + if (aper_get_align(pd) < 0) + return -1; + value = per_get_few_bits(pd, 8); + if (value < 0 || value >= range) + return -1; + return value + lb; + } + + /* X.691 2002 10.5.7.3 - The two-octet case. */ + if (range <= 65536) { + if (aper_get_align(pd) < 0) + return -1; + value = per_get_few_bits(pd, 16); + if (value < 0 || value >= range) + return -1; + return value + lb; + } + + /* X.691 2002 10.5.7.4 - The indefinite length case. */ + /* since we limit input to be 'long' we don't handle all numbers */ + /* and so length determinant is retrieved as X.691 2002 10.9.3.3 */ + /* number of bytes to store the range */ + for (range_len = 3; ; range_len++) { + long bits = ((long)1) << (8 * range_len); + if (range - 1 < bits) + break; + } + value_len = aper_get_constrained_whole_number(pd, 1, range_len); + if (value_len == -1) + return -1; + if (value_len > 4) { + ASN_DEBUG("todo: aper_get_constrained_whole_number: value_len > 4"); + return -1; + } + if (aper_get_align(pd) < 0) + return -1; + value = per_get_few_bits(pd, value_len * 8); + if (value < 0 || value >= range) + return -1; + return value + lb; +} + +int aper_put_align(asn_per_outp_t *po) { + + if(po->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); + if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) + return -1; + } + return 0; +} + +ssize_t +aper_put_length(asn_per_outp_t *po, ssize_t lb, ssize_t ub, size_t n, int *need_eom) { + int constrained = (lb >= 0) && (ub >= 0); + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + *need_eom = 0; + + + ASN_DEBUG("APER put length %zu with range (%zd..%zd)", n, lb, ub); + + /* X.691 2002 10.9.3.3 */ + if (constrained && ub < 65536) + return aper_put_constrained_whole_number(po, lb, ub, n + lb) ? -1 : (ssize_t)n; + + if (aper_put_align(po) < 0) + return -1; + + if(n <= 127) { /* #11.9.3.6 */ + return per_put_few_bits(po, n, 8) + ? -1 : (ssize_t)n; + } + else if(n < 16384) /* #11.9.3.7 */ + return per_put_few_bits(po, n|0x8000, 16) + ? -1 : (ssize_t)n; + + *need_eom = 0 == (n & 16383); + n >>= 14; + if(n > 4) { + *need_eom = 0; + n = 4; + } + + return per_put_few_bits(po, 0xC0 | n, 8) + ? -1 : (ssize_t)(n << 14); +} + + +int +aper_put_nslength(asn_per_outp_t *po, size_t length) { + + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length-1, 7) ? -1 : 0; + } else { + if(aper_put_length(po, -1, -1, length, NULL) != (ssize_t)length) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +int +aper_put_nsnnwn(asn_per_outp_t *po, int number) { + int len; + + ASN_DEBUG("aper put nsnnwn %d", number); + + if (number <= 63) { + if (per_put_few_bits(po, 0, 1)) + return -1; + return per_put_few_bits(po, number, 6); + } + + if (per_put_few_bits(po, 1, 1)) + return -1; + + if (number < 256) { + len = 1; + } else if (number < 65536) { + len = 2; + } else { /* number > 64K */ + int i; + for (i = 3; ; i++) { + int bits = 1 << (8 * i); + if (number < bits) + break; + } + len = i; + } + + if (aper_put_align(po) < 0) + return -1; + + /* put the length which is a non-constrained whole number */ + if (len <= 127) { + if(per_put_few_bits(po, 0, 1)) + return -1; + if(per_put_few_bits(po, len, 7)) + return -1; + } else { + /* todo but not big problem, it's very doubtful that the + * number of bytes to encode 'number' will be > 127 + */ + return -1; + } + if(aper_put_align(po) < 0) /* Aligning on octet */ + return -1; + return per_put_few_bits(po, number, 8 * len); +} + +/* X.691 2002 10.5 - Encoding of a constrained whole number */ +int +aper_put_constrained_whole_number(asn_per_outp_t *po, long lb, long ub, long number) { + assert(ub >= lb); + long range = ub - lb + 1; + long value = number - lb; + int range_len; + int value_len; + + ASN_DEBUG("aper put constrained_whole_number %ld with lb %ld and ub %ld", number, lb, ub); + + if (number < lb || number > ub) + return -1; + + /* X.691 2002 10.5.4 */ + if (range == 1) + return 0; + + /* X.691 2002 10.5.7.1 - The bit-field case. */ + if (range <= 255) { + int bitfield_size = 8; + for (bitfield_size = 8; bitfield_size >= 2; bitfield_size--) + if ((range - 1) & (1 << (bitfield_size-1))) + break; + return per_put_few_bits(po, value, bitfield_size); + } + + /* X.691 2002 10.5.7.2 - The one-octet case. */ + if (range == 256) { + if (aper_put_align(po)) + return -1; + return per_put_few_bits(po, value, 8); + } + + /* X.691 2002 10.5.7.3 - The two-octet case. */ + if (range <= 65536) { + if (aper_put_align(po)) + return -1; + return per_put_few_bits(po, value, 16); + } + + /* X.691 2002 10.5.7.4 - The indefinite length case. */ + /* since we limit input to be 'long' we don't handle all numbers */ + /* and so length determinant is stored as X.691 2002 10.9.3.3 */ + /* number of bytes to store the range */ + for (range_len = 3; ; range_len++) { + int bits = 1 << (8 * range_len); + if (range - 1 < bits) + break; + } + /* number of bytes to store the value */ + for (value_len = 1; ; value_len++) { + long bits = ((long)1) << (8 * value_len); + if (value < bits) + break; + } + if (aper_put_constrained_whole_number(po, 1, range_len, value_len)) + return -1; + if (aper_put_align(po)) + return -1; + return per_put_few_bits(po, value, value_len * 8); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_SEQUENCE_OF.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_SEQUENCE_OF.c new file mode 100644 index 000000000..b358c9e38 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_SEQUENCE_OF.c @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +typedef A_SEQUENCE_OF(void) asn_sequence; + +void +asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { + asn_sequence *as = (asn_sequence *)asn_sequence_of_x; + + if(as) { + void *ptr; + int n; + + if(number < 0 || number >= as->count) + return; /* Nothing to delete */ + + if(_do_free && as->free) { + ptr = as->array[number]; + } else { + ptr = 0; + } + + /* + * Shift all elements to the left to hide the gap. + */ + --as->count; + for(n = number; n < as->count; n++) + as->array[n] = as->array[n+1]; + + /* + * Invoke the third-party function only when the state + * of the parent structure is consistent. + */ + if(ptr) as->free(ptr); + } +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_SET_OF.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_SET_OF.c new file mode 100644 index 000000000..72357979a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_SET_OF.c @@ -0,0 +1,88 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Add another element into the set. + */ +int +asn_set_add(void *asn_set_of_x, void *ptr) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as == 0 || ptr == 0) { + errno = EINVAL; /* Invalid arguments */ + return -1; + } + + /* + * Make sure there's enough space to insert an element. + */ + if(as->count == as->size) { + int _newsize = as->size ? (as->size << 1) : 4; + void *_new_arr; + _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); + if(_new_arr) { + as->array = (void **)_new_arr; + as->size = _newsize; + } else { + /* ENOMEM */ + return -1; + } + } + + as->array[as->count++] = ptr; + + return 0; +} + +void +asn_set_del(void *asn_set_of_x, int number, int _do_free) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as) { + void *ptr; + if(number < 0 || number >= as->count) + return; + + if(_do_free && as->free) { + ptr = as->array[number]; + } else { + ptr = 0; + } + + as->array[number] = as->array[--as->count]; + + /* + * Invoke the third-party function only when the state + * of the parent structure is consistent. + */ + if(ptr) as->free(ptr); + } +} + +/* + * Free the contents of the set, do not free the set itself. + */ +void +asn_set_empty(void *asn_set_of_x) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as) { + if(as->array) { + if(as->free) { + while(as->count--) + as->free(as->array[as->count]); + } + FREEMEM(as->array); + as->array = 0; + } + as->count = 0; + as->size = 0; + } + +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_application.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_application.c new file mode 100644 index 000000000..c1a19ceb8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_application.c @@ -0,0 +1,556 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_app_consume_bytes_f *callback, + void *callback_key); + + +struct callback_count_bytes_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + size_t computed_size; +}; + +/* + * Encoder which just counts bytes that come through it. + */ +static int +callback_count_bytes_cb(const void *data, size_t size, void *keyp) { + struct callback_count_bytes_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret >= 0) { + key->computed_size += size; + } + + return ret; +} + +struct overrun_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct dynamic_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct callback_failure_catch_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + int callback_failed; +}; + +/* + * Encoder which doesn't stop counting bytes + * even if it reaches the end of the buffer. + */ +static int +overrun_encoder_cb(const void *data, size_t size, void *keyp) { + struct overrun_encoder_key *key = keyp; + + if(key->computed_size + size > key->buffer_size) { + /* + * Avoid accident on the next call: + * stop adding bytes to the buffer. + */ + key->buffer_size = 0; + } else { + memcpy((char *)key->buffer + key->computed_size, data, size); + } + key->computed_size += size; + + return 0; +} + +/* + * Encoder which dynamically allocates output, and continues + * to count even if allocation failed. + */ +static int +dynamic_encoder_cb(const void *data, size_t size, void *keyp) { + struct dynamic_encoder_key *key = keyp; + + if(key->buffer) { + if(key->computed_size + size >= key->buffer_size) { + void *p; + size_t new_size = key->buffer_size; + + do { + new_size *= 2; + } while(new_size <= key->computed_size + size); + + p = REALLOC(key->buffer, new_size); + if(p) { + key->buffer = p; + key->buffer_size = new_size; + } else { + FREEMEM(key->buffer); + key->buffer = 0; + key->buffer_size = 0; + key->computed_size += size; + return 0; + } + } + memcpy((char *)key->buffer + key->computed_size, data, size); + } + + key->computed_size += size; + + return 0; +} + +/* + * Encoder which help convert the application level encoder failure into EIO. + */ +static int +callback_failure_catch_cb(const void *data, size_t size, void *keyp) { + struct callback_failure_catch_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret < 0) { + key->callback_failed = 1; + } + + return ret; +} + +asn_enc_rval_t +asn_encode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { + struct callback_failure_catch_key cb_key; + asn_enc_rval_t er = {0,0,0}; + + if(!callback) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.callback_failed = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + callback_failure_catch_cb, &cb_key); + if(cb_key.callback_failed) { + assert(er.encoded == -1); + assert(errno == EBADF); + errno = EIO; + } + + return er; +} + +asn_enc_rval_t +asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + void *buffer, size_t buffer_size) { + struct overrun_encoder_key buf_key; + asn_enc_rval_t er = {0,0,0}; + + if(buffer_size > 0 && !buffer) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + buf_key.buffer = buffer; + buf_key.buffer_size = buffer_size; + buf_key.computed_size = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + overrun_encoder_cb, &buf_key); + + if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + er.encoded, buf_key.computed_size); + assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); + } + + return er; +} + +asn_encode_to_new_buffer_result_t +asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr) { + struct dynamic_encoder_key buf_key; + asn_encode_to_new_buffer_result_t res; + + buf_key.buffer_size = 16; + buf_key.buffer = MALLOC(buf_key.buffer_size); + buf_key.computed_size = 0; + + res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + dynamic_encoder_cb, &buf_key); + + if(res.result.encoded >= 0 + && (size_t)res.result.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + res.result.encoded, buf_key.computed_size); + assert(res.result.encoded < 0 + || (size_t)res.result.encoded == buf_key.computed_size); + } + + res.buffer = buf_key.buffer; + + /* 0-terminate just in case. */ + if(res.buffer) { + assert(buf_key.computed_size < buf_key.buffer_size); + ((char *)res.buffer)[buf_key.computed_size] = '\0'; + } + + return res; +} + +static asn_enc_rval_t +asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *callback, void *callback_key) { + asn_enc_rval_t er = {0,0,0}; +#if !defined(ASN_DISABLE_XER_SUPPORT) + enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + enum jer_encoder_flags_e jer_flags = JER_F; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + + (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ + + if(!td || !sptr) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + switch(syntax) { + case ATS_NONSTANDARD_PLAINTEXT: + if(td->op->print_struct) { + struct callback_count_bytes_key cb_key; + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.computed_size = 0; + if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, + &cb_key) + < 0 + || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { + errno = EBADF; /* Structure has incorrect form. */ + er.encoded = -1; + er.failed_type = td; + er.structure_ptr = sptr; + } else { + er.encoded = cb_key.computed_size; + er.failed_type = 0; + er.structure_ptr = 0; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + + case ATS_RANDOM: + errno = ENOENT; /* Randomization doesn't make sense on output. */ + ASN__ENCODE_FAILED; + +#if !defined(ASN_DISABLE_BER_SUPPORT) + case ATS_BER: + /* BER is a superset of DER. */ + /* Fall through. */ + case ATS_DER: + if(td->op->der_encoder) { + er = der_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->der_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* DER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + case ATS_CER: + errno = ENOENT; /* Transfer syntax is not defined for any type. */ + ASN__ENCODE_FAILED; +#else + case ATS_BER: + case ATS_DER: + case ATS_CER: + errno = ENOENT; /* BER is not defined. */ + ASN__ENCODE_FAILED; + +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_OER_SUPPORT) + case ATS_BASIC_OER: + /* CANONICAL-OER is a superset of BASIC-OER. */ + /* Fall through. */ + case ATS_CANONICAL_OER: + if(td->op->oer_encoder) { + er = oer_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->oer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* OER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: + errno = ENOENT; /* OER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) + case ATS_UNALIGNED_BASIC_PER: + /* CANONICAL-UPER is a superset of BASIC-UPER. */ + /* Fall through. */ + case ATS_UNALIGNED_CANONICAL_PER: + if(td->op->uper_encoder) { + er = uper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->uper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* UPER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: + errno = ENOENT; /* UPER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + case ATS_ALIGNED_BASIC_PER: + /* CANONICAL-APER is a superset of BASIC-APER. */ + /* Fall through. */ + case ATS_ALIGNED_CANONICAL_PER: + if(td->op->aper_encoder) { + er = aper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->aper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* APER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: + errno = ENOENT; /* APER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) + case ATS_BASIC_XER: + /* CANONICAL-XER is a superset of BASIC-XER. */ + xer_flags &= ~XER_F_CANONICAL; + xer_flags |= XER_F_BASIC; + /* Fall through. */ + case ATS_CANONICAL_XER: + if(td->op->xer_encoder) { + er = xer_encode(td, sptr, xer_flags, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->xer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* XER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#else + case ATS_BASIC_XER: + case ATS_CANONICAL_XER: + errno = ENOENT; /* XER is not defined. */ + ASN__ENCODE_FAILED; + break; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) + case ATS_JER_MINIFIED: + /* Currently JER_F and JER_F_MINIFIED have opposite purposes + * so we just flip the flag. */ + jer_flags &= ~JER_F; + jer_flags |= JER_F_MINIFIED; + /* Fall through. */ + case ATS_JER: + if(td->op->jer_encoder) { + er = jer_encode(td, sptr, jer_flags, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->jer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* JER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + default: + errno = ENOENT; + ASN__ENCODE_FAILED; + } + + return er; +} + +asn_dec_rval_t +asn_decode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + void **sptr, const void *buffer, size_t size) { + if(!td || !td->op || !sptr || (size && !buffer)) { + ASN__DECODE_FAILED; + } + + switch(syntax) { + case ATS_CER: + case ATS_NONSTANDARD_PLAINTEXT: + default: + errno = ENOENT; + ASN__DECODE_FAILED; + + case ATS_RANDOM: +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + if(!td->op->random_fill) { + ASN__DECODE_FAILED; + } else { + if(asn_random_fill(td, sptr, 16000) == 0) { + asn_dec_rval_t ret = {RC_OK, 0}; + return ret; + } else { + ASN__DECODE_FAILED; + } + } + break; +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + + case ATS_DER: + case ATS_BER: +#if !defined(ASN_DISABLE_BER_SUPPORT) + return ber_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: +#if !defined(ASN_DISABLE_OER_SUPPORT) + return oer_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ + + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: +#if !defined(ASN_DISABLE_UPER_SUPPORT) + return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ + + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: +#if !defined(ASN_DISABLE_APER_SUPPORT) + return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + + case ATS_BASIC_XER: + case ATS_CANONICAL_XER: +#if !defined(ASN_DISABLE_XER_SUPPORT) + return xer_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + + case ATS_JER: + case ATS_JER_MINIFIED: +#if !defined(ASN_DISABLE_JER_SUPPORT) + return jer_decode(opt_codec_ctx, td, sptr, buffer, size); +#else + errno = ENOENT; + ASN__DECODE_FAILED; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + } +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_bit_data.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_bit_data.c new file mode 100644 index 000000000..52f08a336 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_bit_data.c @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t * +asn_bit_data_new_contiguous(const void *data, size_t size_bits) { + size_t size_bytes = (size_bits + 7) / 8; + asn_bit_data_t *pd; + uint8_t *bytes; + + /* Get the extensions map */ + pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); + if(!pd) { + return NULL; + } + bytes = (void *)(((char *)pd) + sizeof(*pd)); + memcpy(bytes, data, size_bytes); + bytes[size_bytes] = 0; + pd->buffer = bytes; + pd->nboff = 0; + pd->nbits = size_bits; + + return pd; +} + + +char * +asn_bit_data_string(asn_bit_data_t *pd) { + static char buf[2][32]; + static int n; + n = (n+1) % 2; + snprintf(buf[n], sizeof(buf[n]), + "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE + "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", + pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, + pd->nbits - pd->nboff); + return buf[n]; +} + +void +asn_get_undo(asn_bit_data_t *pd, int nbits) { + if((ssize_t)pd->nboff < nbits) { + assert((ssize_t)pd->nboff < nbits); + } else { + pd->nboff -= nbits; + pd->moved -= nbits; + } +} + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + */ +int32_t +asn_get_few_bits(asn_bit_data_t *pd, int nbits) { + size_t off; /* Next after last bit offset */ + ssize_t nleft; /* Number of bits left in this stream */ + uint32_t accum; + const uint8_t *buf; + + if(nbits < 0) + return -1; + + nleft = pd->nbits - pd->nboff; + if(nbits > nleft) { + int32_t tailv, vhead; + if(!pd->refill || nbits > 31) return -1; + /* Accumulate unused bytes before refill */ + ASN_DEBUG("Obtain the rest %d bits (want %d)", + (int)nleft, (int)nbits); + tailv = asn_get_few_bits(pd, nleft); + if(tailv < 0) return -1; + /* Refill (replace pd contents with new data) */ + if(pd->refill(pd)) + return -1; + nbits -= nleft; + vhead = asn_get_few_bits(pd, nbits); + /* Combine the rest of previous pd with the head of new one */ + tailv = (tailv << nbits) | vhead; /* Could == -1 */ + return tailv; + } + + /* + * Normalize position indicator. + */ + if(pd->nboff >= 8) { + pd->buffer += (pd->nboff >> 3); + pd->nbits -= (pd->nboff & ~0x07); + pd->nboff &= 0x07; + } + pd->moved += nbits; + pd->nboff += nbits; + off = pd->nboff; + buf = pd->buffer; + + /* + * Extract specified number of bits. + */ + if(off <= 8) + accum = nbits ? (buf[0]) >> (8 - off) : 0; + else if(off <= 16) + accum = ((buf[0] << 8) + buf[1]) >> (16 - off); + else if(off <= 24) + accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); + else if(off <= 31) + accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) + + (buf[2] << 8) + (buf[3])) >> (32 - off); + else if(nbits <= 31) { + asn_bit_data_t tpd = *pd; + /* Here are we with our 31-bits limit plus 1..7 bits offset. */ + asn_get_undo(&tpd, nbits); + /* The number of available bits in the stream allow + * for the following operations to take place without + * invoking the ->refill() function */ + accum = asn_get_few_bits(&tpd, nbits - 24) << 24; + accum |= asn_get_few_bits(&tpd, 24); + } else { + asn_get_undo(pd, nbits); + return -1; + } + + accum &= (((uint32_t)1 << nbits) - 1); + + ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", + (int)nbits, (int)nleft, + (int)pd->moved, + (((long)pd->buffer) & 0xf), + (int)pd->nboff, (int)pd->nbits, + ((pd->buffer != NULL)?pd->buffer[0]:0), + (int)(pd->nbits - pd->nboff), + (int)accum); + + return accum; +} + +/* + * Extract a large number of bits from the specified PER data pointer. + */ +int +asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { + int32_t value; + + if(alright && (nbits & 7)) { + /* Perform right alignment of a first few bits */ + value = asn_get_few_bits(pd, nbits & 0x07); + if(value < 0) return -1; + *dst++ = value; /* value is already right-aligned */ + nbits &= ~7; + } + + while(nbits) { + if(nbits >= 24) { + value = asn_get_few_bits(pd, 24); + if(value < 0) return -1; + *(dst++) = value >> 16; + *(dst++) = value >> 8; + *(dst++) = value; + nbits -= 24; + } else { + value = asn_get_few_bits(pd, nbits); + if(value < 0) return -1; + if(nbits & 7) { /* implies left alignment */ + value <<= 8 - (nbits & 7), + nbits += 8 - (nbits & 7); + if(nbits > 24) + *dst++ = value >> 24; + } + if(nbits > 16) + *dst++ = value >> 16; + if(nbits > 8) + *dst++ = value >> 8; + *dst++ = value; + break; + } + } + + return 0; +} + +/* + * Put a small number of bits (<= 31). + */ +int +asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { + size_t off; /* Next after last bit offset */ + size_t omsk; /* Existing last byte meaningful bits mask */ + uint8_t *buf; + + if(obits <= 0 || obits >= 32) return obits ? -1 : 0; + + ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", + obits, (int)bits, (void *)po->buffer, (int)po->nboff); + + /* + * Normalize position indicator. + */ + if(po->nboff >= 8) { + po->buffer += (po->nboff >> 3); + po->nbits -= (po->nboff & ~0x07); + po->nboff &= 0x07; + } + + /* + * Flush whole-bytes output, if necessary. + */ + if(po->nboff + obits > po->nbits) { + size_t complete_bytes; + if(!po->buffer) po->buffer = po->tmpspace; + complete_bytes = (po->buffer - po->tmpspace); + ASN_DEBUG("[PER output %ld complete + %ld]", + (long)complete_bytes, (long)po->flushed_bytes); + if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) + return -1; + if(po->nboff) + po->tmpspace[0] = po->buffer[0]; + po->buffer = po->tmpspace; + po->nbits = 8 * sizeof(po->tmpspace); + po->flushed_bytes += complete_bytes; + } + + /* + * Now, due to sizeof(tmpspace), we are guaranteed large enough space. + */ + buf = po->buffer; + omsk = ~((1 << (8 - po->nboff)) - 1); + off = (po->nboff + obits); + + /* Clear data of debris before meaningful bits */ + bits &= (((uint32_t)1 << obits) - 1); + + ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, + (int)bits, (int)bits, + (int)po->nboff, (int)off, + buf[0], (int)(omsk&0xff), + (int)(buf[0] & omsk)); + + if(off <= 8) /* Completely within 1 byte */ + po->nboff = off, + bits <<= (8 - off), + buf[0] = (buf[0] & omsk) | bits; + else if(off <= 16) + po->nboff = off, + bits <<= (16 - off), + buf[0] = (buf[0] & omsk) | (bits >> 8), + buf[1] = bits; + else if(off <= 24) + po->nboff = off, + bits <<= (24 - off), + buf[0] = (buf[0] & omsk) | (bits >> 16), + buf[1] = bits >> 8, + buf[2] = bits; + else if(off <= 31) + po->nboff = off, + bits <<= (32 - off), + buf[0] = (buf[0] & omsk) | (bits >> 24), + buf[1] = bits >> 16, + buf[2] = bits >> 8, + buf[3] = bits; + else { + if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; + if(asn_put_few_bits(po, bits, obits - 24)) return -1; + } + + ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", + (int)bits, (int)bits, buf[0], + (long)(po->buffer - po->tmpspace)); + + return 0; +} + + +/* + * Output a large number of bits. + */ +int +asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { + + while(nbits) { + uint32_t value; + + if(nbits >= 24) { + value = (src[0] << 16) | (src[1] << 8) | src[2]; + src += 3; + nbits -= 24; + if(asn_put_few_bits(po, value, 24)) + return -1; + } else { + value = src[0]; + if(nbits > 8) + value = (value << 8) | src[1]; + if(nbits > 16) + value = (value << 8) | src[2]; + if(nbits & 0x07) + value >>= (8 - (nbits & 0x07)); + if(asn_put_few_bits(po, value, nbits)) + return -1; + break; + } + } + + return 0; +} + + +int +asn_put_aligned_flush(asn_bit_outp_t *po) { + uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); + size_t complete_bytes = + (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); + + if(unused_bits) { + po->buffer[po->nboff >> 3] &= ~0u << unused_bits; + } + + if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { + return -1; + } else { + po->buffer = po->tmpspace; + po->nboff = 0; + po->nbits = 8 * sizeof(po->tmpspace); + po->flushed_bytes += complete_bytes; + return 0; + } +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_codecs_prim.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_codecs_prim.c new file mode 100644 index 000000000..9b9beb2d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_codecs_prim.c @@ -0,0 +1,31 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +void +ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as a primitive type", td->name); + + if(st->buf) + FREEMEM(st->buf); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); + break; + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_internal.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_internal.c new file mode 100644 index 000000000..0a4f3900e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_internal.c @@ -0,0 +1,50 @@ +#include + +ssize_t +asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, + const char *fmt, ...) { + char scratch[64]; + char *buf = scratch; + size_t buf_size = sizeof(scratch); + int wrote; + int cb_ret; + + do { + va_list args; + va_start(args, fmt); + + wrote = vsnprintf(buf, buf_size, fmt, args); + va_end(args); + if(wrote < (ssize_t)buf_size) { + if(wrote < 0) { + if(buf != scratch) FREEMEM(buf); + return -1; + } + break; + } + + buf_size <<= 1; + if(buf == scratch) { + buf = MALLOC(buf_size); + if(!buf) { + return -1; + } + } else { + void *p = REALLOC(buf, buf_size); + if(!p) { + FREEMEM(buf); + return -1; + } + buf = p; + } + } while(1); + + cb_ret = cb(buf, wrote, key); + if(buf != scratch) FREEMEM(buf); + if(cb_ret < 0) { + return -1; + } + + return wrote; +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_random_fill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_random_fill.c new file mode 100644 index 000000000..62430853b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/asn_random_fill.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +int +asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t length) { + + if(td && td->op->random_fill) { + asn_random_fill_result_t res = + td->op->random_fill(td, struct_ptr, 0, length); + return (res.code == ARFILL_OK) ? 0 : -1; + } else { + return -1; + } +} + +static uintmax_t +asn__intmax_range(intmax_t lb, intmax_t ub) { + assert(lb <= ub); + if((ub < 0) == (lb < 0)) { + return ub - lb; + } else if(lb < 0) { + return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return 0; + } +} + +intmax_t +asn_random_between(intmax_t lb, intmax_t rb) { + if(lb == rb) { + return lb; + } else { + const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); + uintmax_t range = asn__intmax_range(lb, rb); + uintmax_t value = 0; + uintmax_t got_entropy = 0; + (void)intmax_max; + int max = 0xffffff; + +#ifdef __WIN32__ + max = RAND_MAX-1; +#endif + + assert(RAND_MAX > max); /* Seen 7ffffffd! */ + assert(range < intmax_max); + + for(; got_entropy < range;) { + got_entropy = (got_entropy << 24) | max; +#ifdef HAVE_RANDOM + value = (value << 24) | (random() % max); +#else + value = (value << 24) | (rand() % max); +#endif + } + + return lb + (intmax_t)(value % (range + 1)); + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ber_tlv_length.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ber_tlv_length.c new file mode 100644 index 000000000..e9d03d2fd --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ber_tlv_length.c @@ -0,0 +1,168 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, + ber_tlv_len_t *len_r) { + const uint8_t *buf = (const uint8_t *)bufptr; + unsigned oct; + + if(size == 0) + return 0; /* Want more */ + + oct = *(const uint8_t *)buf; + if((oct & 0x80) == 0) { + /* + * Short definite length. + */ + *len_r = oct; /* & 0x7F */ + return 1; + } else { + ber_tlv_len_t len; + size_t skipped; + + if(_is_constructed && oct == 0x80) { + *len_r = -1; /* Indefinite length */ + return 1; + } + + if(oct == 0xff) { + /* Reserved in standard for future use. */ + return -1; + } + + oct &= 0x7F; /* Leave only the 7 LS bits */ + for(len = 0, buf++, skipped = 1; + oct && (++skipped <= size); buf++, oct--) { + + /* Verify that we won't overflow. */ + if(!(len >> ((8 * sizeof(len)) - (8+1)))) { + len = (len << 8) | *buf; + } else { + /* Too large length value. */ + return -1; + } + } + + if(oct == 0) { + if(len < 0 || len > RSSIZE_MAX) { + /* Length value out of sane range. */ + return -1; + } + + *len_r = len; + return skipped; + } + + return 0; /* Want more */ + } + +} + +ssize_t +ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, + int _is_constructed, const void *ptr, size_t size) { + ber_tlv_len_t vlen; /* Length of V in TLV */ + ssize_t tl; /* Length of L in TLV */ + ssize_t ll; /* Length of L in TLV */ + size_t skip; + + /* + * Make sure we didn't exceed the maximum stack size. + */ + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + return -1; + + /* + * Determine the size of L in TLV. + */ + ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); + if(ll <= 0) return ll; + + /* + * Definite length. + */ + if(vlen >= 0) { + skip = ll + vlen; + if(skip > size) + return 0; /* Want more */ + return skip; + } + + /* + * Indefinite length! + */ + ASN_DEBUG("Skipping indefinite length"); + for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { + ber_tlv_tag_t tag; + + /* Fetch the tag */ + tl = ber_fetch_tag(ptr, size, &tag); + if(tl <= 0) return tl; + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + ((const char *)ptr) + tl, size - tl); + if(ll <= 0) return ll; + + skip += tl + ll; + + /* + * This may be the end of the indefinite length structure, + * two consecutive 0 octets. + * Check if it is true. + */ + if(((const uint8_t *)ptr)[0] == 0 + && ((const uint8_t *)ptr)[1] == 0) + return skip; + + ptr = ((const char *)ptr) + tl + ll; + size -= tl + ll; + } + + /* UNREACHABLE */ +} + +size_t +der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { + size_t required_size; /* Size of len encoding */ + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + int i; + + if(len <= 127) { + /* Encoded in 1 octet */ + if(size) *buf = (uint8_t)len; + return 1; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { + if(len >> i) + required_size++; + else + break; + } + + if(size <= required_size) + return required_size + 1; + + *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ + + /* + * Produce the len encoding, space permitting. + */ + end = buf + required_size; + for(i -= 8; buf < end; i -= 8, buf++) + *buf = (uint8_t)(len >> i); + + return required_size + 1; +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/ber_tlv_tag.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/ber_tlv_tag.c new file mode 100644 index 000000000..bf6136ae8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/ber_tlv_tag.c @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { + ber_tlv_tag_t val; + ber_tlv_tag_t tclass; + size_t skipped; + + if(size == 0) + return 0; + + val = *(const uint8_t *)ptr; + tclass = (val >> 6); + if((val &= 0x1F) != 0x1F) { + /* + * Simple form: everything encoded in a single octet. + * Tag Class is encoded using two least significant bits. + */ + *tag_r = (val << 2) | tclass; + return 1; + } + + /* + * Each octet contains 7 bits of useful information. + * The MSB is 0 if it is the last octet of the tag. + */ + for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; + skipped <= size; + ptr = ((const char *)ptr) + 1, skipped++) { + unsigned int oct = *(const uint8_t *)ptr; + if(oct & 0x80) { + val = (val << 7) | (oct & 0x7F); + /* + * Make sure there are at least 9 bits spare + * at the MS side of a value. + */ + if(val >> ((8 * sizeof(val)) - 9)) { + /* + * We would not be able to accommodate + * any more tag bits. + */ + return -1; + } + } else { + val = (val << 7) | oct; + *tag_r = (val << 2) | tclass; + return skipped; + } + } + + return 0; /* Want more */ +} + + +ssize_t +ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { + char buf[sizeof("[APPLICATION ]") + 32]; + ssize_t ret; + + ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + if(ret >= (ssize_t)sizeof(buf) || ret < 2) { + errno = EPERM; + return -1; + } + + return fwrite(buf, 1, ret, f); +} + +ssize_t +ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { + const char *type = 0; + int ret; + + switch(tag & 0x3) { + case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; + case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; + case ASN_TAG_CLASS_CONTEXT: type = ""; break; + case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; + } + + ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); + if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ + + return ret; +} + +char * +ber_tlv_tag_string(ber_tlv_tag_t tag) { + static char buf[sizeof("[APPLICATION ]") + 32]; + + (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + + return buf; +} + + +size_t +ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { + int tclass = BER_TAG_CLASS(tag); + ber_tlv_tag_t tval = BER_TAG_VALUE(tag); + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + size_t required_size; + size_t i; + + if(tval <= 30) { + /* Encoded in 1 octet */ + if(size) buf[0] = (tclass << 6) | tval; + return 1; + } else if(size) { + *buf++ = (tclass << 6) | 0x1F; + size--; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { + if(tval >> i) + required_size++; + else + break; + } + + if(size < required_size) + return required_size + 1; + + /* + * Fill in the buffer, space permitting. + */ + end = buf + required_size - 1; + for(i -= 7; buf < end; i -= 7, buf++) + *buf = 0x80 | ((tval >> i) & 0x7F); + *buf = (tval & 0x7F); /* Last octet without high bit */ + + return required_size + 1; +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Acceleration3dWithConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Acceleration3dWithConfidence.c new file mode 100644 index 000000000..e3b5fe02d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Acceleration3dWithConfidence.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Acceleration3dWithConfidence.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Acceleration3dWithConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_Acceleration3dWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Acceleration3dWithConfidence, choice.polarAcceleration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationPolarWithZ, + 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 */ + "polarAcceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Acceleration3dWithConfidence, choice.cartesianAcceleration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationCartesian, + 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 */ + "cartesianAcceleration" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Acceleration3dWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* polarAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cartesianAcceleration */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_Acceleration3dWithConfidence_specs_1 = { + sizeof(struct cam_ts_Acceleration3dWithConfidence), + offsetof(struct cam_ts_Acceleration3dWithConfidence, _asn_ctx), + offsetof(struct cam_ts_Acceleration3dWithConfidence, present), + sizeof(((struct cam_ts_Acceleration3dWithConfidence *)0)->present), + asn_MAP_cam_ts_Acceleration3dWithConfidence_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Acceleration3dWithConfidence = { + "Acceleration3dWithConfidence", + "Acceleration3dWithConfidence", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_Acceleration3dWithConfidence_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_Acceleration3dWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Acceleration3dWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationCartesian.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationCartesian.c new file mode 100644 index 000000000..b7dbbe10a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationCartesian.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationCartesian.h" + +asn_TYPE_member_t asn_MBR_cam_ts_AccelerationCartesian_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationCartesian, xAcceleration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationComponent, + 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 */ + "xAcceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationCartesian, yAcceleration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationComponent, + 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 */ + "yAcceleration" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_AccelerationCartesian, zAcceleration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationComponent, + 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 */ + "zAcceleration" + }, +}; +static const int asn_MAP_cam_ts_AccelerationCartesian_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_AccelerationCartesian_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_AccelerationCartesian_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zAcceleration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationCartesian_specs_1 = { + sizeof(struct cam_ts_AccelerationCartesian), + offsetof(struct cam_ts_AccelerationCartesian, _asn_ctx), + asn_MAP_cam_ts_AccelerationCartesian_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_AccelerationCartesian_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationCartesian = { + "AccelerationCartesian", + "AccelerationCartesian", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_AccelerationCartesian_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationCartesian_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationCartesian_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationCartesian_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationCartesian_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationCartesian_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_cam_ts_AccelerationCartesian_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_AccelerationCartesian_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationChange.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationChange.c new file mode 100644 index 000000000..4296f17cb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationChange.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationChange.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_AccelerationChange_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_AccelerationChange_value2enum_1[] = { + { 0, 10, "accelerate" }, + { 1, 10, "decelerate" } +}; +static const unsigned int asn_MAP_cam_ts_AccelerationChange_enum2value_1[] = { + 0, /* accelerate(0) */ + 1 /* decelerate(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_AccelerationChange_specs_1 = { + asn_MAP_cam_ts_AccelerationChange_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_AccelerationChange_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* 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_cam_ts_AccelerationChange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationChange = { + "AccelerationChange", + "AccelerationChange", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_AccelerationChange_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationChange_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationChange_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationChange_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationChange_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationChange_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) + &asn_PER_type_cam_ts_AccelerationChange_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_cam_ts_AccelerationChange_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationChangeIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationChangeIndication.c new file mode 100644 index 000000000..af6cf514c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationChangeIndication.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationChangeIndication.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_AccelerationChangeIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationChangeIndication, accelOrDecel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationChange, + 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 */ + "accelOrDecel" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationChangeIndication, actionDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeTenthOfSecond, + 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 */ + "actionDeltaTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_AccelerationChangeIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_AccelerationChangeIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accelOrDecel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionDeltaTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationChangeIndication_specs_1 = { + sizeof(struct cam_ts_AccelerationChangeIndication), + offsetof(struct cam_ts_AccelerationChangeIndication, _asn_ctx), + asn_MAP_cam_ts_AccelerationChangeIndication_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationChangeIndication = { + "AccelerationChangeIndication", + "AccelerationChangeIndication", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_AccelerationChangeIndication_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationChangeIndication_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationChangeIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationChangeIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationChangeIndication_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationChangeIndication_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_cam_ts_AccelerationChangeIndication_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_AccelerationChangeIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationComponent.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationComponent.c new file mode 100644 index 000000000..95e74bc05 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationComponent.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationComponent.h" + +asn_TYPE_member_t asn_MBR_cam_ts_AccelerationComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationComponent, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationValue, + 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" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationComponent, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationConfidence, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_AccelerationComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_AccelerationComponent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationComponent_specs_1 = { + sizeof(struct cam_ts_AccelerationComponent), + offsetof(struct cam_ts_AccelerationComponent, _asn_ctx), + asn_MAP_cam_ts_AccelerationComponent_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_cam_ts_AccelerationComponent = { + "AccelerationComponent", + "AccelerationComponent", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_AccelerationComponent_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationComponent_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationComponent_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationComponent_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationComponent_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_cam_ts_AccelerationComponent_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_AccelerationComponent_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationConfidence.c new file mode 100644 index 000000000..38e3fa671 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationConfidence.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AccelerationConfidence_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationConfidence_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) + &asn_PER_type_cam_ts_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) */ + cam_ts_AccelerationConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationControl.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationControl.c new file mode 100644 index 000000000..fc9c0ce8c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationControl.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationControl.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_AccelerationControl_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationControl_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationControl_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationControl_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) + &asn_PER_type_cam_ts_AccelerationControl_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) */ + cam_ts_AccelerationControl_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationMagnitude.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationMagnitude.c new file mode 100644 index 000000000..7de01f476 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationMagnitude.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitude.h" + +asn_TYPE_member_t asn_MBR_cam_ts_AccelerationMagnitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationMagnitude, accelerationMagnitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationMagnitudeValue, + 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 */ + "accelerationMagnitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationMagnitude, accelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationConfidence, + 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 */ + "accelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_AccelerationMagnitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_AccelerationMagnitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accelerationMagnitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* accelerationConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationMagnitude_specs_1 = { + sizeof(struct cam_ts_AccelerationMagnitude), + offsetof(struct cam_ts_AccelerationMagnitude, _asn_ctx), + asn_MAP_cam_ts_AccelerationMagnitude_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_cam_ts_AccelerationMagnitude = { + "AccelerationMagnitude", + "AccelerationMagnitude", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_AccelerationMagnitude_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationMagnitude_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationMagnitude_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationMagnitude_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationMagnitude_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationMagnitude_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_cam_ts_AccelerationMagnitude_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_AccelerationMagnitude_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationMagnitudeValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationMagnitudeValue.c new file mode 100644 index 000000000..38e6bc4d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationMagnitudeValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationMagnitudeValue.h" + +int +cam_ts_AccelerationMagnitudeValue_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 <= 161L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_AccelerationMagnitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 161 } /* (0..161) */, + { 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_cam_ts_AccelerationMagnitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationMagnitudeValue = { + "AccelerationMagnitudeValue", + "AccelerationMagnitudeValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AccelerationMagnitudeValue_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationMagnitudeValue_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationMagnitudeValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationMagnitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationMagnitudeValue_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationMagnitudeValue_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) + &asn_PER_type_cam_ts_AccelerationMagnitudeValue_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) */ + cam_ts_AccelerationMagnitudeValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationPolarWithZ.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationPolarWithZ.c new file mode 100644 index 000000000..ba45be02f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationPolarWithZ.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationPolarWithZ.h" + +asn_TYPE_member_t asn_MBR_cam_ts_AccelerationPolarWithZ_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationPolarWithZ, accelerationMagnitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationMagnitude, + 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 */ + "accelerationMagnitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_AccelerationPolarWithZ, accelerationDirection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngle, + 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 */ + "accelerationDirection" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_AccelerationPolarWithZ, zAcceleration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationComponent, + 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 */ + "zAcceleration" + }, +}; +static const int asn_MAP_cam_ts_AccelerationPolarWithZ_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_AccelerationPolarWithZ_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_AccelerationPolarWithZ_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accelerationMagnitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* accelerationDirection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zAcceleration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_AccelerationPolarWithZ_specs_1 = { + sizeof(struct cam_ts_AccelerationPolarWithZ), + offsetof(struct cam_ts_AccelerationPolarWithZ, _asn_ctx), + asn_MAP_cam_ts_AccelerationPolarWithZ_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_AccelerationPolarWithZ_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationPolarWithZ = { + "AccelerationPolarWithZ", + "AccelerationPolarWithZ", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_AccelerationPolarWithZ_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationPolarWithZ_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationPolarWithZ_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationPolarWithZ_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationPolarWithZ_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationPolarWithZ_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_cam_ts_AccelerationPolarWithZ_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_AccelerationPolarWithZ_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationValue.c new file mode 100644 index 000000000..d4e24df21 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccelerationValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccelerationValue.h" + +int +cam_ts_AccelerationValue_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 >= -160L && value <= 161L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_AccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { 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_cam_ts_AccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccelerationValue = { + "AccelerationValue", + "AccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AccelerationValue_tags_1, + sizeof(asn_DEF_cam_ts_AccelerationValue_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccelerationValue_tags_1) + /sizeof(asn_DEF_cam_ts_AccelerationValue_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) + &asn_PER_type_cam_ts_AccelerationValue_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) */ + cam_ts_AccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccessTechnologyClass.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccessTechnologyClass.c new file mode 100644 index 000000000..7823ddb99 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccessTechnologyClass.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccessTechnologyClass.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_AccessTechnologyClass_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_cam_ts_AccessTechnologyClass_value2enum_1[] = { + { 0, 3, "any" }, + { 1, 10, "itsg5Class" }, + { 2, 11, "ltev2xClass" }, + { 3, 10, "nrv2xClass" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_cam_ts_AccessTechnologyClass_enum2value_1[] = { + 0, /* any(0) */ + 1, /* itsg5Class(1) */ + 2, /* ltev2xClass(2) */ + 3 /* nrv2xClass(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_AccessTechnologyClass_specs_1 = { + asn_MAP_cam_ts_AccessTechnologyClass_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_AccessTechnologyClass_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_cam_ts_AccessTechnologyClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccessTechnologyClass = { + "AccessTechnologyClass", + "AccessTechnologyClass", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_AccessTechnologyClass_tags_1, + sizeof(asn_DEF_cam_ts_AccessTechnologyClass_tags_1) + /sizeof(asn_DEF_cam_ts_AccessTechnologyClass_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccessTechnologyClass_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccessTechnologyClass_tags_1) + /sizeof(asn_DEF_cam_ts_AccessTechnologyClass_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) + &asn_PER_type_cam_ts_AccessTechnologyClass_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_cam_ts_AccessTechnologyClass_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccidentSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccidentSubCauseCode.c new file mode 100644 index 000000000..734c5d0be --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AccidentSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AccidentSubCauseCode.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AccidentSubCauseCode_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) + &asn_PER_type_cam_ts_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) */ + cam_ts_AccidentSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ActionId.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ActionId.c new file mode 100644 index 000000000..0dc254d1d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ActionId.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ActionId.h" + +asn_TYPE_member_t asn_MBR_cam_ts_ActionId_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ActionId, originatingStationId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 cam_ts_ActionId, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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_cam_ts_ActionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_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_cam_ts_ActionId_specs_1 = { + sizeof(struct cam_ts_ActionId), + offsetof(struct cam_ts_ActionId, _asn_ctx), + asn_MAP_cam_ts_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_cam_ts_ActionId = { + "ActionId", + "ActionId", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ActionId_tags_1, + sizeof(asn_DEF_cam_ts_ActionId_tags_1) + /sizeof(asn_DEF_cam_ts_ActionId_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ActionId_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ActionId_tags_1) + /sizeof(asn_DEF_cam_ts_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_cam_ts_ActionId_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_ActionId_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ActionIdList.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ActionIdList.c new file mode 100644 index 000000000..790ba08f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ActionIdList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ActionIdList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_ActionIdList_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) */ +static asn_TYPE_member_t asn_MBR_cam_ts_ActionIdList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_ActionId, + 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_cam_ts_ActionIdList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_ActionIdList_specs_1 = { + sizeof(struct cam_ts_ActionIdList), + offsetof(struct cam_ts_ActionIdList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ActionIdList = { + "ActionIdList", + "ActionIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_ActionIdList_tags_1, + sizeof(asn_DEF_cam_ts_ActionIdList_tags_1) + /sizeof(asn_DEF_cam_ts_ActionIdList_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ActionIdList_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ActionIdList_tags_1) + /sizeof(asn_DEF_cam_ts_ActionIdList_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) + &asn_PER_type_cam_ts_ActionIdList_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_cam_ts_ActionIdList_1, + 1, /* Single element */ + &asn_SPC_cam_ts_ActionIdList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 000000000..73f58ff86 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_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) + &asn_PER_type_cam_ts_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) */ + cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 000000000..9a1afbc46 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_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) + &asn_PER_type_cam_ts_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) */ + cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 000000000..f3493e410 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_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) + &asn_PER_type_cam_ts_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) */ + cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 000000000..43f1b002d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_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) + &asn_PER_type_cam_ts_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) */ + cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AirHumidity.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AirHumidity.c new file mode 100644 index 000000000..531a23d89 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AirHumidity.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AirHumidity.h" + +int +cam_ts_AirHumidity_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 <= 1001L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_AirHumidity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1001 } /* (1..1001) */, + { 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_cam_ts_AirHumidity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AirHumidity = { + "AirHumidity", + "AirHumidity", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AirHumidity_tags_1, + sizeof(asn_DEF_cam_ts_AirHumidity_tags_1) + /sizeof(asn_DEF_cam_ts_AirHumidity_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AirHumidity_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AirHumidity_tags_1) + /sizeof(asn_DEF_cam_ts_AirHumidity_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) + &asn_PER_type_cam_ts_AirHumidity_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) */ + cam_ts_AirHumidity_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Altitude.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Altitude.c new file mode 100644 index 000000000..ccf31d0fe --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Altitude.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Altitude.h" + +asn_TYPE_member_t asn_MBR_cam_ts_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 cam_ts_Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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_cam_ts_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_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_cam_ts_Altitude_specs_1 = { + sizeof(struct cam_ts_Altitude), + offsetof(struct cam_ts_Altitude, _asn_ctx), + asn_MAP_cam_ts_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_cam_ts_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_Altitude_tags_1, + sizeof(asn_DEF_cam_ts_Altitude_tags_1) + /sizeof(asn_DEF_cam_ts_Altitude_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Altitude_tags_1) + /sizeof(asn_DEF_cam_ts_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_cam_ts_Altitude_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AltitudeConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AltitudeConfidence.c new file mode 100644 index 000000000..b273a60f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AltitudeConfidence.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AltitudeConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_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_cam_ts_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_cam_ts_AltitudeConfidence_specs_1 = { + asn_MAP_cam_ts_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_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_cam_ts_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_AltitudeConfidence_tags_1, + sizeof(asn_DEF_cam_ts_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AltitudeConfidence_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) + &asn_PER_type_cam_ts_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_cam_ts_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AltitudeValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AltitudeValue.c new file mode 100644 index 000000000..3743c876f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AltitudeValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AltitudeValue.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AltitudeValue_tags_1, + sizeof(asn_DEF_cam_ts_AltitudeValue_tags_1) + /sizeof(asn_DEF_cam_ts_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AltitudeValue_tags_1) + /sizeof(asn_DEF_cam_ts_AltitudeValue_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) + &asn_PER_type_cam_ts_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) */ + cam_ts_AltitudeValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngleConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngleConfidence.c new file mode 100644 index 000000000..a1466c515 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngleConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AngleConfidence.h" + +int +cam_ts_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_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_cam_ts_AngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AngleConfidence = { + "AngleConfidence", + "AngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AngleConfidence_tags_1, + sizeof(asn_DEF_cam_ts_AngleConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AngleConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AngleConfidence_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) + &asn_PER_type_cam_ts_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) */ + cam_ts_AngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngularAccelerationConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngularAccelerationConfidence.c new file mode 100644 index 000000000..f52887311 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngularAccelerationConfidence.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AngularAccelerationConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_AngularAccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { 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_cam_ts_AngularAccelerationConfidence_value2enum_1[] = { + { 0, 16, "degSecSquared-01" }, + { 1, 16, "degSecSquared-02" }, + { 2, 16, "degSecSquared-05" }, + { 3, 16, "degSecSquared-10" }, + { 4, 16, "degSecSquared-20" }, + { 5, 16, "degSecSquared-50" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_cam_ts_AngularAccelerationConfidence_enum2value_1[] = { + 0, /* degSecSquared-01(0) */ + 1, /* degSecSquared-02(1) */ + 2, /* degSecSquared-05(2) */ + 3, /* degSecSquared-10(3) */ + 4, /* degSecSquared-20(4) */ + 5, /* degSecSquared-50(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_AngularAccelerationConfidence_specs_1 = { + asn_MAP_cam_ts_AngularAccelerationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_AngularAccelerationConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* 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_cam_ts_AngularAccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AngularAccelerationConfidence = { + "AngularAccelerationConfidence", + "AngularAccelerationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_AngularAccelerationConfidence_tags_1, + sizeof(asn_DEF_cam_ts_AngularAccelerationConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AngularAccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AngularAccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AngularAccelerationConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AngularAccelerationConfidence_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) + &asn_PER_type_cam_ts_AngularAccelerationConfidence_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_cam_ts_AngularAccelerationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngularSpeedConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngularSpeedConfidence.c new file mode 100644 index 000000000..2626cfebb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AngularSpeedConfidence.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AngularSpeedConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_AngularSpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { 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_cam_ts_AngularSpeedConfidence_value2enum_1[] = { + { 0, 9, "degSec-01" }, + { 1, 9, "degSec-02" }, + { 2, 9, "degSec-05" }, + { 3, 9, "degSec-10" }, + { 4, 9, "degSec-20" }, + { 5, 9, "degSec-50" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_cam_ts_AngularSpeedConfidence_enum2value_1[] = { + 0, /* degSec-01(0) */ + 1, /* degSec-02(1) */ + 2, /* degSec-05(2) */ + 3, /* degSec-10(3) */ + 4, /* degSec-20(4) */ + 5, /* degSec-50(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_AngularSpeedConfidence_specs_1 = { + asn_MAP_cam_ts_AngularSpeedConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_AngularSpeedConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* 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_cam_ts_AngularSpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AngularSpeedConfidence = { + "AngularSpeedConfidence", + "AngularSpeedConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_AngularSpeedConfidence_tags_1, + sizeof(asn_DEF_cam_ts_AngularSpeedConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AngularSpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AngularSpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AngularSpeedConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_AngularSpeedConfidence_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) + &asn_PER_type_cam_ts_AngularSpeedConfidence_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_cam_ts_AngularSpeedConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AxlesCount.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AxlesCount.c new file mode 100644 index 000000000..a4461a1ab --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_AxlesCount.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_AxlesCount.h" + +int +cam_ts_AxlesCount_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 >= 2L && value <= 1002L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_AxlesCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 2, 1002 } /* (2..1002) */, + { 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_cam_ts_AxlesCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_AxlesCount = { + "AxlesCount", + "AxlesCount", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_AxlesCount_tags_1, + sizeof(asn_DEF_cam_ts_AxlesCount_tags_1) + /sizeof(asn_DEF_cam_ts_AxlesCount_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_AxlesCount_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_AxlesCount_tags_1) + /sizeof(asn_DEF_cam_ts_AxlesCount_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) + &asn_PER_type_cam_ts_AxlesCount_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) */ + cam_ts_AxlesCount_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BarometricPressure.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BarometricPressure.c new file mode 100644 index 000000000..cf9356dde --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BarometricPressure.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_BarometricPressure.h" + +int +cam_ts_BarometricPressure_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 >= 2999L && value <= 12002L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_BarometricPressure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 2999, 12002 } /* (2999..12002) */, + { 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_cam_ts_BarometricPressure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_BarometricPressure = { + "BarometricPressure", + "BarometricPressure", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_BarometricPressure_tags_1, + sizeof(asn_DEF_cam_ts_BarometricPressure_tags_1) + /sizeof(asn_DEF_cam_ts_BarometricPressure_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_BarometricPressure_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_BarometricPressure_tags_1) + /sizeof(asn_DEF_cam_ts_BarometricPressure_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) + &asn_PER_type_cam_ts_BarometricPressure_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) */ + cam_ts_BarometricPressure_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicContainer.c new file mode 100644 index 000000000..4f7adafff --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicContainer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_BasicContainer.h" + +asn_TYPE_member_t asn_MBR_cam_ts_BasicContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicContainer, stationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TrafficParticipantType, + 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 */ + "stationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicContainer, referencePosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ReferencePositionWithConfidence, + 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 */ + "referencePosition" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_BasicContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_BasicContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referencePosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_BasicContainer_specs_1 = { + sizeof(struct cam_ts_BasicContainer), + offsetof(struct cam_ts_BasicContainer, _asn_ctx), + asn_MAP_cam_ts_BasicContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicContainer = { + "BasicContainer", + "BasicContainer", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_BasicContainer_tags_1, + sizeof(asn_DEF_cam_ts_BasicContainer_tags_1) + /sizeof(asn_DEF_cam_ts_BasicContainer_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_BasicContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_BasicContainer_tags_1) + /sizeof(asn_DEF_cam_ts_BasicContainer_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_cam_ts_BasicContainer_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_BasicContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicLaneConfiguration.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicLaneConfiguration.c new file mode 100644 index 000000000..4a164c569 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicLaneConfiguration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_BasicLaneConfiguration.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_BasicLaneConfiguration_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_cam_ts_BasicLaneConfiguration_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_BasicLaneInformation, + 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_cam_ts_BasicLaneConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_BasicLaneConfiguration_specs_1 = { + sizeof(struct cam_ts_BasicLaneConfiguration), + offsetof(struct cam_ts_BasicLaneConfiguration, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicLaneConfiguration = { + "BasicLaneConfiguration", + "BasicLaneConfiguration", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_BasicLaneConfiguration_tags_1, + sizeof(asn_DEF_cam_ts_BasicLaneConfiguration_tags_1) + /sizeof(asn_DEF_cam_ts_BasicLaneConfiguration_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_BasicLaneConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_BasicLaneConfiguration_tags_1) + /sizeof(asn_DEF_cam_ts_BasicLaneConfiguration_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) + &asn_PER_type_cam_ts_BasicLaneConfiguration_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_cam_ts_BasicLaneConfiguration_1, + 1, /* Single element */ + &asn_SPC_cam_ts_BasicLaneConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicLaneInformation.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicLaneInformation.c new file mode 100644 index 000000000..6fdb51c84 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicLaneInformation.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_BasicLaneInformation.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_BasicLaneInformation_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_cam_ts_BasicLaneInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicLaneInformation, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "laneNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicLaneInformation, direction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Direction, + 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 */ + "direction" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_BasicLaneInformation, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LaneWidth, + 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 */ + "laneWidth" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_BasicLaneInformation, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "connectingLane" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_BasicLaneInformation, connectingRoadSection), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RoadSectionId, + 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 */ + "connectingRoadSection" + }, +}; +static const int asn_MAP_cam_ts_BasicLaneInformation_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_BasicLaneInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_BasicLaneInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectingRoadSection */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_BasicLaneInformation_specs_1 = { + sizeof(struct cam_ts_BasicLaneInformation), + offsetof(struct cam_ts_BasicLaneInformation, _asn_ctx), + asn_MAP_cam_ts_BasicLaneInformation_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_cam_ts_BasicLaneInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicLaneInformation = { + "BasicLaneInformation", + "BasicLaneInformation", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_BasicLaneInformation_tags_1, + sizeof(asn_DEF_cam_ts_BasicLaneInformation_tags_1) + /sizeof(asn_DEF_cam_ts_BasicLaneInformation_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_BasicLaneInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_BasicLaneInformation_tags_1) + /sizeof(asn_DEF_cam_ts_BasicLaneInformation_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) + &asn_PER_type_cam_ts_BasicLaneInformation_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_constraint + }, + asn_MBR_cam_ts_BasicLaneInformation_1, + 5, /* Elements count */ + &asn_SPC_cam_ts_BasicLaneInformation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicVehicleContainerHighFrequency.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicVehicleContainerHighFrequency.c new file mode 100644 index 000000000..128363744 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicVehicleContainerHighFrequency.c @@ -0,0 +1,389 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerHighFrequency.h" + +asn_TYPE_member_t asn_MBR_cam_ts_BasicVehicleContainerHighFrequency_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Heading, + 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 */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Speed, + 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_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, driveDirection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DriveDirection, + 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 */ + "driveDirection" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, vehicleLength), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VehicleLength, + 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 */ + "vehicleLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, vehicleWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VehicleWidth, + 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 */ + "vehicleWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, longitudinalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationComponent, + 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 */ + "longitudinalAcceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, curvature), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Curvature, + 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 */ + "curvature" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, curvatureCalculationMode), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CurvatureCalculationMode, + 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 */ + "curvatureCalculationMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, yawRate), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_YawRate, + 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 */ + "yawRate" + }, + { ATF_POINTER, 7, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, accelerationControl), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationControl, + 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 */ + "accelerationControl" + }, + { ATF_POINTER, 6, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, lanePosition), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 cam_ts_BasicVehicleContainerHighFrequency, steeringWheelAngle), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SteeringWheelAngle, + 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 */ + "steeringWheelAngle" + }, + { ATF_POINTER, 4, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, lateralAcceleration), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationComponent, + 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 */ + "lateralAcceleration" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, verticalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationComponent, + 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 */ + "verticalAcceleration" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, performanceClass), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PerformanceClass, + 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 */ + "performanceClass" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, cenDsrcTollingZone), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CenDsrcTollingZone, + 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 */ + "cenDsrcTollingZone" + }, +}; +static const int asn_MAP_cam_ts_BasicVehicleContainerHighFrequency_oms_1[] = { 9, 10, 11, 12, 13, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_BasicVehicleContainerHighFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_BasicVehicleContainerHighFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* driveDirection */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* vehicleLength */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* longitudinalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* curvature */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* curvatureCalculationMode */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* yawRate */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* accelerationControl */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* lanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* steeringWheelAngle */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* lateralAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* verticalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* performanceClass */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* cenDsrcTollingZone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_BasicVehicleContainerHighFrequency_specs_1 = { + sizeof(struct cam_ts_BasicVehicleContainerHighFrequency), + offsetof(struct cam_ts_BasicVehicleContainerHighFrequency, _asn_ctx), + asn_MAP_cam_ts_BasicVehicleContainerHighFrequency_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_cam_ts_BasicVehicleContainerHighFrequency_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_BasicVehicleContainerHighFrequency = { + "BasicVehicleContainerHighFrequency", + "BasicVehicleContainerHighFrequency", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_BasicVehicleContainerHighFrequency_tags_1, + sizeof(asn_DEF_cam_ts_BasicVehicleContainerHighFrequency_tags_1) + /sizeof(asn_DEF_cam_ts_BasicVehicleContainerHighFrequency_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_BasicVehicleContainerHighFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_BasicVehicleContainerHighFrequency_tags_1) + /sizeof(asn_DEF_cam_ts_BasicVehicleContainerHighFrequency_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_cam_ts_BasicVehicleContainerHighFrequency_1, + 16, /* Elements count */ + &asn_SPC_cam_ts_BasicVehicleContainerHighFrequency_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicVehicleContainerLowFrequency.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicVehicleContainerLowFrequency.c new file mode 100644 index 000000000..d1e01e2e4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BasicVehicleContainerLowFrequency.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_BasicVehicleContainerLowFrequency.h" + +asn_TYPE_member_t asn_MBR_cam_ts_BasicVehicleContainerLowFrequency_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerLowFrequency, vehicleRole), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VehicleRole, + 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 */ + "vehicleRole" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerLowFrequency, exteriorLights), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ExteriorLights, + 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 */ + "exteriorLights" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_BasicVehicleContainerLowFrequency, pathHistory), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Path, + 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 */ + "pathHistory" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_BasicVehicleContainerLowFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_BasicVehicleContainerLowFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleRole */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* exteriorLights */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pathHistory */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_BasicVehicleContainerLowFrequency_specs_1 = { + sizeof(struct cam_ts_BasicVehicleContainerLowFrequency), + offsetof(struct cam_ts_BasicVehicleContainerLowFrequency, _asn_ctx), + asn_MAP_cam_ts_BasicVehicleContainerLowFrequency_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_cam_ts_BasicVehicleContainerLowFrequency = { + "BasicVehicleContainerLowFrequency", + "BasicVehicleContainerLowFrequency", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_BasicVehicleContainerLowFrequency_tags_1, + sizeof(asn_DEF_cam_ts_BasicVehicleContainerLowFrequency_tags_1) + /sizeof(asn_DEF_cam_ts_BasicVehicleContainerLowFrequency_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_BasicVehicleContainerLowFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_BasicVehicleContainerLowFrequency_tags_1) + /sizeof(asn_DEF_cam_ts_BasicVehicleContainerLowFrequency_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_cam_ts_BasicVehicleContainerLowFrequency_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_BasicVehicleContainerLowFrequency_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BogiesCount.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BogiesCount.c new file mode 100644 index 000000000..1db76243e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_BogiesCount.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_BogiesCount.h" + +int +cam_ts_BogiesCount_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 >= 2L && value <= 101L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_BogiesCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 2, 101 } /* (2..101) */, + { 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_cam_ts_BogiesCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_BogiesCount = { + "BogiesCount", + "BogiesCount", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_BogiesCount_tags_1, + sizeof(asn_DEF_cam_ts_BogiesCount_tags_1) + /sizeof(asn_DEF_cam_ts_BogiesCount_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_BogiesCount_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_BogiesCount_tags_1) + /sizeof(asn_DEF_cam_ts_BogiesCount_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) + &asn_PER_type_cam_ts_BogiesCount_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) */ + cam_ts_BogiesCount_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CAM.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CAM.c new file mode 100644 index 000000000..bb5bafe2d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CAM.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CAM.h" + +static int +memb_cam_ts_header_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_header_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_cam_ts_CAM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CAM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ItsPduHeader, + 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) + &asn_PER_memb_cam_ts_header_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_cam_ts_header_constraint_1 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CAM, cam), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CamPayload, + 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 */ + "cam" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CAM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CAM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cam */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CAM_specs_1 = { + sizeof(struct cam_ts_CAM), + offsetof(struct cam_ts_CAM, _asn_ctx), + asn_MAP_cam_ts_CAM_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_cam_ts_CAM = { + "CAM", + "CAM", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CAM_tags_1, + sizeof(asn_DEF_cam_ts_CAM_tags_1) + /sizeof(asn_DEF_cam_ts_CAM_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CAM_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CAM_tags_1) + /sizeof(asn_DEF_cam_ts_CAM_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_cam_ts_CAM_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_CAM_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CamParameters.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CamParameters.c new file mode 100644 index 000000000..8d4dbdb83 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CamParameters.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CamParameters.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CamParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CamParameters, basicContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_BasicContainer, + 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 */ + "basicContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CamParameters, highFrequencyContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_HighFrequencyContainer, + 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 */ + "highFrequencyContainer" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_CamParameters, lowFrequencyContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_LowFrequencyContainer, + 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 */ + "lowFrequencyContainer" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_CamParameters, specialVehicleContainer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_SpecialVehicleContainer, + 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 */ + "specialVehicleContainer" + }, +}; +static const int asn_MAP_cam_ts_CamParameters_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_CamParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CamParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* highFrequencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lowFrequencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* specialVehicleContainer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CamParameters_specs_1 = { + sizeof(struct cam_ts_CamParameters), + offsetof(struct cam_ts_CamParameters, _asn_ctx), + asn_MAP_cam_ts_CamParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_cam_ts_CamParameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CamParameters = { + "CamParameters", + "CamParameters", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CamParameters_tags_1, + sizeof(asn_DEF_cam_ts_CamParameters_tags_1) + /sizeof(asn_DEF_cam_ts_CamParameters_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CamParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CamParameters_tags_1) + /sizeof(asn_DEF_cam_ts_CamParameters_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_cam_ts_CamParameters_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_CamParameters_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CamPayload.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CamPayload.c new file mode 100644 index 000000000..29a8be380 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CamPayload.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CamPayload.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CamPayload_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CamPayload, generationDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_GenerationDeltaTime, + 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 */ + "generationDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CamPayload, camParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CamParameters, + 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 */ + "camParameters" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CamPayload_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CamPayload_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* generationDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* camParameters */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CamPayload_specs_1 = { + sizeof(struct cam_ts_CamPayload), + offsetof(struct cam_ts_CamPayload, _asn_ctx), + asn_MAP_cam_ts_CamPayload_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_cam_ts_CamPayload = { + "CamPayload", + "CamPayload", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CamPayload_tags_1, + sizeof(asn_DEF_cam_ts_CamPayload_tags_1) + /sizeof(asn_DEF_cam_ts_CamPayload_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CamPayload_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CamPayload_tags_1) + /sizeof(asn_DEF_cam_ts_CamPayload_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_cam_ts_CamPayload_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_CamPayload_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CardinalNumber1B.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CardinalNumber1B.c new file mode 100644 index 000000000..5b87b962e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CardinalNumber1B.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CardinalNumber1B.h" + +int +cam_ts_CardinalNumber1B_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CardinalNumber1B_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_cam_ts_CardinalNumber1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CardinalNumber1B = { + "CardinalNumber1B", + "CardinalNumber1B", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CardinalNumber1B_tags_1, + sizeof(asn_DEF_cam_ts_CardinalNumber1B_tags_1) + /sizeof(asn_DEF_cam_ts_CardinalNumber1B_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CardinalNumber1B_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CardinalNumber1B_tags_1) + /sizeof(asn_DEF_cam_ts_CardinalNumber1B_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) + &asn_PER_type_cam_ts_CardinalNumber1B_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) */ + cam_ts_CardinalNumber1B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CardinalNumber3b.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CardinalNumber3b.c new file mode 100644 index 000000000..e1e504c0a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CardinalNumber3b.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CardinalNumber3b.h" + +int +cam_ts_CardinalNumber3b_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 <= 8L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CardinalNumber3b_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { 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_cam_ts_CardinalNumber3b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CardinalNumber3b = { + "CardinalNumber3b", + "CardinalNumber3b", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CardinalNumber3b_tags_1, + sizeof(asn_DEF_cam_ts_CardinalNumber3b_tags_1) + /sizeof(asn_DEF_cam_ts_CardinalNumber3b_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CardinalNumber3b_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CardinalNumber3b_tags_1) + /sizeof(asn_DEF_cam_ts_CardinalNumber3b_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) + &asn_PER_type_cam_ts_CardinalNumber3b_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) */ + cam_ts_CardinalNumber3b_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngle.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngle.c new file mode 100644 index 000000000..fbe3400b7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngle.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngle.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CartesianAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianAngle, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianAngle, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AngleConfidence, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CartesianAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CartesianAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianAngle_specs_1 = { + sizeof(struct cam_ts_CartesianAngle), + offsetof(struct cam_ts_CartesianAngle, _asn_ctx), + asn_MAP_cam_ts_CartesianAngle_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_cam_ts_CartesianAngle = { + "CartesianAngle", + "CartesianAngle", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CartesianAngle_tags_1, + sizeof(asn_DEF_cam_ts_CartesianAngle_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngle_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianAngle_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngle_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_cam_ts_CartesianAngle_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_CartesianAngle_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngleValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngleValue.c new file mode 100644 index 000000000..176497158 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngleValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngleValue.h" + +int +cam_ts_CartesianAngleValue_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 <= 3601L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CartesianAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { 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_cam_ts_CartesianAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngleValue = { + "CartesianAngleValue", + "CartesianAngleValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CartesianAngleValue_tags_1, + sizeof(asn_DEF_cam_ts_CartesianAngleValue_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngleValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianAngleValue_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngleValue_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) + &asn_PER_type_cam_ts_CartesianAngleValue_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) */ + cam_ts_CartesianAngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularAccelerationComponent.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularAccelerationComponent.c new file mode 100644 index 000000000..270fce6e0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularAccelerationComponent.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponent.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_CartesianAngularAccelerationComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianAngularAccelerationComponent, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue, + 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" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianAngularAccelerationComponent, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AngularAccelerationConfidence, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CartesianAngularAccelerationComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CartesianAngularAccelerationComponent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianAngularAccelerationComponent_specs_1 = { + sizeof(struct cam_ts_CartesianAngularAccelerationComponent), + offsetof(struct cam_ts_CartesianAngularAccelerationComponent, _asn_ctx), + asn_MAP_cam_ts_CartesianAngularAccelerationComponent_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_cam_ts_CartesianAngularAccelerationComponent = { + "CartesianAngularAccelerationComponent", + "CartesianAngularAccelerationComponent", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CartesianAngularAccelerationComponent_tags_1, + sizeof(asn_DEF_cam_ts_CartesianAngularAccelerationComponent_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngularAccelerationComponent_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianAngularAccelerationComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianAngularAccelerationComponent_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngularAccelerationComponent_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_cam_ts_CartesianAngularAccelerationComponent_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_CartesianAngularAccelerationComponent_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularAccelerationComponentValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularAccelerationComponentValue.c new file mode 100644 index 000000000..4993003d7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularAccelerationComponentValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngularAccelerationComponentValue.h" + +int +cam_ts_CartesianAngularAccelerationComponentValue_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 >= -255L && value <= 256L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CartesianAngularAccelerationComponentValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -255, 256 } /* (-255..256) */, + { 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_cam_ts_CartesianAngularAccelerationComponentValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue = { + "CartesianAngularAccelerationComponentValue", + "CartesianAngularAccelerationComponentValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue_tags_1, + sizeof(asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngularAccelerationComponentValue_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) + &asn_PER_type_cam_ts_CartesianAngularAccelerationComponentValue_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) */ + cam_ts_CartesianAngularAccelerationComponentValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularVelocityComponent.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularVelocityComponent.c new file mode 100644 index 000000000..e2dd68192 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularVelocityComponent.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponent.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CartesianAngularVelocityComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianAngularVelocityComponent, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngularVelocityComponentValue, + 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" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianAngularVelocityComponent, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AngularSpeedConfidence, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CartesianAngularVelocityComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CartesianAngularVelocityComponent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianAngularVelocityComponent_specs_1 = { + sizeof(struct cam_ts_CartesianAngularVelocityComponent), + offsetof(struct cam_ts_CartesianAngularVelocityComponent, _asn_ctx), + asn_MAP_cam_ts_CartesianAngularVelocityComponent_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_cam_ts_CartesianAngularVelocityComponent = { + "CartesianAngularVelocityComponent", + "CartesianAngularVelocityComponent", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CartesianAngularVelocityComponent_tags_1, + sizeof(asn_DEF_cam_ts_CartesianAngularVelocityComponent_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngularVelocityComponent_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianAngularVelocityComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianAngularVelocityComponent_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngularVelocityComponent_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_cam_ts_CartesianAngularVelocityComponent_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_CartesianAngularVelocityComponent_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularVelocityComponentValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularVelocityComponentValue.c new file mode 100644 index 000000000..2efc30e15 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianAngularVelocityComponentValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianAngularVelocityComponentValue.h" + +int +cam_ts_CartesianAngularVelocityComponentValue_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 >= -255L && value <= 256L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CartesianAngularVelocityComponentValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -255, 256 } /* (-255..256) */, + { 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_cam_ts_CartesianAngularVelocityComponentValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianAngularVelocityComponentValue = { + "CartesianAngularVelocityComponentValue", + "CartesianAngularVelocityComponentValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CartesianAngularVelocityComponentValue_tags_1, + sizeof(asn_DEF_cam_ts_CartesianAngularVelocityComponentValue_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngularVelocityComponentValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianAngularVelocityComponentValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianAngularVelocityComponentValue_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianAngularVelocityComponentValue_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) + &asn_PER_type_cam_ts_CartesianAngularVelocityComponentValue_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) */ + cam_ts_CartesianAngularVelocityComponentValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinate.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinate.c new file mode 100644 index 000000000..28d41cea0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinate.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinate.h" + +int +cam_ts_CartesianCoordinate_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 >= -32768L && value <= 32767L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CartesianCoordinate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */, + { 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_cam_ts_CartesianCoordinate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianCoordinate = { + "CartesianCoordinate", + "CartesianCoordinate", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CartesianCoordinate_tags_1, + sizeof(asn_DEF_cam_ts_CartesianCoordinate_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianCoordinate_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianCoordinate_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianCoordinate_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianCoordinate_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) + &asn_PER_type_cam_ts_CartesianCoordinate_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) */ + cam_ts_CartesianCoordinate_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateLarge.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateLarge.c new file mode 100644 index 000000000..34b93b9c6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateLarge.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateLarge.h" + +int +cam_ts_CartesianCoordinateLarge_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 >= -131072L && value <= 131071L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CartesianCoordinateLarge_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131072, 131071 } /* (-131072..131071) */, + { 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_cam_ts_CartesianCoordinateLarge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianCoordinateLarge = { + "CartesianCoordinateLarge", + "CartesianCoordinateLarge", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CartesianCoordinateLarge_tags_1, + sizeof(asn_DEF_cam_ts_CartesianCoordinateLarge_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianCoordinateLarge_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianCoordinateLarge_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianCoordinateLarge_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianCoordinateLarge_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) + &asn_PER_type_cam_ts_CartesianCoordinateLarge_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) */ + cam_ts_CartesianCoordinateLarge_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateSmall.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateSmall.c new file mode 100644 index 000000000..248b1bfea --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateSmall.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateSmall.h" + +int +cam_ts_CartesianCoordinateSmall_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 >= -3094L && value <= 1001L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CartesianCoordinateSmall_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -3094, 1001 } /* (-3094..1001) */, + { 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_cam_ts_CartesianCoordinateSmall_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianCoordinateSmall = { + "CartesianCoordinateSmall", + "CartesianCoordinateSmall", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CartesianCoordinateSmall_tags_1, + sizeof(asn_DEF_cam_ts_CartesianCoordinateSmall_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianCoordinateSmall_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianCoordinateSmall_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianCoordinateSmall_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianCoordinateSmall_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) + &asn_PER_type_cam_ts_CartesianCoordinateSmall_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) */ + cam_ts_CartesianCoordinateSmall_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateWithConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateWithConfidence.c new file mode 100644 index 000000000..fe5587998 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianCoordinateWithConfidence.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianCoordinateWithConfidence.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CartesianCoordinateWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianCoordinateWithConfidence, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinateLarge, + 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" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianCoordinateWithConfidence, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CoordinateConfidence, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CartesianCoordinateWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CartesianCoordinateWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianCoordinateWithConfidence_specs_1 = { + sizeof(struct cam_ts_CartesianCoordinateWithConfidence), + offsetof(struct cam_ts_CartesianCoordinateWithConfidence, _asn_ctx), + asn_MAP_cam_ts_CartesianCoordinateWithConfidence_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_cam_ts_CartesianCoordinateWithConfidence = { + "CartesianCoordinateWithConfidence", + "CartesianCoordinateWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CartesianCoordinateWithConfidence_tags_1, + sizeof(asn_DEF_cam_ts_CartesianCoordinateWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianCoordinateWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianCoordinateWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianCoordinateWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianCoordinateWithConfidence_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_cam_ts_CartesianCoordinateWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_CartesianCoordinateWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianPosition3d.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianPosition3d.c new file mode 100644 index 000000000..41ad72563 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianPosition3d.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3d.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CartesianPosition3d_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianPosition3d, xCoordinate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinate, + 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 */ + "xCoordinate" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianPosition3d, yCoordinate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinate, + 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 */ + "yCoordinate" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_CartesianPosition3d, zCoordinate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinate, + 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 */ + "zCoordinate" + }, +}; +static const int asn_MAP_cam_ts_CartesianPosition3d_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_CartesianPosition3d_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CartesianPosition3d_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zCoordinate */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianPosition3d_specs_1 = { + sizeof(struct cam_ts_CartesianPosition3d), + offsetof(struct cam_ts_CartesianPosition3d, _asn_ctx), + asn_MAP_cam_ts_CartesianPosition3d_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_CartesianPosition3d_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianPosition3d = { + "CartesianPosition3d", + "CartesianPosition3d", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CartesianPosition3d_tags_1, + sizeof(asn_DEF_cam_ts_CartesianPosition3d_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianPosition3d_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianPosition3d_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianPosition3d_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianPosition3d_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_cam_ts_CartesianPosition3d_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_CartesianPosition3d_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianPosition3dWithConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianPosition3dWithConfidence.c new file mode 100644 index 000000000..fcc76fd34 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CartesianPosition3dWithConfidence.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CartesianPosition3dWithConfidence.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CartesianPosition3dWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianPosition3dWithConfidence, xCoordinate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinateWithConfidence, + 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 */ + "xCoordinate" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CartesianPosition3dWithConfidence, yCoordinate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinateWithConfidence, + 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 */ + "yCoordinate" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_CartesianPosition3dWithConfidence, zCoordinate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinateWithConfidence, + 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 */ + "zCoordinate" + }, +}; +static const int asn_MAP_cam_ts_CartesianPosition3dWithConfidence_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_CartesianPosition3dWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CartesianPosition3dWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zCoordinate */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CartesianPosition3dWithConfidence_specs_1 = { + sizeof(struct cam_ts_CartesianPosition3dWithConfidence), + offsetof(struct cam_ts_CartesianPosition3dWithConfidence, _asn_ctx), + asn_MAP_cam_ts_CartesianPosition3dWithConfidence_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_CartesianPosition3dWithConfidence_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CartesianPosition3dWithConfidence = { + "CartesianPosition3dWithConfidence", + "CartesianPosition3dWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CartesianPosition3dWithConfidence_tags_1, + sizeof(asn_DEF_cam_ts_CartesianPosition3dWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianPosition3dWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CartesianPosition3dWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CartesianPosition3dWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_CartesianPosition3dWithConfidence_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_cam_ts_CartesianPosition3dWithConfidence_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_CartesianPosition3dWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCode.c new file mode 100644 index 000000000..0ab74f13e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCode.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CauseCode.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CauseCodeType, + 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 */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CauseCode_specs_1 = { + sizeof(struct cam_ts_CauseCode), + offsetof(struct cam_ts_CauseCode, _asn_ctx), + asn_MAP_cam_ts_CauseCode_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CauseCode_tags_1, + sizeof(asn_DEF_cam_ts_CauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_CauseCode_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_cam_ts_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeChoice.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeChoice.c new file mode 100644 index 000000000..a2256edfa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeChoice.c @@ -0,0 +1,2764 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CauseCodeChoice.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CauseCodeChoice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 128 } /* (0..128) */, + { 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_cam_ts_CauseCodeChoice_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved0" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.trafficCondition1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TrafficConditionSubCauseCode, + 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 */ + "trafficCondition1" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.accident2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccidentSubCauseCode, + 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 */ + "accident2" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.roadworks3), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RoadworksSubCauseCode, + 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 */ + "roadworks3" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved4" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.impassability5), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ImpassabilitySubCauseCode, + 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 */ + "impassability5" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.adverseWeatherCondition_Adhesion6), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode, + 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 */ + "adverseWeatherCondition-Adhesion6" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.aquaplaning7), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "aquaplaning7" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved8), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved8" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.hazardousLocation_SurfaceCondition9), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode, + 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 */ + "hazardousLocation-SurfaceCondition9" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.hazardousLocation_ObstacleOnTheRoad10), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode, + 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 */ + "hazardousLocation-ObstacleOnTheRoad10" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.hazardousLocation_AnimalOnTheRoad11), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode, + 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 */ + "hazardousLocation-AnimalOnTheRoad11" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.humanPresenceOnTheRoad12), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode, + 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 */ + "humanPresenceOnTheRoad12" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved13), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved13" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.wrongWayDriving14), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_WrongWayDrivingSubCauseCode, + 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 */ + "wrongWayDriving14" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.rescueAndRecoveryWorkInProgress15), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode, + 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 */ + "rescueAndRecoveryWorkInProgress15" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved16), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved16" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.adverseWeatherCondition_ExtremeWeatherCondition17), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode, + 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 */ + "adverseWeatherCondition-ExtremeWeatherCondition17" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.adverseWeatherCondition_Visibility18), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode, + 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 */ + "adverseWeatherCondition-Visibility18" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.adverseWeatherCondition_Precipitation19), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode, + 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 */ + "adverseWeatherCondition-Precipitation19" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.violence20), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "violence20" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved21), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved21" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved22), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved22" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved23), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved23" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved24), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved24" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved25), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved25" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.slowVehicle26), + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SlowVehicleSubCauseCode, + 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 */ + "slowVehicle26" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.dangerousEndOfQueue27), + (ASN_TAG_CLASS_CONTEXT | (27 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode, + 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 */ + "dangerousEndOfQueue27" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.publicTransportVehicleApproaching28), + (ASN_TAG_CLASS_CONTEXT | (28 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "publicTransportVehicleApproaching28" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved29), + (ASN_TAG_CLASS_CONTEXT | (29 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved29" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved30), + (ASN_TAG_CLASS_CONTEXT | (30 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved30" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved31), + (ASN_TAG_CLASS_CONTEXT | (31 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved31" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved32), + (ASN_TAG_CLASS_CONTEXT | (32 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved32" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved33), + (ASN_TAG_CLASS_CONTEXT | (33 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved33" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved34), + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved34" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved35), + (ASN_TAG_CLASS_CONTEXT | (35 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved35" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved36), + (ASN_TAG_CLASS_CONTEXT | (36 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved36" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved37), + (ASN_TAG_CLASS_CONTEXT | (37 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved37" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved38), + (ASN_TAG_CLASS_CONTEXT | (38 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved38" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved39), + (ASN_TAG_CLASS_CONTEXT | (39 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved39" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved40), + (ASN_TAG_CLASS_CONTEXT | (40 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved40" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved41), + (ASN_TAG_CLASS_CONTEXT | (41 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved41" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved42), + (ASN_TAG_CLASS_CONTEXT | (42 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved42" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved43), + (ASN_TAG_CLASS_CONTEXT | (43 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved43" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved44), + (ASN_TAG_CLASS_CONTEXT | (44 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved44" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved45), + (ASN_TAG_CLASS_CONTEXT | (45 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved45" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved46), + (ASN_TAG_CLASS_CONTEXT | (46 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved46" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved47), + (ASN_TAG_CLASS_CONTEXT | (47 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved47" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved48), + (ASN_TAG_CLASS_CONTEXT | (48 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved48" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved49), + (ASN_TAG_CLASS_CONTEXT | (49 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved49" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved50), + (ASN_TAG_CLASS_CONTEXT | (50 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved50" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved51), + (ASN_TAG_CLASS_CONTEXT | (51 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved51" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved52), + (ASN_TAG_CLASS_CONTEXT | (52 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved52" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved53), + (ASN_TAG_CLASS_CONTEXT | (53 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved53" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved54), + (ASN_TAG_CLASS_CONTEXT | (54 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved54" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved55), + (ASN_TAG_CLASS_CONTEXT | (55 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved55" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved56), + (ASN_TAG_CLASS_CONTEXT | (56 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved56" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved57), + (ASN_TAG_CLASS_CONTEXT | (57 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved57" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved58), + (ASN_TAG_CLASS_CONTEXT | (58 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved58" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved59), + (ASN_TAG_CLASS_CONTEXT | (59 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved59" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved60), + (ASN_TAG_CLASS_CONTEXT | (60 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved60" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved61), + (ASN_TAG_CLASS_CONTEXT | (61 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved61" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved62), + (ASN_TAG_CLASS_CONTEXT | (62 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved62" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved63), + (ASN_TAG_CLASS_CONTEXT | (63 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved63" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved64), + (ASN_TAG_CLASS_CONTEXT | (64 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved64" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved65), + (ASN_TAG_CLASS_CONTEXT | (65 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved65" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved66), + (ASN_TAG_CLASS_CONTEXT | (66 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved66" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved67), + (ASN_TAG_CLASS_CONTEXT | (67 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved67" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved68), + (ASN_TAG_CLASS_CONTEXT | (68 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved68" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved69), + (ASN_TAG_CLASS_CONTEXT | (69 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved69" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved70), + (ASN_TAG_CLASS_CONTEXT | (70 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved70" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved71), + (ASN_TAG_CLASS_CONTEXT | (71 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved71" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved72), + (ASN_TAG_CLASS_CONTEXT | (72 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved72" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved73), + (ASN_TAG_CLASS_CONTEXT | (73 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved73" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved74), + (ASN_TAG_CLASS_CONTEXT | (74 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved74" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved75), + (ASN_TAG_CLASS_CONTEXT | (75 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved75" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved76), + (ASN_TAG_CLASS_CONTEXT | (76 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved76" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved77), + (ASN_TAG_CLASS_CONTEXT | (77 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved77" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved78), + (ASN_TAG_CLASS_CONTEXT | (78 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved78" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved79), + (ASN_TAG_CLASS_CONTEXT | (79 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved79" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved80), + (ASN_TAG_CLASS_CONTEXT | (80 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved80" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved81), + (ASN_TAG_CLASS_CONTEXT | (81 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved81" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved82), + (ASN_TAG_CLASS_CONTEXT | (82 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved82" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved83), + (ASN_TAG_CLASS_CONTEXT | (83 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved83" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved84), + (ASN_TAG_CLASS_CONTEXT | (84 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved84" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved85), + (ASN_TAG_CLASS_CONTEXT | (85 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved85" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved86), + (ASN_TAG_CLASS_CONTEXT | (86 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved86" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved87), + (ASN_TAG_CLASS_CONTEXT | (87 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved87" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved88), + (ASN_TAG_CLASS_CONTEXT | (88 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved88" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved89), + (ASN_TAG_CLASS_CONTEXT | (89 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved89" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved90), + (ASN_TAG_CLASS_CONTEXT | (90 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved90" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.vehicleBreakdown91), + (ASN_TAG_CLASS_CONTEXT | (91 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VehicleBreakdownSubCauseCode, + 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 */ + "vehicleBreakdown91" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.postCrash92), + (ASN_TAG_CLASS_CONTEXT | (92 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PostCrashSubCauseCode, + 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 */ + "postCrash92" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.humanProblem93), + (ASN_TAG_CLASS_CONTEXT | (93 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HumanProblemSubCauseCode, + 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 */ + "humanProblem93" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.stationaryVehicle94), + (ASN_TAG_CLASS_CONTEXT | (94 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StationaryVehicleSubCauseCode, + 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 */ + "stationaryVehicle94" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.emergencyVehicleApproaching95), + (ASN_TAG_CLASS_CONTEXT | (95 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode, + 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 */ + "emergencyVehicleApproaching95" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.hazardousLocation_DangerousCurve96), + (ASN_TAG_CLASS_CONTEXT | (96 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode, + 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 */ + "hazardousLocation-DangerousCurve96" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.collisionRisk97), + (ASN_TAG_CLASS_CONTEXT | (97 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CollisionRiskSubCauseCode, + 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 */ + "collisionRisk97" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.signalViolation98), + (ASN_TAG_CLASS_CONTEXT | (98 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SignalViolationSubCauseCode, + 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 */ + "signalViolation98" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.dangerousSituation99), + (ASN_TAG_CLASS_CONTEXT | (99 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DangerousSituationSubCauseCode, + 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 */ + "dangerousSituation99" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.railwayLevelCrossing100), + (ASN_TAG_CLASS_CONTEXT | (100 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode, + 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 */ + "railwayLevelCrossing100" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved101), + (ASN_TAG_CLASS_CONTEXT | (101 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved101" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved102), + (ASN_TAG_CLASS_CONTEXT | (102 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved102" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved103), + (ASN_TAG_CLASS_CONTEXT | (103 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved103" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved104), + (ASN_TAG_CLASS_CONTEXT | (104 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved104" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved105), + (ASN_TAG_CLASS_CONTEXT | (105 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved105" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved106), + (ASN_TAG_CLASS_CONTEXT | (106 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved106" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved107), + (ASN_TAG_CLASS_CONTEXT | (107 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved107" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved108), + (ASN_TAG_CLASS_CONTEXT | (108 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved108" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved109), + (ASN_TAG_CLASS_CONTEXT | (109 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved109" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved110), + (ASN_TAG_CLASS_CONTEXT | (110 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved110" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved111), + (ASN_TAG_CLASS_CONTEXT | (111 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved111" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved112), + (ASN_TAG_CLASS_CONTEXT | (112 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved112" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved113), + (ASN_TAG_CLASS_CONTEXT | (113 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved113" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved114), + (ASN_TAG_CLASS_CONTEXT | (114 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved114" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved115), + (ASN_TAG_CLASS_CONTEXT | (115 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved115" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved116), + (ASN_TAG_CLASS_CONTEXT | (116 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved116" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved117), + (ASN_TAG_CLASS_CONTEXT | (117 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved117" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved118), + (ASN_TAG_CLASS_CONTEXT | (118 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved118" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved119), + (ASN_TAG_CLASS_CONTEXT | (119 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved119" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved120), + (ASN_TAG_CLASS_CONTEXT | (120 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved120" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved121), + (ASN_TAG_CLASS_CONTEXT | (121 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved121" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved122), + (ASN_TAG_CLASS_CONTEXT | (122 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved122" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved123), + (ASN_TAG_CLASS_CONTEXT | (123 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved123" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved124), + (ASN_TAG_CLASS_CONTEXT | (124 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved124" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved125), + (ASN_TAG_CLASS_CONTEXT | (125 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved125" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved126), + (ASN_TAG_CLASS_CONTEXT | (126 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved126" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved127), + (ASN_TAG_CLASS_CONTEXT | (127 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved127" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeChoice, choice.reserved128), + (ASN_TAG_CLASS_CONTEXT | (128 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SubCauseCodeType, + 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 */ + "reserved128" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CauseCodeChoice_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reserved0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trafficCondition1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* accident2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadworks3 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* reserved4 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* impassability5 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* adverseWeatherCondition-Adhesion6 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* aquaplaning7 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* reserved8 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* hazardousLocation-SurfaceCondition9 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* hazardousLocation-ObstacleOnTheRoad10 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* hazardousLocation-AnimalOnTheRoad11 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* humanPresenceOnTheRoad12 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* reserved13 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* wrongWayDriving14 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* rescueAndRecoveryWorkInProgress15 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* reserved16 */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* adverseWeatherCondition-ExtremeWeatherCondition17 */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* adverseWeatherCondition-Visibility18 */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* adverseWeatherCondition-Precipitation19 */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* violence20 */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* reserved21 */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* reserved22 */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 }, /* reserved23 */ + { (ASN_TAG_CLASS_CONTEXT | (24 << 2)), 24, 0, 0 }, /* reserved24 */ + { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 }, /* reserved25 */ + { (ASN_TAG_CLASS_CONTEXT | (26 << 2)), 26, 0, 0 }, /* slowVehicle26 */ + { (ASN_TAG_CLASS_CONTEXT | (27 << 2)), 27, 0, 0 }, /* dangerousEndOfQueue27 */ + { (ASN_TAG_CLASS_CONTEXT | (28 << 2)), 28, 0, 0 }, /* publicTransportVehicleApproaching28 */ + { (ASN_TAG_CLASS_CONTEXT | (29 << 2)), 29, 0, 0 }, /* reserved29 */ + { (ASN_TAG_CLASS_CONTEXT | (30 << 2)), 30, 0, 0 }, /* reserved30 */ + { (ASN_TAG_CLASS_CONTEXT | (31 << 2)), 31, 0, 0 }, /* reserved31 */ + { (ASN_TAG_CLASS_CONTEXT | (32 << 2)), 32, 0, 0 }, /* reserved32 */ + { (ASN_TAG_CLASS_CONTEXT | (33 << 2)), 33, 0, 0 }, /* reserved33 */ + { (ASN_TAG_CLASS_CONTEXT | (34 << 2)), 34, 0, 0 }, /* reserved34 */ + { (ASN_TAG_CLASS_CONTEXT | (35 << 2)), 35, 0, 0 }, /* reserved35 */ + { (ASN_TAG_CLASS_CONTEXT | (36 << 2)), 36, 0, 0 }, /* reserved36 */ + { (ASN_TAG_CLASS_CONTEXT | (37 << 2)), 37, 0, 0 }, /* reserved37 */ + { (ASN_TAG_CLASS_CONTEXT | (38 << 2)), 38, 0, 0 }, /* reserved38 */ + { (ASN_TAG_CLASS_CONTEXT | (39 << 2)), 39, 0, 0 }, /* reserved39 */ + { (ASN_TAG_CLASS_CONTEXT | (40 << 2)), 40, 0, 0 }, /* reserved40 */ + { (ASN_TAG_CLASS_CONTEXT | (41 << 2)), 41, 0, 0 }, /* reserved41 */ + { (ASN_TAG_CLASS_CONTEXT | (42 << 2)), 42, 0, 0 }, /* reserved42 */ + { (ASN_TAG_CLASS_CONTEXT | (43 << 2)), 43, 0, 0 }, /* reserved43 */ + { (ASN_TAG_CLASS_CONTEXT | (44 << 2)), 44, 0, 0 }, /* reserved44 */ + { (ASN_TAG_CLASS_CONTEXT | (45 << 2)), 45, 0, 0 }, /* reserved45 */ + { (ASN_TAG_CLASS_CONTEXT | (46 << 2)), 46, 0, 0 }, /* reserved46 */ + { (ASN_TAG_CLASS_CONTEXT | (47 << 2)), 47, 0, 0 }, /* reserved47 */ + { (ASN_TAG_CLASS_CONTEXT | (48 << 2)), 48, 0, 0 }, /* reserved48 */ + { (ASN_TAG_CLASS_CONTEXT | (49 << 2)), 49, 0, 0 }, /* reserved49 */ + { (ASN_TAG_CLASS_CONTEXT | (50 << 2)), 50, 0, 0 }, /* reserved50 */ + { (ASN_TAG_CLASS_CONTEXT | (51 << 2)), 51, 0, 0 }, /* reserved51 */ + { (ASN_TAG_CLASS_CONTEXT | (52 << 2)), 52, 0, 0 }, /* reserved52 */ + { (ASN_TAG_CLASS_CONTEXT | (53 << 2)), 53, 0, 0 }, /* reserved53 */ + { (ASN_TAG_CLASS_CONTEXT | (54 << 2)), 54, 0, 0 }, /* reserved54 */ + { (ASN_TAG_CLASS_CONTEXT | (55 << 2)), 55, 0, 0 }, /* reserved55 */ + { (ASN_TAG_CLASS_CONTEXT | (56 << 2)), 56, 0, 0 }, /* reserved56 */ + { (ASN_TAG_CLASS_CONTEXT | (57 << 2)), 57, 0, 0 }, /* reserved57 */ + { (ASN_TAG_CLASS_CONTEXT | (58 << 2)), 58, 0, 0 }, /* reserved58 */ + { (ASN_TAG_CLASS_CONTEXT | (59 << 2)), 59, 0, 0 }, /* reserved59 */ + { (ASN_TAG_CLASS_CONTEXT | (60 << 2)), 60, 0, 0 }, /* reserved60 */ + { (ASN_TAG_CLASS_CONTEXT | (61 << 2)), 61, 0, 0 }, /* reserved61 */ + { (ASN_TAG_CLASS_CONTEXT | (62 << 2)), 62, 0, 0 }, /* reserved62 */ + { (ASN_TAG_CLASS_CONTEXT | (63 << 2)), 63, 0, 0 }, /* reserved63 */ + { (ASN_TAG_CLASS_CONTEXT | (64 << 2)), 64, 0, 0 }, /* reserved64 */ + { (ASN_TAG_CLASS_CONTEXT | (65 << 2)), 65, 0, 0 }, /* reserved65 */ + { (ASN_TAG_CLASS_CONTEXT | (66 << 2)), 66, 0, 0 }, /* reserved66 */ + { (ASN_TAG_CLASS_CONTEXT | (67 << 2)), 67, 0, 0 }, /* reserved67 */ + { (ASN_TAG_CLASS_CONTEXT | (68 << 2)), 68, 0, 0 }, /* reserved68 */ + { (ASN_TAG_CLASS_CONTEXT | (69 << 2)), 69, 0, 0 }, /* reserved69 */ + { (ASN_TAG_CLASS_CONTEXT | (70 << 2)), 70, 0, 0 }, /* reserved70 */ + { (ASN_TAG_CLASS_CONTEXT | (71 << 2)), 71, 0, 0 }, /* reserved71 */ + { (ASN_TAG_CLASS_CONTEXT | (72 << 2)), 72, 0, 0 }, /* reserved72 */ + { (ASN_TAG_CLASS_CONTEXT | (73 << 2)), 73, 0, 0 }, /* reserved73 */ + { (ASN_TAG_CLASS_CONTEXT | (74 << 2)), 74, 0, 0 }, /* reserved74 */ + { (ASN_TAG_CLASS_CONTEXT | (75 << 2)), 75, 0, 0 }, /* reserved75 */ + { (ASN_TAG_CLASS_CONTEXT | (76 << 2)), 76, 0, 0 }, /* reserved76 */ + { (ASN_TAG_CLASS_CONTEXT | (77 << 2)), 77, 0, 0 }, /* reserved77 */ + { (ASN_TAG_CLASS_CONTEXT | (78 << 2)), 78, 0, 0 }, /* reserved78 */ + { (ASN_TAG_CLASS_CONTEXT | (79 << 2)), 79, 0, 0 }, /* reserved79 */ + { (ASN_TAG_CLASS_CONTEXT | (80 << 2)), 80, 0, 0 }, /* reserved80 */ + { (ASN_TAG_CLASS_CONTEXT | (81 << 2)), 81, 0, 0 }, /* reserved81 */ + { (ASN_TAG_CLASS_CONTEXT | (82 << 2)), 82, 0, 0 }, /* reserved82 */ + { (ASN_TAG_CLASS_CONTEXT | (83 << 2)), 83, 0, 0 }, /* reserved83 */ + { (ASN_TAG_CLASS_CONTEXT | (84 << 2)), 84, 0, 0 }, /* reserved84 */ + { (ASN_TAG_CLASS_CONTEXT | (85 << 2)), 85, 0, 0 }, /* reserved85 */ + { (ASN_TAG_CLASS_CONTEXT | (86 << 2)), 86, 0, 0 }, /* reserved86 */ + { (ASN_TAG_CLASS_CONTEXT | (87 << 2)), 87, 0, 0 }, /* reserved87 */ + { (ASN_TAG_CLASS_CONTEXT | (88 << 2)), 88, 0, 0 }, /* reserved88 */ + { (ASN_TAG_CLASS_CONTEXT | (89 << 2)), 89, 0, 0 }, /* reserved89 */ + { (ASN_TAG_CLASS_CONTEXT | (90 << 2)), 90, 0, 0 }, /* reserved90 */ + { (ASN_TAG_CLASS_CONTEXT | (91 << 2)), 91, 0, 0 }, /* vehicleBreakdown91 */ + { (ASN_TAG_CLASS_CONTEXT | (92 << 2)), 92, 0, 0 }, /* postCrash92 */ + { (ASN_TAG_CLASS_CONTEXT | (93 << 2)), 93, 0, 0 }, /* humanProblem93 */ + { (ASN_TAG_CLASS_CONTEXT | (94 << 2)), 94, 0, 0 }, /* stationaryVehicle94 */ + { (ASN_TAG_CLASS_CONTEXT | (95 << 2)), 95, 0, 0 }, /* emergencyVehicleApproaching95 */ + { (ASN_TAG_CLASS_CONTEXT | (96 << 2)), 96, 0, 0 }, /* hazardousLocation-DangerousCurve96 */ + { (ASN_TAG_CLASS_CONTEXT | (97 << 2)), 97, 0, 0 }, /* collisionRisk97 */ + { (ASN_TAG_CLASS_CONTEXT | (98 << 2)), 98, 0, 0 }, /* signalViolation98 */ + { (ASN_TAG_CLASS_CONTEXT | (99 << 2)), 99, 0, 0 }, /* dangerousSituation99 */ + { (ASN_TAG_CLASS_CONTEXT | (100 << 2)), 100, 0, 0 }, /* railwayLevelCrossing100 */ + { (ASN_TAG_CLASS_CONTEXT | (101 << 2)), 101, 0, 0 }, /* reserved101 */ + { (ASN_TAG_CLASS_CONTEXT | (102 << 2)), 102, 0, 0 }, /* reserved102 */ + { (ASN_TAG_CLASS_CONTEXT | (103 << 2)), 103, 0, 0 }, /* reserved103 */ + { (ASN_TAG_CLASS_CONTEXT | (104 << 2)), 104, 0, 0 }, /* reserved104 */ + { (ASN_TAG_CLASS_CONTEXT | (105 << 2)), 105, 0, 0 }, /* reserved105 */ + { (ASN_TAG_CLASS_CONTEXT | (106 << 2)), 106, 0, 0 }, /* reserved106 */ + { (ASN_TAG_CLASS_CONTEXT | (107 << 2)), 107, 0, 0 }, /* reserved107 */ + { (ASN_TAG_CLASS_CONTEXT | (108 << 2)), 108, 0, 0 }, /* reserved108 */ + { (ASN_TAG_CLASS_CONTEXT | (109 << 2)), 109, 0, 0 }, /* reserved109 */ + { (ASN_TAG_CLASS_CONTEXT | (110 << 2)), 110, 0, 0 }, /* reserved110 */ + { (ASN_TAG_CLASS_CONTEXT | (111 << 2)), 111, 0, 0 }, /* reserved111 */ + { (ASN_TAG_CLASS_CONTEXT | (112 << 2)), 112, 0, 0 }, /* reserved112 */ + { (ASN_TAG_CLASS_CONTEXT | (113 << 2)), 113, 0, 0 }, /* reserved113 */ + { (ASN_TAG_CLASS_CONTEXT | (114 << 2)), 114, 0, 0 }, /* reserved114 */ + { (ASN_TAG_CLASS_CONTEXT | (115 << 2)), 115, 0, 0 }, /* reserved115 */ + { (ASN_TAG_CLASS_CONTEXT | (116 << 2)), 116, 0, 0 }, /* reserved116 */ + { (ASN_TAG_CLASS_CONTEXT | (117 << 2)), 117, 0, 0 }, /* reserved117 */ + { (ASN_TAG_CLASS_CONTEXT | (118 << 2)), 118, 0, 0 }, /* reserved118 */ + { (ASN_TAG_CLASS_CONTEXT | (119 << 2)), 119, 0, 0 }, /* reserved119 */ + { (ASN_TAG_CLASS_CONTEXT | (120 << 2)), 120, 0, 0 }, /* reserved120 */ + { (ASN_TAG_CLASS_CONTEXT | (121 << 2)), 121, 0, 0 }, /* reserved121 */ + { (ASN_TAG_CLASS_CONTEXT | (122 << 2)), 122, 0, 0 }, /* reserved122 */ + { (ASN_TAG_CLASS_CONTEXT | (123 << 2)), 123, 0, 0 }, /* reserved123 */ + { (ASN_TAG_CLASS_CONTEXT | (124 << 2)), 124, 0, 0 }, /* reserved124 */ + { (ASN_TAG_CLASS_CONTEXT | (125 << 2)), 125, 0, 0 }, /* reserved125 */ + { (ASN_TAG_CLASS_CONTEXT | (126 << 2)), 126, 0, 0 }, /* reserved126 */ + { (ASN_TAG_CLASS_CONTEXT | (127 << 2)), 127, 0, 0 }, /* reserved127 */ + { (ASN_TAG_CLASS_CONTEXT | (128 << 2)), 128, 0, 0 } /* reserved128 */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_CauseCodeChoice_specs_1 = { + sizeof(struct cam_ts_CauseCodeChoice), + offsetof(struct cam_ts_CauseCodeChoice, _asn_ctx), + offsetof(struct cam_ts_CauseCodeChoice, present), + sizeof(((struct cam_ts_CauseCodeChoice *)0)->present), + asn_MAP_cam_ts_CauseCodeChoice_tag2el_1, + 129, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CauseCodeChoice = { + "CauseCodeChoice", + "CauseCodeChoice", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_CauseCodeChoice_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_CauseCodeChoice_1, + 129, /* Elements count */ + &asn_SPC_cam_ts_CauseCodeChoice_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeType.c new file mode 100644 index 000000000..2641ba466 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CauseCodeType.h" + +int +cam_ts_CauseCodeType_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CauseCodeType_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_cam_ts_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CauseCodeType_tags_1, + sizeof(asn_DEF_cam_ts_CauseCodeType_tags_1) + /sizeof(asn_DEF_cam_ts_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CauseCodeType_tags_1) + /sizeof(asn_DEF_cam_ts_CauseCodeType_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) + &asn_PER_type_cam_ts_CauseCodeType_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) */ + cam_ts_CauseCodeType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeV2.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeV2.c new file mode 100644 index 000000000..b7024d0ce --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CauseCodeV2.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CauseCodeV2.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CauseCodeV2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CauseCodeV2, ccAndScc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_CauseCodeChoice, + 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 */ + "ccAndScc" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CauseCodeV2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CauseCodeV2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ccAndScc */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CauseCodeV2_specs_1 = { + sizeof(struct cam_ts_CauseCodeV2), + offsetof(struct cam_ts_CauseCodeV2, _asn_ctx), + asn_MAP_cam_ts_CauseCodeV2_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CauseCodeV2 = { + "CauseCodeV2", + "CauseCodeV2", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CauseCodeV2_tags_1, + sizeof(asn_DEF_cam_ts_CauseCodeV2_tags_1) + /sizeof(asn_DEF_cam_ts_CauseCodeV2_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CauseCodeV2_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CauseCodeV2_tags_1) + /sizeof(asn_DEF_cam_ts_CauseCodeV2_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_cam_ts_CauseCodeV2_1, + 1, /* Elements count */ + &asn_SPC_cam_ts_CauseCodeV2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CenDsrcTollingZone.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CenDsrcTollingZone.c new file mode 100644 index 000000000..5786f3cda --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CenDsrcTollingZone.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZone.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_CenDsrcTollingZone, cenDsrcTollingZoneId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ProtectedZoneId, + 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 */ + "cenDsrcTollingZoneId" + }, +}; +static const int asn_MAP_cam_ts_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CenDsrcTollingZone_specs_1 = { + sizeof(struct cam_ts_CenDsrcTollingZone), + offsetof(struct cam_ts_CenDsrcTollingZone, _asn_ctx), + asn_MAP_cam_ts_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_cam_ts_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_cam_ts_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_cam_ts_CenDsrcTollingZone_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_cam_ts_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CenDsrcTollingZoneID.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CenDsrcTollingZoneID.c new file mode 100644 index 000000000..c4a32b1e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CenDsrcTollingZoneID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CenDsrcTollingZoneID.h" + +int +cam_ts_CenDsrcTollingZoneID_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 <= 134217727L)) { + /* 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 cam_ts_ProtectedZoneId, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { 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_cam_ts_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_cam_ts_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_cam_ts_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_cam_ts_CenDsrcTollingZoneID_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) + &asn_PER_type_cam_ts_CenDsrcTollingZoneID_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) */ + cam_ts_CenDsrcTollingZoneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CircularShape.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CircularShape.c new file mode 100644 index 000000000..ae8e041ea --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CircularShape.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CircularShape.h" + +asn_TYPE_member_t asn_MBR_cam_ts_CircularShape_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_CircularShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianPosition3d, + 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 */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_CircularShape, radius), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_CircularShape, height), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "height" + }, +}; +static const int asn_MAP_cam_ts_CircularShape_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_CircularShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_CircularShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* radius */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* height */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_CircularShape_specs_1 = { + sizeof(struct cam_ts_CircularShape), + offsetof(struct cam_ts_CircularShape, _asn_ctx), + asn_MAP_cam_ts_CircularShape_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_CircularShape_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CircularShape = { + "CircularShape", + "CircularShape", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_CircularShape_tags_1, + sizeof(asn_DEF_cam_ts_CircularShape_tags_1) + /sizeof(asn_DEF_cam_ts_CircularShape_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CircularShape_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CircularShape_tags_1) + /sizeof(asn_DEF_cam_ts_CircularShape_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_cam_ts_CircularShape_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_CircularShape_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClosedLanes.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClosedLanes.c new file mode 100644 index 000000000..26a41684b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClosedLanes.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ClosedLanes.h" + +asn_TYPE_member_t asn_MBR_cam_ts_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct cam_ts_ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HardShoulderStatus, + 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 */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HardShoulderStatus, + 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 */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DrivingLaneStatus, + 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 */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_cam_ts_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ClosedLanes_specs_1 = { + sizeof(struct cam_ts_ClosedLanes), + offsetof(struct cam_ts_ClosedLanes, _asn_ctx), + asn_MAP_cam_ts_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ClosedLanes_tags_1, + sizeof(asn_DEF_cam_ts_ClosedLanes_tags_1) + /sizeof(asn_DEF_cam_ts_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ClosedLanes_tags_1) + /sizeof(asn_DEF_cam_ts_ClosedLanes_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_cam_ts_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterBreakupInfo.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterBreakupInfo.c new file mode 100644 index 000000000..590bbff05 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterBreakupInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ClusterBreakupInfo.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_ClusterBreakupInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ClusterBreakupInfo, clusterBreakupReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ClusterBreakupReason, + 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 */ + "clusterBreakupReason" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ClusterBreakupInfo, breakupTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeQuarterSecond, + 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 */ + "breakupTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_ClusterBreakupInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ClusterBreakupInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* clusterBreakupReason */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* breakupTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ClusterBreakupInfo_specs_1 = { + sizeof(struct cam_ts_ClusterBreakupInfo), + offsetof(struct cam_ts_ClusterBreakupInfo, _asn_ctx), + asn_MAP_cam_ts_ClusterBreakupInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterBreakupInfo = { + "ClusterBreakupInfo", + "ClusterBreakupInfo", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ClusterBreakupInfo_tags_1, + sizeof(asn_DEF_cam_ts_ClusterBreakupInfo_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterBreakupInfo_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ClusterBreakupInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ClusterBreakupInfo_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterBreakupInfo_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_cam_ts_ClusterBreakupInfo_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_ClusterBreakupInfo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterBreakupReason.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterBreakupReason.c new file mode 100644 index 000000000..f07611740 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterBreakupReason.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ClusterBreakupReason.h" + +int +cam_ts_ClusterBreakupReason_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ClusterBreakupReason_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_cam_ts_ClusterBreakupReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterBreakupReason = { + "ClusterBreakupReason", + "ClusterBreakupReason", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ClusterBreakupReason_tags_1, + sizeof(asn_DEF_cam_ts_ClusterBreakupReason_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterBreakupReason_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ClusterBreakupReason_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ClusterBreakupReason_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterBreakupReason_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) + &asn_PER_type_cam_ts_ClusterBreakupReason_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) */ + cam_ts_ClusterBreakupReason_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterJoinInfo.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterJoinInfo.c new file mode 100644 index 000000000..17a856150 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterJoinInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ClusterJoinInfo.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_ClusterJoinInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ClusterJoinInfo, clusterId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier1B, + 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 */ + "clusterId" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ClusterJoinInfo, joinTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeQuarterSecond, + 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 */ + "joinTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_ClusterJoinInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ClusterJoinInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* clusterId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* joinTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ClusterJoinInfo_specs_1 = { + sizeof(struct cam_ts_ClusterJoinInfo), + offsetof(struct cam_ts_ClusterJoinInfo, _asn_ctx), + asn_MAP_cam_ts_ClusterJoinInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterJoinInfo = { + "ClusterJoinInfo", + "ClusterJoinInfo", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ClusterJoinInfo_tags_1, + sizeof(asn_DEF_cam_ts_ClusterJoinInfo_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterJoinInfo_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ClusterJoinInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ClusterJoinInfo_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterJoinInfo_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_cam_ts_ClusterJoinInfo_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_ClusterJoinInfo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterLeaveInfo.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterLeaveInfo.c new file mode 100644 index 000000000..1d1c085c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterLeaveInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ClusterLeaveInfo.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_ClusterLeaveInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ClusterLeaveInfo, clusterId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier1B, + 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 */ + "clusterId" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ClusterLeaveInfo, clusterLeaveReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ClusterLeaveReason, + 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 */ + "clusterLeaveReason" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_ClusterLeaveInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ClusterLeaveInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* clusterId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* clusterLeaveReason */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ClusterLeaveInfo_specs_1 = { + sizeof(struct cam_ts_ClusterLeaveInfo), + offsetof(struct cam_ts_ClusterLeaveInfo, _asn_ctx), + asn_MAP_cam_ts_ClusterLeaveInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterLeaveInfo = { + "ClusterLeaveInfo", + "ClusterLeaveInfo", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ClusterLeaveInfo_tags_1, + sizeof(asn_DEF_cam_ts_ClusterLeaveInfo_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterLeaveInfo_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ClusterLeaveInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ClusterLeaveInfo_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterLeaveInfo_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_cam_ts_ClusterLeaveInfo_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_ClusterLeaveInfo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterLeaveReason.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterLeaveReason.c new file mode 100644 index 000000000..f4906ffa5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ClusterLeaveReason.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ClusterLeaveReason.h" + +int +cam_ts_ClusterLeaveReason_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ClusterLeaveReason_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_cam_ts_ClusterLeaveReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ClusterLeaveReason = { + "ClusterLeaveReason", + "ClusterLeaveReason", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ClusterLeaveReason_tags_1, + sizeof(asn_DEF_cam_ts_ClusterLeaveReason_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterLeaveReason_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ClusterLeaveReason_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ClusterLeaveReason_tags_1) + /sizeof(asn_DEF_cam_ts_ClusterLeaveReason_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) + &asn_PER_type_cam_ts_ClusterLeaveReason_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) */ + cam_ts_ClusterLeaveReason_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CollisionRiskSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CollisionRiskSubCauseCode.c new file mode 100644 index 000000000..d62648d50 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CollisionRiskSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CollisionRiskSubCauseCode.h" + +int +cam_ts_CollisionRiskSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CollisionRiskSubCauseCode_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_cam_ts_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_CollisionRiskSubCauseCode_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) + &asn_PER_type_cam_ts_CollisionRiskSubCauseCode_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) */ + cam_ts_CollisionRiskSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ConfidenceLevel.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ConfidenceLevel.c new file mode 100644 index 000000000..206d21dbe --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ConfidenceLevel.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ConfidenceLevel.h" + +int +cam_ts_ConfidenceLevel_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 <= 101L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ConfidenceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 101 } /* (1..101) */, + { 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_cam_ts_ConfidenceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ConfidenceLevel = { + "ConfidenceLevel", + "ConfidenceLevel", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ConfidenceLevel_tags_1, + sizeof(asn_DEF_cam_ts_ConfidenceLevel_tags_1) + /sizeof(asn_DEF_cam_ts_ConfidenceLevel_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ConfidenceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ConfidenceLevel_tags_1) + /sizeof(asn_DEF_cam_ts_ConfidenceLevel_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) + &asn_PER_type_cam_ts_ConfidenceLevel_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) */ + cam_ts_ConfidenceLevel_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CoordinateConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CoordinateConfidence.c new file mode 100644 index 000000000..f6af85236 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CoordinateConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CoordinateConfidence.h" + +int +cam_ts_CoordinateConfidence_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 <= 4096L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CoordinateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 1, 4096 } /* (1..4096) */, + { 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_cam_ts_CoordinateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CoordinateConfidence = { + "CoordinateConfidence", + "CoordinateConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CoordinateConfidence_tags_1, + sizeof(asn_DEF_cam_ts_CoordinateConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_CoordinateConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CoordinateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CoordinateConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_CoordinateConfidence_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) + &asn_PER_type_cam_ts_CoordinateConfidence_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) */ + cam_ts_CoordinateConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CorrelationCellValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CorrelationCellValue.c new file mode 100644 index 000000000..e0ac27850 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CorrelationCellValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CorrelationCellValue.h" + +int +cam_ts_CorrelationCellValue_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 >= -100L && value <= 101L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CorrelationCellValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -100, 101 } /* (-100..101) */, + { 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_cam_ts_CorrelationCellValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CorrelationCellValue = { + "CorrelationCellValue", + "CorrelationCellValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CorrelationCellValue_tags_1, + sizeof(asn_DEF_cam_ts_CorrelationCellValue_tags_1) + /sizeof(asn_DEF_cam_ts_CorrelationCellValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CorrelationCellValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CorrelationCellValue_tags_1) + /sizeof(asn_DEF_cam_ts_CorrelationCellValue_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) + &asn_PER_type_cam_ts_CorrelationCellValue_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) */ + cam_ts_CorrelationCellValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CorrelationColumn.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CorrelationColumn.c new file mode 100644 index 000000000..6ac3daaf8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CorrelationColumn.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CorrelationColumn.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CorrelationColumn_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 13 } /* (SIZE(1..13,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_cam_ts_CorrelationColumn_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_cam_ts_CorrelationCellValue, + 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_cam_ts_CorrelationColumn_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_CorrelationColumn_specs_1 = { + sizeof(struct cam_ts_CorrelationColumn), + offsetof(struct cam_ts_CorrelationColumn, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CorrelationColumn = { + "CorrelationColumn", + "CorrelationColumn", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_CorrelationColumn_tags_1, + sizeof(asn_DEF_cam_ts_CorrelationColumn_tags_1) + /sizeof(asn_DEF_cam_ts_CorrelationColumn_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CorrelationColumn_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CorrelationColumn_tags_1) + /sizeof(asn_DEF_cam_ts_CorrelationColumn_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) + &asn_PER_type_cam_ts_CorrelationColumn_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_cam_ts_CorrelationColumn_1, + 1, /* Single element */ + &asn_SPC_cam_ts_CorrelationColumn_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CountryCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CountryCode.c new file mode 100644 index 000000000..230ff87a6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CountryCode.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CountryCode.h" + +int +cam_ts_CountryCode_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 == 10UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CountryCode_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 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_cam_ts_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_CountryCode_tags_1, + sizeof(asn_DEF_cam_ts_CountryCode_tags_1) + /sizeof(asn_DEF_cam_ts_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CountryCode_tags_1) + /sizeof(asn_DEF_cam_ts_CountryCode_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) + &asn_PER_type_cam_ts_CountryCode_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) */ + cam_ts_CountryCode_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Curvature.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Curvature.c new file mode 100644 index 000000000..12b84faaa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Curvature.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Curvature.h" + +asn_TYPE_member_t asn_MBR_cam_ts_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CurvatureValue, + 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 */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CurvatureConfidence, + 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 */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Curvature_specs_1 = { + sizeof(struct cam_ts_Curvature), + offsetof(struct cam_ts_Curvature, _asn_ctx), + asn_MAP_cam_ts_Curvature_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_cam_ts_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_Curvature_tags_1, + sizeof(asn_DEF_cam_ts_Curvature_tags_1) + /sizeof(asn_DEF_cam_ts_Curvature_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Curvature_tags_1) + /sizeof(asn_DEF_cam_ts_Curvature_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_cam_ts_Curvature_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureCalculationMode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureCalculationMode.c new file mode 100644 index 000000000..9922fee2a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureCalculationMode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CurvatureCalculationMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CurvatureCalculationMode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { 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_cam_ts_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_cam_ts_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_CurvatureCalculationMode_specs_1 = { + asn_MAP_cam_ts_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_cam_ts_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_cam_ts_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_cam_ts_CurvatureCalculationMode_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) + &asn_PER_type_cam_ts_CurvatureCalculationMode_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_cam_ts_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureConfidence.c new file mode 100644 index 000000000..907532ad9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureConfidence.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CurvatureConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CurvatureConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { 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_cam_ts_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_cam_ts_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_CurvatureConfidence_specs_1 = { + asn_MAP_cam_ts_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_CurvatureConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* 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_cam_ts_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_CurvatureConfidence_tags_1, + sizeof(asn_DEF_cam_ts_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_CurvatureConfidence_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) + &asn_PER_type_cam_ts_CurvatureConfidence_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_cam_ts_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureValue.c new file mode 100644 index 000000000..13dca01ad --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_CurvatureValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_CurvatureValue.h" + +int +cam_ts_CurvatureValue_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 >= -1023L && value <= 1023L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..1023) */, + { 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_cam_ts_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_CurvatureValue_tags_1, + sizeof(asn_DEF_cam_ts_CurvatureValue_tags_1) + /sizeof(asn_DEF_cam_ts_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_CurvatureValue_tags_1) + /sizeof(asn_DEF_cam_ts_CurvatureValue_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) + &asn_PER_type_cam_ts_CurvatureValue_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) */ + cam_ts_CurvatureValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousEndOfQueueSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 000000000..526f77ac8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DangerousEndOfQueueSubCauseCode.h" + +int +cam_ts_DangerousEndOfQueueSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DangerousEndOfQueueSubCauseCode_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_cam_ts_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousEndOfQueueSubCauseCode_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) + &asn_PER_type_cam_ts_DangerousEndOfQueueSubCauseCode_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) */ + cam_ts_DangerousEndOfQueueSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsBasic.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsBasic.c new file mode 100644 index 000000000..6fab14caa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsBasic.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DangerousGoodsBasic.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { 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_cam_ts_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_cam_ts_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_DangerousGoodsBasic_specs_1 = { + asn_MAP_cam_ts_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* 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_cam_ts_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_cam_ts_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousGoodsBasic_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) + &asn_PER_type_cam_ts_DangerousGoodsBasic_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_cam_ts_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsContainer.c new file mode 100644 index 000000000..c80a7361d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsContainer.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DangerousGoodsContainer.h" + +asn_TYPE_member_t asn_MBR_cam_ts_DangerousGoodsContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DangerousGoodsContainer, dangerousGoodsBasic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DangerousGoodsBasic, + 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 */ + "dangerousGoodsBasic" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_DangerousGoodsContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_DangerousGoodsContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dangerousGoodsBasic */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_DangerousGoodsContainer_specs_1 = { + sizeof(struct cam_ts_DangerousGoodsContainer), + offsetof(struct cam_ts_DangerousGoodsContainer, _asn_ctx), + asn_MAP_cam_ts_DangerousGoodsContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousGoodsContainer = { + "DangerousGoodsContainer", + "DangerousGoodsContainer", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_DangerousGoodsContainer_tags_1, + sizeof(asn_DEF_cam_ts_DangerousGoodsContainer_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousGoodsContainer_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DangerousGoodsContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DangerousGoodsContainer_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousGoodsContainer_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_cam_ts_DangerousGoodsContainer_1, + 1, /* Elements count */ + &asn_SPC_cam_ts_DangerousGoodsContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsExtended.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsExtended.c new file mode 100644 index 000000000..19665ab7f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousGoodsExtended.c @@ -0,0 +1,339 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +static int +memb_cam_ts_unNumber_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 <= 9999L)) { + /* 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_cam_ts_emergencyActionCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_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; + } + + size = st->size; + + if((size >= 1UL && size <= 24UL) + && !check_permitted_alphabet_7(st)) { + /* 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_cam_ts_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_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; + } + + size = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1UL && size <= 24UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_companyName_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_cam_ts_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DangerousGoodsBasic, + 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 */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DangerousGoodsExtended, unNumber), + (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) + &asn_PER_memb_cam_ts_unNumber_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_cam_ts_unNumber_constraint_1 + }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 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 */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 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 */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DangerousGoodsExtended, limitedQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 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 */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 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) + &asn_PER_memb_cam_ts_emergencyActionCode_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_cam_ts_emergencyActionCode_constraint_1 + }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PhoneNumber, + 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 */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 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) + &asn_PER_memb_cam_ts_companyName_constr_9, +#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_cam_ts_companyName_constraint_1 + }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_cam_ts_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_DangerousGoodsExtended_specs_1 = { + sizeof(struct cam_ts_DangerousGoodsExtended), + offsetof(struct cam_ts_DangerousGoodsExtended, _asn_ctx), + asn_MAP_cam_ts_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_cam_ts_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_cam_ts_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousGoodsExtended_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_cam_ts_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_cam_ts_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousSituationSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousSituationSubCauseCode.c new file mode 100644 index 000000000..31490d2f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DangerousSituationSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DangerousSituationSubCauseCode.h" + +int +cam_ts_DangerousSituationSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DangerousSituationSubCauseCode_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_cam_ts_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_DangerousSituationSubCauseCode_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) + &asn_PER_type_cam_ts_DangerousSituationSubCauseCode_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) */ + cam_ts_DangerousSituationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaAltitude.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaAltitude.c new file mode 100644 index 000000000..1d8cb5fcf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaAltitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaAltitude.h" + +int +cam_ts_DeltaAltitude_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 >= -12700L && value <= 12800L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { 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_cam_ts_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaAltitude_tags_1, + sizeof(asn_DEF_cam_ts_DeltaAltitude_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaAltitude_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaAltitude_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) + &asn_PER_type_cam_ts_DeltaAltitude_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) */ + cam_ts_DeltaAltitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaLatitude.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaLatitude.c new file mode 100644 index 000000000..6dfbc47a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaLatitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaLatitude.h" + +int +cam_ts_DeltaLatitude_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 >= -131071L && value <= 131072L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { 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_cam_ts_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaLatitude_tags_1, + sizeof(asn_DEF_cam_ts_DeltaLatitude_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaLatitude_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaLatitude_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) + &asn_PER_type_cam_ts_DeltaLatitude_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) */ + cam_ts_DeltaLatitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaLongitude.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaLongitude.c new file mode 100644 index 000000000..85ea5de6f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaLongitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaLongitude.h" + +int +cam_ts_DeltaLongitude_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 >= -131071L && value <= 131072L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { 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_cam_ts_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaLongitude_tags_1, + sizeof(asn_DEF_cam_ts_DeltaLongitude_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaLongitude_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaLongitude_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) + &asn_PER_type_cam_ts_DeltaLongitude_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) */ + cam_ts_DeltaLongitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaReferencePosition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaReferencePosition.c new file mode 100644 index 000000000..6d3e09a20 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaReferencePosition.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_cam_ts_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaLatitude, + 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 */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaLongitude, + 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 */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaAltitude, + 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 */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_DeltaReferencePosition_specs_1 = { + sizeof(struct cam_ts_DeltaReferencePosition), + offsetof(struct cam_ts_DeltaReferencePosition, _asn_ctx), + asn_MAP_cam_ts_DeltaReferencePosition_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_cam_ts_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_cam_ts_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaReferencePosition_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_cam_ts_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeMilliSecondPositive.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeMilliSecondPositive.c new file mode 100644 index 000000000..92caa0d74 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeMilliSecondPositive.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondPositive.h" + +int +cam_ts_DeltaTimeMilliSecondPositive_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 <= 10000L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeMilliSecondPositive_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { 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_cam_ts_DeltaTimeMilliSecondPositive_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeMilliSecondPositive = { + "DeltaTimeMilliSecondPositive", + "DeltaTimeMilliSecondPositive", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaTimeMilliSecondPositive_tags_1, + sizeof(asn_DEF_cam_ts_DeltaTimeMilliSecondPositive_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeMilliSecondPositive_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaTimeMilliSecondPositive_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaTimeMilliSecondPositive_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeMilliSecondPositive_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) + &asn_PER_type_cam_ts_DeltaTimeMilliSecondPositive_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) */ + cam_ts_DeltaTimeMilliSecondPositive_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeMilliSecondSigned.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeMilliSecondSigned.c new file mode 100644 index 000000000..59a42d744 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeMilliSecondSigned.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeMilliSecondSigned.h" + +int +cam_ts_DeltaTimeMilliSecondSigned_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 >= -2048L && value <= 2047L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeMilliSecondSigned_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */, + { 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_cam_ts_DeltaTimeMilliSecondSigned_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeMilliSecondSigned = { + "DeltaTimeMilliSecondSigned", + "DeltaTimeMilliSecondSigned", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaTimeMilliSecondSigned_tags_1, + sizeof(asn_DEF_cam_ts_DeltaTimeMilliSecondSigned_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeMilliSecondSigned_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaTimeMilliSecondSigned_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaTimeMilliSecondSigned_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeMilliSecondSigned_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) + &asn_PER_type_cam_ts_DeltaTimeMilliSecondSigned_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) */ + cam_ts_DeltaTimeMilliSecondSigned_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeQuarterSecond.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeQuarterSecond.c new file mode 100644 index 000000000..028db5b82 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeQuarterSecond.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeQuarterSecond.h" + +int +cam_ts_DeltaTimeQuarterSecond_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 <= 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeQuarterSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..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_cam_ts_DeltaTimeQuarterSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeQuarterSecond = { + "DeltaTimeQuarterSecond", + "DeltaTimeQuarterSecond", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaTimeQuarterSecond_tags_1, + sizeof(asn_DEF_cam_ts_DeltaTimeQuarterSecond_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeQuarterSecond_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaTimeQuarterSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaTimeQuarterSecond_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeQuarterSecond_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) + &asn_PER_type_cam_ts_DeltaTimeQuarterSecond_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) */ + cam_ts_DeltaTimeQuarterSecond_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeSecond.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeSecond.c new file mode 100644 index 000000000..3c20622fe --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeSecond.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeSecond.h" + +int +cam_ts_DeltaTimeSecond_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 <= 86400L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { 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_cam_ts_DeltaTimeSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeSecond = { + "DeltaTimeSecond", + "DeltaTimeSecond", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaTimeSecond_tags_1, + sizeof(asn_DEF_cam_ts_DeltaTimeSecond_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeSecond_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaTimeSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaTimeSecond_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeSecond_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) + &asn_PER_type_cam_ts_DeltaTimeSecond_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) */ + cam_ts_DeltaTimeSecond_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeTenSeconds.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeTenSeconds.c new file mode 100644 index 000000000..25713211a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeTenSeconds.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenSeconds.h" + +int +cam_ts_DeltaTimeTenSeconds_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 <= 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeTenSeconds_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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 const ber_tlv_tag_t asn_DEF_cam_ts_DeltaTimeTenSeconds_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeTenSeconds = { + "DeltaTimeTenSeconds", + "DeltaTimeTenSeconds", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaTimeTenSeconds_tags_1, + sizeof(asn_DEF_cam_ts_DeltaTimeTenSeconds_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeTenSeconds_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaTimeTenSeconds_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaTimeTenSeconds_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeTenSeconds_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) + &asn_PER_type_cam_ts_DeltaTimeTenSeconds_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) */ + cam_ts_DeltaTimeTenSeconds_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeTenthOfSecond.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeTenthOfSecond.c new file mode 100644 index 000000000..9f037e37c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DeltaTimeTenthOfSecond.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DeltaTimeTenthOfSecond.h" + +int +cam_ts_DeltaTimeTenthOfSecond_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 <= 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DeltaTimeTenthOfSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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 const ber_tlv_tag_t asn_DEF_cam_ts_DeltaTimeTenthOfSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DeltaTimeTenthOfSecond = { + "DeltaTimeTenthOfSecond", + "DeltaTimeTenthOfSecond", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_DeltaTimeTenthOfSecond_tags_1, + sizeof(asn_DEF_cam_ts_DeltaTimeTenthOfSecond_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeTenthOfSecond_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DeltaTimeTenthOfSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DeltaTimeTenthOfSecond_tags_1) + /sizeof(asn_DEF_cam_ts_DeltaTimeTenthOfSecond_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) + &asn_PER_type_cam_ts_DeltaTimeTenthOfSecond_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) */ + cam_ts_DeltaTimeTenthOfSecond_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DigitalMap.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DigitalMap.c new file mode 100644 index 000000000..e849caf33 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DigitalMap.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DigitalMap.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_ReferencePosition, + 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_cam_ts_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_DigitalMap_specs_1 = { + sizeof(struct cam_ts_DigitalMap), + offsetof(struct cam_ts_DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_DigitalMap_tags_1, + sizeof(asn_DEF_cam_ts_DigitalMap_tags_1) + /sizeof(asn_DEF_cam_ts_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DigitalMap_tags_1) + /sizeof(asn_DEF_cam_ts_DigitalMap_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) + &asn_PER_type_cam_ts_DigitalMap_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_cam_ts_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_cam_ts_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Direction.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Direction.c new file mode 100644 index 000000000..2f38c5935 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Direction.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Direction.h" + +int +cam_ts_Direction_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 <= 3L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Direction_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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 ber_tlv_tag_t asn_DEF_cam_ts_Direction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Direction = { + "Direction", + "Direction", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Direction_tags_1, + sizeof(asn_DEF_cam_ts_Direction_tags_1) + /sizeof(asn_DEF_cam_ts_Direction_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Direction_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Direction_tags_1) + /sizeof(asn_DEF_cam_ts_Direction_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) + &asn_PER_type_cam_ts_Direction_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) */ + cam_ts_Direction_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DriveDirection.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DriveDirection.c new file mode 100644 index 000000000..9a80ab06d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DriveDirection.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DriveDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DriveDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { 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_cam_ts_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_cam_ts_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_DriveDirection_specs_1 = { + asn_MAP_cam_ts_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_DriveDirection_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* 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_cam_ts_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_DriveDirection_tags_1, + sizeof(asn_DEF_cam_ts_DriveDirection_tags_1) + /sizeof(asn_DEF_cam_ts_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DriveDirection_tags_1) + /sizeof(asn_DEF_cam_ts_DriveDirection_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) + &asn_PER_type_cam_ts_DriveDirection_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_cam_ts_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DrivingLaneStatus.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DrivingLaneStatus.c new file mode 100644 index 000000000..4a41ba928 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_DrivingLaneStatus.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_DrivingLaneStatus.h" + +int +cam_ts_DrivingLaneStatus_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 >= 1UL && size <= 13UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 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_cam_ts_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_cam_ts_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_cam_ts_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_cam_ts_DrivingLaneStatus_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) + &asn_PER_type_cam_ts_DrivingLaneStatus_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) */ + cam_ts_DrivingLaneStatus_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EXTERNAL.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EXTERNAL.c new file mode 100644 index 000000000..108b8122b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EXTERNAL.c @@ -0,0 +1,250 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ASN1C-UsefulInformationObjectClasses" + * found in "/usr/local/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EXTERNAL.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_encoding_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { 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_cam_ts_encoding_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EXTERNAL__encoding, choice.single_ASN1_type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ANY, + 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 */ + "single-ASN1-type" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EXTERNAL__encoding, choice.octet_aligned), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 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 */ + "octet-aligned" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EXTERNAL__encoding, choice.arbitrary), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 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 */ + "arbitrary" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_encoding_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* single-ASN1-type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* octet-aligned */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* arbitrary */ +}; +static asn_CHOICE_specifics_t asn_SPC_cam_ts_encoding_specs_5 = { + sizeof(struct cam_ts_EXTERNAL__encoding), + offsetof(struct cam_ts_EXTERNAL__encoding, _asn_ctx), + offsetof(struct cam_ts_EXTERNAL__encoding, present), + sizeof(((struct cam_ts_EXTERNAL__encoding *)0)->present), + asn_MAP_cam_ts_encoding_tag2el_5, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cam_ts_encoding_5 = { + "encoding", + "encoding", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_encoding_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_encoding_5, + 3, /* Elements count */ + &asn_SPC_cam_ts_encoding_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cam_ts_EXTERNAL_1[] = { + { ATF_POINTER, 3, offsetof(struct cam_ts_EXTERNAL, direct_reference), + (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)), + 0, + &asn_DEF_OBJECT_IDENTIFIER, + 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 */ + "direct-reference" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_EXTERNAL, indirect_reference), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &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 */ + "indirect-reference" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_EXTERNAL, data_value_descriptor), + (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), + 0, + &asn_DEF_ObjectDescriptor, + 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 */ + "data-value-descriptor" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EXTERNAL, encoding), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_cam_ts_encoding_5, + 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 */ + "encoding" + }, +}; +static const int asn_MAP_cam_ts_EXTERNAL_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_EXTERNAL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_EXTERNAL_tag2el_1[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* indirect-reference */ + { (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)), 0, 0, 0 }, /* direct-reference */ + { (ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), 2, 0, 0 }, /* data-value-descriptor */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* single-ASN1-type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* octet-aligned */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 } /* arbitrary */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EXTERNAL_specs_1 = { + sizeof(struct cam_ts_EXTERNAL), + offsetof(struct cam_ts_EXTERNAL, _asn_ctx), + asn_MAP_cam_ts_EXTERNAL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_cam_ts_EXTERNAL_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EXTERNAL = { + "EXTERNAL", + "EXTERNAL", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_EXTERNAL_tags_1, + sizeof(asn_DEF_cam_ts_EXTERNAL_tags_1) + /sizeof(asn_DEF_cam_ts_EXTERNAL_tags_1[0]) - 1, /* 1 */ + asn_DEF_cam_ts_EXTERNAL_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EXTERNAL_tags_1) + /sizeof(asn_DEF_cam_ts_EXTERNAL_tags_1[0]), /* 2 */ + { +#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_cam_ts_EXTERNAL_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_EXTERNAL_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EllipticalShape.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EllipticalShape.c new file mode 100644 index 000000000..c65a9448d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EllipticalShape.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EllipticalShape.h" + +asn_TYPE_member_t asn_MBR_cam_ts_EllipticalShape_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_EllipticalShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianPosition3d, + 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 */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EllipticalShape, semiMajorAxisLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "semiMajorAxisLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EllipticalShape, semiMinorAxisLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "semiMinorAxisLength" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_EllipticalShape, orientation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "orientation" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_EllipticalShape, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "height" + }, +}; +static const int asn_MAP_cam_ts_EllipticalShape_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_EllipticalShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_EllipticalShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMajorAxisLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiMinorAxisLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* orientation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* height */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EllipticalShape_specs_1 = { + sizeof(struct cam_ts_EllipticalShape), + offsetof(struct cam_ts_EllipticalShape, _asn_ctx), + asn_MAP_cam_ts_EllipticalShape_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_cam_ts_EllipticalShape_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EllipticalShape = { + "EllipticalShape", + "EllipticalShape", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_EllipticalShape_tags_1, + sizeof(asn_DEF_cam_ts_EllipticalShape_tags_1) + /sizeof(asn_DEF_cam_ts_EllipticalShape_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EllipticalShape_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EllipticalShape_tags_1) + /sizeof(asn_DEF_cam_ts_EllipticalShape_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_cam_ts_EllipticalShape_1, + 5, /* Elements count */ + &asn_SPC_cam_ts_EllipticalShape_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmbarkationStatus.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmbarkationStatus.c new file mode 100644 index 000000000..b8e3e4945 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmbarkationStatus.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_cam_ts_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_cam_ts_EmbarkationStatus_tags_1, + sizeof(asn_DEF_cam_ts_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_cam_ts_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_cam_ts_EmbarkationStatus_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) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyContainer.c new file mode 100644 index 000000000..61c30031d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyContainer.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EmergencyContainer.h" + +asn_TYPE_member_t asn_MBR_cam_ts_EmergencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EmergencyContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LightBarSirenInUse, + 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 */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_EmergencyContainer, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CauseCodeV2, + 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 */ + "incidentIndication" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_EmergencyContainer, emergencyPriority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EmergencyPriority, + 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 */ + "emergencyPriority" + }, +}; +static const int asn_MAP_cam_ts_EmergencyContainer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_EmergencyContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_EmergencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* emergencyPriority */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EmergencyContainer_specs_1 = { + sizeof(struct cam_ts_EmergencyContainer), + offsetof(struct cam_ts_EmergencyContainer, _asn_ctx), + asn_MAP_cam_ts_EmergencyContainer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_EmergencyContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EmergencyContainer = { + "EmergencyContainer", + "EmergencyContainer", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_EmergencyContainer_tags_1, + sizeof(asn_DEF_cam_ts_EmergencyContainer_tags_1) + /sizeof(asn_DEF_cam_ts_EmergencyContainer_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EmergencyContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EmergencyContainer_tags_1) + /sizeof(asn_DEF_cam_ts_EmergencyContainer_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_cam_ts_EmergencyContainer_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_EmergencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyPriority.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyPriority.c new file mode 100644 index 000000000..6281e2879 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyPriority.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EmergencyPriority.h" + +int +cam_ts_EmergencyPriority_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 == 2UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_EmergencyPriority_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 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_cam_ts_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_EmergencyPriority_tags_1, + sizeof(asn_DEF_cam_ts_EmergencyPriority_tags_1) + /sizeof(asn_DEF_cam_ts_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EmergencyPriority_tags_1) + /sizeof(asn_DEF_cam_ts_EmergencyPriority_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) + &asn_PER_type_cam_ts_EmergencyPriority_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) */ + cam_ts_EmergencyPriority_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyVehicleApproachingSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 000000000..47f1c42dc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EmergencyVehicleApproachingSubCauseCode.h" + +int +cam_ts_EmergencyVehicleApproachingSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_EmergencyVehicleApproachingSubCauseCode_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_cam_ts_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_EmergencyVehicleApproachingSubCauseCode_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) + &asn_PER_type_cam_ts_EmergencyVehicleApproachingSubCauseCode_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) */ + cam_ts_EmergencyVehicleApproachingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EnergyStorageType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EnergyStorageType.c new file mode 100644 index 000000000..2e26b7cb6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EnergyStorageType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EnergyStorageType.h" + +int +cam_ts_EnergyStorageType_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_EnergyStorageType_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) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_EnergyStorageType_tags_1, + sizeof(asn_DEF_cam_ts_EnergyStorageType_tags_1) + /sizeof(asn_DEF_cam_ts_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EnergyStorageType_tags_1) + /sizeof(asn_DEF_cam_ts_EnergyStorageType_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) + &asn_PER_type_cam_ts_EnergyStorageType_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) */ + cam_ts_EnergyStorageType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryCode.c new file mode 100644 index 000000000..16ddce0bc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryCode.c @@ -0,0 +1,181 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryCode.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { 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_cam_ts_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EuVehicleCategoryL, + 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 */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EuVehicleCategoryM, + 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 */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EuVehicleCategoryN, + 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 */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EuVehicleCategoryO, + 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 */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EuVehicleCategoryCode, choice.euVehicleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 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 */ + "euVehicleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EuVehicleCategoryCode, choice.euVehicleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 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 */ + "euVehicleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehicleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehicleCategoryG */ +}; +static asn_CHOICE_specifics_t asn_SPC_cam_ts_EuVehicleCategoryCode_specs_1 = { + sizeof(struct cam_ts_EuVehicleCategoryCode), + offsetof(struct cam_ts_EuVehicleCategoryCode, _asn_ctx), + offsetof(struct cam_ts_EuVehicleCategoryCode, present), + sizeof(((struct cam_ts_EuVehicleCategoryCode *)0)->present), + asn_MAP_cam_ts_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_EuVehicleCategoryCode_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_cam_ts_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryL.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryL.c new file mode 100644 index 000000000..852f902cb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryL.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { 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_cam_ts_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_cam_ts_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_EuVehicleCategoryL_specs_1 = { + asn_MAP_cam_ts_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* 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_cam_ts_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_cam_ts_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_cam_ts_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_cam_ts_EuVehicleCategoryL_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) + &asn_PER_type_cam_ts_EuVehicleCategoryL_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_cam_ts_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryM.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryM.c new file mode 100644 index 000000000..4834f9055 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryM.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryM_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { 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_cam_ts_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_cam_ts_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_EuVehicleCategoryM_specs_1 = { + asn_MAP_cam_ts_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_EuVehicleCategoryM_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* 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_cam_ts_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_cam_ts_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_cam_ts_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_cam_ts_EuVehicleCategoryM_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) + &asn_PER_type_cam_ts_EuVehicleCategoryM_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_cam_ts_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryN.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryN.c new file mode 100644 index 000000000..2bef95a54 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryN.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { 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_cam_ts_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_cam_ts_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_EuVehicleCategoryN_specs_1 = { + asn_MAP_cam_ts_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_EuVehicleCategoryN_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* 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_cam_ts_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_cam_ts_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_cam_ts_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_cam_ts_EuVehicleCategoryN_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) + &asn_PER_type_cam_ts_EuVehicleCategoryN_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_cam_ts_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryO.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryO.c new file mode 100644 index 000000000..510355609 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EuVehicleCategoryO.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EuVehicleCategoryO.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_EuVehicleCategoryO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_cam_ts_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_cam_ts_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_EuVehicleCategoryO_specs_1 = { + asn_MAP_cam_ts_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_EuVehicleCategoryO_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* 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_cam_ts_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_cam_ts_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_cam_ts_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_cam_ts_EuVehicleCategoryO_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) + &asn_PER_type_cam_ts_EuVehicleCategoryO_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_cam_ts_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EulerAnglesWithConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EulerAnglesWithConfidence.c new file mode 100644 index 000000000..610f4fbe2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EulerAnglesWithConfidence.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EulerAnglesWithConfidence.h" + +asn_TYPE_member_t asn_MBR_cam_ts_EulerAnglesWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EulerAnglesWithConfidence, zAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngle, + 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 */ + "zAngle" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_EulerAnglesWithConfidence, yAngle), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngle, + 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 */ + "yAngle" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_EulerAnglesWithConfidence, xAngle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngle, + 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 */ + "xAngle" + }, +}; +static const int asn_MAP_cam_ts_EulerAnglesWithConfidence_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_EulerAnglesWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_EulerAnglesWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yAngle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* xAngle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EulerAnglesWithConfidence_specs_1 = { + sizeof(struct cam_ts_EulerAnglesWithConfidence), + offsetof(struct cam_ts_EulerAnglesWithConfidence, _asn_ctx), + asn_MAP_cam_ts_EulerAnglesWithConfidence_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_EulerAnglesWithConfidence_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EulerAnglesWithConfidence = { + "EulerAnglesWithConfidence", + "EulerAnglesWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_EulerAnglesWithConfidence_tags_1, + sizeof(asn_DEF_cam_ts_EulerAnglesWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_EulerAnglesWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EulerAnglesWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EulerAnglesWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_EulerAnglesWithConfidence_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_cam_ts_EulerAnglesWithConfidence_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_EulerAnglesWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventHistory.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventHistory.c new file mode 100644 index 000000000..4e788055e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventHistory.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EventHistory.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_EventHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_cam_ts_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_EventPoint, + 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_cam_ts_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_EventHistory_specs_1 = { + sizeof(struct cam_ts_EventHistory), + offsetof(struct cam_ts_EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_EventHistory_tags_1, + sizeof(asn_DEF_cam_ts_EventHistory_tags_1) + /sizeof(asn_DEF_cam_ts_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EventHistory_tags_1) + /sizeof(asn_DEF_cam_ts_EventHistory_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) + &asn_PER_type_cam_ts_EventHistory_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_cam_ts_EventHistory_1, + 1, /* Single element */ + &asn_SPC_cam_ts_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventPoint.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventPoint.c new file mode 100644 index 000000000..c3567d9a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventPoint.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EventPoint.h" + +asn_TYPE_member_t asn_MBR_cam_ts_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaReferencePosition, + 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 */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PathDeltaTime, + 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 */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_InformationQuality, + 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 */ + "informationQuality" + }, +}; +static const int asn_MAP_cam_ts_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_EventPoint_specs_1 = { + sizeof(struct cam_ts_EventPoint), + offsetof(struct cam_ts_EventPoint, _asn_ctx), + asn_MAP_cam_ts_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_EventPoint_tags_1, + sizeof(asn_DEF_cam_ts_EventPoint_tags_1) + /sizeof(asn_DEF_cam_ts_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EventPoint_tags_1) + /sizeof(asn_DEF_cam_ts_EventPoint_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_cam_ts_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventZone.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventZone.c new file mode 100644 index 000000000..184108fb6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_EventZone.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_EventZone.h" + +int +cam_ts_EventZone_constraint(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 <= 23UL)) { + /* 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; + } +} + +/* + * This type is implemented using cam_ts_EventHistory, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_EventZone_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (SIZE(1..23)) */, + 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_cam_ts_EventZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_EventZone = { + "EventZone", + "EventZone", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_EventZone_tags_1, + sizeof(asn_DEF_cam_ts_EventZone_tags_1) + /sizeof(asn_DEF_cam_ts_EventZone_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_EventZone_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_EventZone_tags_1) + /sizeof(asn_DEF_cam_ts_EventZone_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) + &asn_PER_type_cam_ts_EventZone_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) */ + cam_ts_EventZone_constraint + }, + asn_MBR_cam_ts_EventHistory_1, + 1, /* Single element */ + &asn_SPC_cam_ts_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext1.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext1.c new file mode 100644 index 000000000..86998b9c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext1.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Ext1.h" + +static int +memb_cam_ts_content_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 >= 128L && value <= 16511L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_content_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 128, 16511 } /* (128..16511) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Ext1_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_Ext1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Ext1, choice.content), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_cam_ts_content_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_cam_ts_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Ext1, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_Ext2, + 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 */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Ext1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_Ext1_specs_1 = { + sizeof(struct cam_ts_Ext1), + offsetof(struct cam_ts_Ext1, _asn_ctx), + offsetof(struct cam_ts_Ext1, present), + sizeof(((struct cam_ts_Ext1 *)0)->present), + asn_MAP_cam_ts_Ext1_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Ext1 = { + "Ext1", + "Ext1", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_Ext1_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_Ext1_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Ext1_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext2.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext2.c new file mode 100644 index 000000000..932378651 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext2.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Ext2.h" + +static int +memb_cam_ts_content_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 >= 16512L && value <= 2113663L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_content_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 21, -1, 16512, 2113663 } /* (16512..2113663) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Ext2_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_Ext2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Ext2, choice.content), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_cam_ts_content_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_cam_ts_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Ext2, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Ext3, + 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 */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Ext2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_Ext2_specs_1 = { + sizeof(struct cam_ts_Ext2), + offsetof(struct cam_ts_Ext2, _asn_ctx), + offsetof(struct cam_ts_Ext2, present), + sizeof(((struct cam_ts_Ext2 *)0)->present), + asn_MAP_cam_ts_Ext2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Ext2 = { + "Ext2", + "Ext2", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_Ext2_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_Ext2_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Ext2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext3.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext3.c new file mode 100644 index 000000000..0a67cdbaf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Ext3.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Ext3.h" + +int +cam_ts_Ext3_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 >= 2113664L && value <= 270549119L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Ext3_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 28, -1, 2113664, 270549119 } /* (2113664..270549119,...) */, + { 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_cam_ts_Ext3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Ext3 = { + "Ext3", + "Ext3", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Ext3_tags_1, + sizeof(asn_DEF_cam_ts_Ext3_tags_1) + /sizeof(asn_DEF_cam_ts_Ext3_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Ext3_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Ext3_tags_1) + /sizeof(asn_DEF_cam_ts_Ext3_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) + &asn_PER_type_cam_ts_Ext3_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) */ + cam_ts_Ext3_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ExteriorLights.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ExteriorLights.c new file mode 100644 index 000000000..3b7c6a0ec --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ExteriorLights.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ExteriorLights.h" + +int +cam_ts_ExteriorLights_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 == 8UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 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_cam_ts_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_ExteriorLights_tags_1, + sizeof(asn_DEF_cam_ts_ExteriorLights_tags_1) + /sizeof(asn_DEF_cam_ts_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ExteriorLights_tags_1) + /sizeof(asn_DEF_cam_ts_ExteriorLights_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) + &asn_PER_type_cam_ts_ExteriorLights_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) */ + cam_ts_ExteriorLights_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeneralizedLanePosition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeneralizedLanePosition.c new file mode 100644 index 000000000..a8a224789 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeneralizedLanePosition.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePosition.h" + +asn_TYPE_member_t asn_MBR_cam_ts_GeneralizedLanePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_GeneralizedLanePosition, lanePositionBased), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_LanePositionOptions, + 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 */ + "lanePositionBased" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_GeneralizedLanePosition, mapBased), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MapPosition, + 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 */ + "mapBased" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_GeneralizedLanePosition, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MetaInformation, + 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" + }, +}; +static const int asn_MAP_cam_ts_GeneralizedLanePosition_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_GeneralizedLanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_GeneralizedLanePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lanePositionBased */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mapBased */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_GeneralizedLanePosition_specs_1 = { + sizeof(struct cam_ts_GeneralizedLanePosition), + offsetof(struct cam_ts_GeneralizedLanePosition, _asn_ctx), + asn_MAP_cam_ts_GeneralizedLanePosition_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_GeneralizedLanePosition_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_GeneralizedLanePosition = { + "GeneralizedLanePosition", + "GeneralizedLanePosition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_GeneralizedLanePosition_tags_1, + sizeof(asn_DEF_cam_ts_GeneralizedLanePosition_tags_1) + /sizeof(asn_DEF_cam_ts_GeneralizedLanePosition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_GeneralizedLanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_GeneralizedLanePosition_tags_1) + /sizeof(asn_DEF_cam_ts_GeneralizedLanePosition_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_cam_ts_GeneralizedLanePosition_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_GeneralizedLanePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeneralizedLanePositions.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeneralizedLanePositions.c new file mode 100644 index 000000000..f4a9ea608 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeneralizedLanePositions.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_GeneralizedLanePositions.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_GeneralizedLanePositions_constr_1 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_cam_ts_GeneralizedLanePositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_GeneralizedLanePosition, + 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_cam_ts_GeneralizedLanePositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_GeneralizedLanePositions_specs_1 = { + sizeof(struct cam_ts_GeneralizedLanePositions), + offsetof(struct cam_ts_GeneralizedLanePositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_GeneralizedLanePositions = { + "GeneralizedLanePositions", + "GeneralizedLanePositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_GeneralizedLanePositions_tags_1, + sizeof(asn_DEF_cam_ts_GeneralizedLanePositions_tags_1) + /sizeof(asn_DEF_cam_ts_GeneralizedLanePositions_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_GeneralizedLanePositions_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_GeneralizedLanePositions_tags_1) + /sizeof(asn_DEF_cam_ts_GeneralizedLanePositions_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) + &asn_PER_type_cam_ts_GeneralizedLanePositions_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_cam_ts_GeneralizedLanePositions_1, + 1, /* Single element */ + &asn_SPC_cam_ts_GeneralizedLanePositions_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GenerationDeltaTime.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GenerationDeltaTime.c new file mode 100644 index 000000000..e7c39a087 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GenerationDeltaTime.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_GenerationDeltaTime.h" + +int +cam_ts_GenerationDeltaTime_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 <= 65535L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_GenerationDeltaTime_constr_1 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) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_GenerationDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_GenerationDeltaTime = { + "GenerationDeltaTime", + "GenerationDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_GenerationDeltaTime_tags_1, + sizeof(asn_DEF_cam_ts_GenerationDeltaTime_tags_1) + /sizeof(asn_DEF_cam_ts_GenerationDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_GenerationDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_GenerationDeltaTime_tags_1) + /sizeof(asn_DEF_cam_ts_GenerationDeltaTime_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) + &asn_PER_type_cam_ts_GenerationDeltaTime_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) */ + cam_ts_GenerationDeltaTime_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeoPosition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeoPosition.c new file mode 100644 index 000000000..58881bdc1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_GeoPosition.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_GeoPosition.h" + +static int asn_DFL_4_cmp_800001(const void *sptr) { + const cam_ts_AltitudeValue_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 800001 */ + return (*st != 800001); +} +static int asn_DFL_4_set_800001(void **sptr) { + cam_ts_AltitudeValue_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 800001 */ + *st = 800001; + return 0; +} +asn_TYPE_member_t asn_MBR_cam_ts_GeoPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_GeoPosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 cam_ts_GeoPosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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_POINTER, 1, offsetof(struct cam_ts_GeoPosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 + }, + &asn_DFL_4_cmp_800001, /* Compare DEFAULT 800001 */ + &asn_DFL_4_set_800001, /* Set DEFAULT 800001 */ + "altitude" + }, +}; +static const int asn_MAP_cam_ts_GeoPosition_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_GeoPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_GeoPosition_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_cam_ts_GeoPosition_specs_1 = { + sizeof(struct cam_ts_GeoPosition), + offsetof(struct cam_ts_GeoPosition, _asn_ctx), + asn_MAP_cam_ts_GeoPosition_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_GeoPosition_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_GeoPosition = { + "GeoPosition", + "GeoPosition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_GeoPosition_tags_1, + sizeof(asn_DEF_cam_ts_GeoPosition_tags_1) + /sizeof(asn_DEF_cam_ts_GeoPosition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_GeoPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_GeoPosition_tags_1) + /sizeof(asn_DEF_cam_ts_GeoPosition_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_cam_ts_GeoPosition_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_GeoPosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HardShoulderStatus.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HardShoulderStatus.c new file mode 100644 index 000000000..45645adb1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HardShoulderStatus.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HardShoulderStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HardShoulderStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { 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_cam_ts_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_cam_ts_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_HardShoulderStatus_specs_1 = { + asn_MAP_cam_ts_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_HardShoulderStatus_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* 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_cam_ts_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_HardShoulderStatus_tags_1, + sizeof(asn_DEF_cam_ts_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_cam_ts_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_cam_ts_HardShoulderStatus_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) + &asn_PER_type_cam_ts_HardShoulderStatus_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_cam_ts_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..444ce2e41 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_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_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_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) + &asn_PER_type_cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_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) */ + cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-DangerousCurveSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 000000000..aa7361beb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HazardousLocation-DangerousCurveSubCauseCode.h" + +int +cam_ts_HazardousLocation_DangerousCurveSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_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_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_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) + &asn_PER_type_cam_ts_HazardousLocation_DangerousCurveSubCauseCode_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) */ + cam_ts_HazardousLocation_DangerousCurveSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..38779e49a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_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_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_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) + &asn_PER_type_cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_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) */ + cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-SurfaceConditionSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 000000000..aead4966e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_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_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_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) + &asn_PER_type_cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_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) */ + cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Heading.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Heading.c new file mode 100644 index 000000000..51583e6fe --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Heading.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Heading.h" + +asn_TYPE_member_t asn_MBR_cam_ts_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HeadingValue, + 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 */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HeadingConfidence, + 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 */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Heading_specs_1 = { + sizeof(struct cam_ts_Heading), + offsetof(struct cam_ts_Heading, _asn_ctx), + asn_MAP_cam_ts_Heading_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_cam_ts_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_Heading_tags_1, + sizeof(asn_DEF_cam_ts_Heading_tags_1) + /sizeof(asn_DEF_cam_ts_Heading_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Heading_tags_1) + /sizeof(asn_DEF_cam_ts_Heading_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_cam_ts_Heading_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Heading_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingChangeIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingChangeIndication.c new file mode 100644 index 000000000..706046ddf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingChangeIndication.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HeadingChangeIndication.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_HeadingChangeIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_HeadingChangeIndication, direction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TurningDirection, + 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 */ + "direction" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_HeadingChangeIndication, actionDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeTenthOfSecond, + 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 */ + "actionDeltaTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_HeadingChangeIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_HeadingChangeIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionDeltaTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_HeadingChangeIndication_specs_1 = { + sizeof(struct cam_ts_HeadingChangeIndication), + offsetof(struct cam_ts_HeadingChangeIndication, _asn_ctx), + asn_MAP_cam_ts_HeadingChangeIndication_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HeadingChangeIndication = { + "HeadingChangeIndication", + "HeadingChangeIndication", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_HeadingChangeIndication_tags_1, + sizeof(asn_DEF_cam_ts_HeadingChangeIndication_tags_1) + /sizeof(asn_DEF_cam_ts_HeadingChangeIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HeadingChangeIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HeadingChangeIndication_tags_1) + /sizeof(asn_DEF_cam_ts_HeadingChangeIndication_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_cam_ts_HeadingChangeIndication_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_HeadingChangeIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingConfidence.c new file mode 100644 index 000000000..989a4e832 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HeadingConfidence.h" + +int +cam_ts_HeadingConfidence_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HeadingConfidence_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_cam_ts_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HeadingConfidence_tags_1, + sizeof(asn_DEF_cam_ts_HeadingConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HeadingConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_HeadingConfidence_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) + &asn_PER_type_cam_ts_HeadingConfidence_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) */ + cam_ts_HeadingConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingValue.c new file mode 100644 index 000000000..1d4789fe1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeadingValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HeadingValue.h" + +int +cam_ts_HeadingValue_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 <= 3601L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { 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_cam_ts_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HeadingValue_tags_1, + sizeof(asn_DEF_cam_ts_HeadingValue_tags_1) + /sizeof(asn_DEF_cam_ts_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HeadingValue_tags_1) + /sizeof(asn_DEF_cam_ts_HeadingValue_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) + &asn_PER_type_cam_ts_HeadingValue_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) */ + cam_ts_HeadingValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeightLonCarr.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeightLonCarr.c new file mode 100644 index 000000000..43d332c32 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HeightLonCarr.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HeightLonCarr.h" + +int +cam_ts_HeightLonCarr_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 <= 100L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { 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_cam_ts_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HeightLonCarr_tags_1, + sizeof(asn_DEF_cam_ts_HeightLonCarr_tags_1) + /sizeof(asn_DEF_cam_ts_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HeightLonCarr_tags_1) + /sizeof(asn_DEF_cam_ts_HeightLonCarr_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) + &asn_PER_type_cam_ts_HeightLonCarr_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) */ + cam_ts_HeightLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HighFrequencyContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HighFrequencyContainer.c new file mode 100644 index 000000000..d47e3b934 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HighFrequencyContainer.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HighFrequencyContainer.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HighFrequencyContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { 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_cam_ts_HighFrequencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_HighFrequencyContainer, choice.basicVehicleContainerHighFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_BasicVehicleContainerHighFrequency, + 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 */ + "basicVehicleContainerHighFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_HighFrequencyContainer, choice.rsuContainerHighFrequency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RSUContainerHighFrequency, + 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 */ + "rsuContainerHighFrequency" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_HighFrequencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicVehicleContainerHighFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsuContainerHighFrequency */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_HighFrequencyContainer_specs_1 = { + sizeof(struct cam_ts_HighFrequencyContainer), + offsetof(struct cam_ts_HighFrequencyContainer, _asn_ctx), + offsetof(struct cam_ts_HighFrequencyContainer, present), + sizeof(((struct cam_ts_HighFrequencyContainer *)0)->present), + asn_MAP_cam_ts_HighFrequencyContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HighFrequencyContainer = { + "HighFrequencyContainer", + "HighFrequencyContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_HighFrequencyContainer_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_HighFrequencyContainer_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_HighFrequencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HumanPresenceOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..210195159 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HumanPresenceOnTheRoadSubCauseCode.h" + +int +cam_ts_HumanPresenceOnTheRoadSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HumanPresenceOnTheRoadSubCauseCode_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_cam_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HumanPresenceOnTheRoadSubCauseCode_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) + &asn_PER_type_cam_ts_HumanPresenceOnTheRoadSubCauseCode_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) */ + cam_ts_HumanPresenceOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HumanProblemSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HumanProblemSubCauseCode.c new file mode 100644 index 000000000..a67703842 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_HumanProblemSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_HumanProblemSubCauseCode.h" + +int +cam_ts_HumanProblemSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_HumanProblemSubCauseCode_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_cam_ts_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_HumanProblemSubCauseCode_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) + &asn_PER_type_cam_ts_HumanProblemSubCauseCode_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) */ + cam_ts_HumanProblemSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Identifier1B.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Identifier1B.c new file mode 100644 index 000000000..e11601975 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Identifier1B.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Identifier1B.h" + +int +cam_ts_Identifier1B_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Identifier1B_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_cam_ts_Identifier1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Identifier1B = { + "Identifier1B", + "Identifier1B", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Identifier1B_tags_1, + sizeof(asn_DEF_cam_ts_Identifier1B_tags_1) + /sizeof(asn_DEF_cam_ts_Identifier1B_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Identifier1B_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Identifier1B_tags_1) + /sizeof(asn_DEF_cam_ts_Identifier1B_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) + &asn_PER_type_cam_ts_Identifier1B_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) */ + cam_ts_Identifier1B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Identifier2B.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Identifier2B.c new file mode 100644 index 000000000..24e3402af --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Identifier2B.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Identifier2B.h" + +int +cam_ts_Identifier2B_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 <= 65535L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Identifier2B_constr_1 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) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_Identifier2B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Identifier2B = { + "Identifier2B", + "Identifier2B", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Identifier2B_tags_1, + sizeof(asn_DEF_cam_ts_Identifier2B_tags_1) + /sizeof(asn_DEF_cam_ts_Identifier2B_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Identifier2B_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Identifier2B_tags_1) + /sizeof(asn_DEF_cam_ts_Identifier2B_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) + &asn_PER_type_cam_ts_Identifier2B_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) */ + cam_ts_Identifier2B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ImpassabilitySubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ImpassabilitySubCauseCode.c new file mode 100644 index 000000000..0369c9c71 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ImpassabilitySubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ImpassabilitySubCauseCode.h" + +int +cam_ts_ImpassabilitySubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ImpassabilitySubCauseCode_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_cam_ts_ImpassabilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ImpassabilitySubCauseCode = { + "ImpassabilitySubCauseCode", + "ImpassabilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ImpassabilitySubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_ImpassabilitySubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_ImpassabilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ImpassabilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ImpassabilitySubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_ImpassabilitySubCauseCode_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) + &asn_PER_type_cam_ts_ImpassabilitySubCauseCode_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) */ + cam_ts_ImpassabilitySubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InformationQuality.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InformationQuality.c new file mode 100644 index 000000000..1fb8dfcc4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InformationQuality.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_InformationQuality.h" + +int +cam_ts_InformationQuality_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 <= 7L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_InformationQuality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { 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_cam_ts_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_InformationQuality_tags_1, + sizeof(asn_DEF_cam_ts_InformationQuality_tags_1) + /sizeof(asn_DEF_cam_ts_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_InformationQuality_tags_1) + /sizeof(asn_DEF_cam_ts_InformationQuality_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) + &asn_PER_type_cam_ts_InformationQuality_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) */ + cam_ts_InformationQuality_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementChannel.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementChannel.c new file mode 100644 index 000000000..12bb34f9e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementChannel.c @@ -0,0 +1,210 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementChannel.h" + +static int +memb_cam_ts_centreFrequency_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 >= 1L && value <= 99999L)) { + /* 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_cam_ts_channelWidth_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 <= 9999L)) { + /* 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_cam_ts_exponent_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 <= 15L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_centreFrequency_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 1, 99999 } /* (1..99999) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_channelWidth_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_exponent_constr_4 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) */ +asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementChannel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementChannel, centreFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_cam_ts_centreFrequency_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_cam_ts_centreFrequency_constraint_1 + }, + 0, 0, /* No default value */ + "centreFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementChannel, channelWidth), + (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) + &asn_PER_memb_cam_ts_channelWidth_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_cam_ts_channelWidth_constraint_1 + }, + 0, 0, /* No default value */ + "channelWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementChannel, exponent), + (ASN_TAG_CLASS_CONTEXT | (2 << 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) + &asn_PER_memb_cam_ts_exponent_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_cam_ts_exponent_constraint_1 + }, + 0, 0, /* No default value */ + "exponent" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_InterferenceManagementChannel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_InterferenceManagementChannel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* centreFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* channelWidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* exponent */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_InterferenceManagementChannel_specs_1 = { + sizeof(struct cam_ts_InterferenceManagementChannel), + offsetof(struct cam_ts_InterferenceManagementChannel, _asn_ctx), + asn_MAP_cam_ts_InterferenceManagementChannel_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_cam_ts_InterferenceManagementChannel = { + "InterferenceManagementChannel", + "InterferenceManagementChannel", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_InterferenceManagementChannel_tags_1, + sizeof(asn_DEF_cam_ts_InterferenceManagementChannel_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementChannel_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_InterferenceManagementChannel_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_InterferenceManagementChannel_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementChannel_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_cam_ts_InterferenceManagementChannel_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_InterferenceManagementChannel_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementInfo.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementInfo.c new file mode 100644 index 000000000..521baa758 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementInfo.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfo.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_InterferenceManagementInfo_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_cam_ts_InterferenceManagementInfo_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_InterferenceManagementInfoPerChannel, + 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_cam_ts_InterferenceManagementInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_InterferenceManagementInfo_specs_1 = { + sizeof(struct cam_ts_InterferenceManagementInfo), + offsetof(struct cam_ts_InterferenceManagementInfo, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementInfo = { + "InterferenceManagementInfo", + "InterferenceManagementInfo", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_InterferenceManagementInfo_tags_1, + sizeof(asn_DEF_cam_ts_InterferenceManagementInfo_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementInfo_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_InterferenceManagementInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_InterferenceManagementInfo_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementInfo_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) + &asn_PER_type_cam_ts_InterferenceManagementInfo_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_cam_ts_InterferenceManagementInfo_1, + 1, /* Single element */ + &asn_SPC_cam_ts_InterferenceManagementInfo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementInfoPerChannel.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementInfoPerChannel.c new file mode 100644 index 000000000..162611892 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementInfoPerChannel.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementInfoPerChannel.h" + +asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementInfoPerChannel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementInfoPerChannel, interferenceManagementChannel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_InterferenceManagementChannel, + 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 */ + "interferenceManagementChannel" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementInfoPerChannel, interferenceManagementZoneType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_InterferenceManagementZoneType, + 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 */ + "interferenceManagementZoneType" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_InterferenceManagementInfoPerChannel, interferenceManagementMitigationType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MitigationForTechnologies, + 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 */ + "interferenceManagementMitigationType" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_InterferenceManagementInfoPerChannel, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TimestampIts, + 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 */ + "expiryTime" + }, +}; +static const int asn_MAP_cam_ts_InterferenceManagementInfoPerChannel_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_InterferenceManagementInfoPerChannel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_InterferenceManagementInfoPerChannel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interferenceManagementChannel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interferenceManagementZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* interferenceManagementMitigationType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* expiryTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_InterferenceManagementInfoPerChannel_specs_1 = { + sizeof(struct cam_ts_InterferenceManagementInfoPerChannel), + offsetof(struct cam_ts_InterferenceManagementInfoPerChannel, _asn_ctx), + asn_MAP_cam_ts_InterferenceManagementInfoPerChannel_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_cam_ts_InterferenceManagementInfoPerChannel_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementInfoPerChannel = { + "InterferenceManagementInfoPerChannel", + "InterferenceManagementInfoPerChannel", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_InterferenceManagementInfoPerChannel_tags_1, + sizeof(asn_DEF_cam_ts_InterferenceManagementInfoPerChannel_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementInfoPerChannel_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_InterferenceManagementInfoPerChannel_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_InterferenceManagementInfoPerChannel_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementInfoPerChannel_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_cam_ts_InterferenceManagementInfoPerChannel_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_InterferenceManagementInfoPerChannel_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZone.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZone.c new file mode 100644 index 000000000..81aaa6223 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZone.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZone.h" + +asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementZone, zoneDefinition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_InterferenceManagementZoneDefinition, + 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 */ + "zoneDefinition" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementZone, managementInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_InterferenceManagementInfo, + 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 */ + "managementInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_InterferenceManagementZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_InterferenceManagementZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneDefinition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* managementInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_InterferenceManagementZone_specs_1 = { + sizeof(struct cam_ts_InterferenceManagementZone), + offsetof(struct cam_ts_InterferenceManagementZone, _asn_ctx), + asn_MAP_cam_ts_InterferenceManagementZone_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_cam_ts_InterferenceManagementZone = { + "InterferenceManagementZone", + "InterferenceManagementZone", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_InterferenceManagementZone_tags_1, + sizeof(asn_DEF_cam_ts_InterferenceManagementZone_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementZone_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_InterferenceManagementZone_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_InterferenceManagementZone_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementZone_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_cam_ts_InterferenceManagementZone_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_InterferenceManagementZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZoneDefinition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZoneDefinition.c new file mode 100644 index 000000000..3c999f051 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZoneDefinition.c @@ -0,0 +1,163 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneDefinition.h" + +static int +memb_cam_ts_interferenceManagementZoneShape_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_interferenceManagementZoneShape_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { 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_cam_ts_InterferenceManagementZoneDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementZoneDefinition, interferenceManagementZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "interferenceManagementZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_InterferenceManagementZoneDefinition, interferenceManagementZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "interferenceManagementZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_InterferenceManagementZoneDefinition, interferenceManagementZoneId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ProtectedZoneId, + 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 */ + "interferenceManagementZoneId" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_InterferenceManagementZoneDefinition, interferenceManagementZoneShape), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_Shape, + 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) + &asn_PER_memb_cam_ts_interferenceManagementZoneShape_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_cam_ts_interferenceManagementZoneShape_constraint_1 + }, + 0, 0, /* No default value */ + "interferenceManagementZoneShape" + }, +}; +static const int asn_MAP_cam_ts_InterferenceManagementZoneDefinition_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_InterferenceManagementZoneDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_InterferenceManagementZoneDefinition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interferenceManagementZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interferenceManagementZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* interferenceManagementZoneId */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* interferenceManagementZoneShape */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_InterferenceManagementZoneDefinition_specs_1 = { + sizeof(struct cam_ts_InterferenceManagementZoneDefinition), + offsetof(struct cam_ts_InterferenceManagementZoneDefinition, _asn_ctx), + asn_MAP_cam_ts_InterferenceManagementZoneDefinition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_cam_ts_InterferenceManagementZoneDefinition_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementZoneDefinition = { + "InterferenceManagementZoneDefinition", + "InterferenceManagementZoneDefinition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_InterferenceManagementZoneDefinition_tags_1, + sizeof(asn_DEF_cam_ts_InterferenceManagementZoneDefinition_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementZoneDefinition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_InterferenceManagementZoneDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_InterferenceManagementZoneDefinition_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementZoneDefinition_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_cam_ts_InterferenceManagementZoneDefinition_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_InterferenceManagementZoneDefinition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZoneType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZoneType.c new file mode 100644 index 000000000..0fa3dd07e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZoneType.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_InterferenceManagementZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { 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_cam_ts_InterferenceManagementZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" }, + { 2, 11, "unavailable" }, + { 3, 9, "urbanRail" }, + { 4, 16, "satelliteStation" }, + { 5, 10, "fixedLinks" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_cam_ts_InterferenceManagementZoneType_enum2value_1[] = { + 5, /* fixedLinks(5) */ + 0, /* permanentCenDsrcTolling(0) */ + 4, /* satelliteStation(4) */ + 1, /* temporaryCenDsrcTolling(1) */ + 2, /* unavailable(2) */ + 3 /* urbanRail(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_InterferenceManagementZoneType_specs_1 = { + asn_MAP_cam_ts_InterferenceManagementZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_InterferenceManagementZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_InterferenceManagementZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementZoneType = { + "InterferenceManagementZoneType", + "InterferenceManagementZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_InterferenceManagementZoneType_tags_1, + sizeof(asn_DEF_cam_ts_InterferenceManagementZoneType_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementZoneType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_InterferenceManagementZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_InterferenceManagementZoneType_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementZoneType_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) + &asn_PER_type_cam_ts_InterferenceManagementZoneType_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_cam_ts_InterferenceManagementZoneType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZones.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZones.c new file mode 100644 index 000000000..c38f8cbe8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_InterferenceManagementZones.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_InterferenceManagementZones.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_InterferenceManagementZones_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_InterferenceManagementZones_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_InterferenceManagementZone, + 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_cam_ts_InterferenceManagementZones_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_InterferenceManagementZones_specs_1 = { + sizeof(struct cam_ts_InterferenceManagementZones), + offsetof(struct cam_ts_InterferenceManagementZones, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_InterferenceManagementZones = { + "InterferenceManagementZones", + "InterferenceManagementZones", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_InterferenceManagementZones_tags_1, + sizeof(asn_DEF_cam_ts_InterferenceManagementZones_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementZones_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_InterferenceManagementZones_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_InterferenceManagementZones_tags_1) + /sizeof(asn_DEF_cam_ts_InterferenceManagementZones_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) + &asn_PER_type_cam_ts_InterferenceManagementZones_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_cam_ts_InterferenceManagementZones_1, + 1, /* Single element */ + &asn_SPC_cam_ts_InterferenceManagementZones_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IntersectionReferenceId.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IntersectionReferenceId.c new file mode 100644 index 000000000..91f6fd3f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IntersectionReferenceId.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_IntersectionReferenceId.h" + +asn_TYPE_member_t asn_MBR_cam_ts_IntersectionReferenceId_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_IntersectionReferenceId, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier2B, + 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 */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_IntersectionReferenceId, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier2B, + 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 */ + "id" + }, +}; +static const int asn_MAP_cam_ts_IntersectionReferenceId_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_IntersectionReferenceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_IntersectionReferenceId_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_IntersectionReferenceId_specs_1 = { + sizeof(struct cam_ts_IntersectionReferenceId), + offsetof(struct cam_ts_IntersectionReferenceId, _asn_ctx), + asn_MAP_cam_ts_IntersectionReferenceId_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_cam_ts_IntersectionReferenceId_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_IntersectionReferenceId = { + "IntersectionReferenceId", + "IntersectionReferenceId", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_IntersectionReferenceId_tags_1, + sizeof(asn_DEF_cam_ts_IntersectionReferenceId_tags_1) + /sizeof(asn_DEF_cam_ts_IntersectionReferenceId_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_IntersectionReferenceId_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_IntersectionReferenceId_tags_1) + /sizeof(asn_DEF_cam_ts_IntersectionReferenceId_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_cam_ts_IntersectionReferenceId_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_IntersectionReferenceId_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Iso3833VehicleType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Iso3833VehicleType.c new file mode 100644 index 000000000..2032a9fde --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Iso3833VehicleType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Iso3833VehicleType.h" + +int +cam_ts_Iso3833VehicleType_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_Iso3833VehicleType_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_cam_ts_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_cam_ts_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_cam_ts_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_cam_ts_Iso3833VehicleType_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) + &asn_PER_type_cam_ts_Iso3833VehicleType_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) */ + cam_ts_Iso3833VehicleType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IssuerIdentifier.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IssuerIdentifier.c new file mode 100644 index 000000000..97e34851b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IssuerIdentifier.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_IssuerIdentifier.h" + +int +cam_ts_IssuerIdentifier_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 <= 16383L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_IssuerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { 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_cam_ts_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_IssuerIdentifier_tags_1, + sizeof(asn_DEF_cam_ts_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_cam_ts_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_cam_ts_IssuerIdentifier_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) + &asn_PER_type_cam_ts_IssuerIdentifier_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) */ + cam_ts_IssuerIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ItineraryPath.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ItineraryPath.c new file mode 100644 index 000000000..9d5eca6ad --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ItineraryPath.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ItineraryPath.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_ReferencePosition, + 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_cam_ts_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_ItineraryPath_specs_1 = { + sizeof(struct cam_ts_ItineraryPath), + offsetof(struct cam_ts_ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_ItineraryPath_tags_1, + sizeof(asn_DEF_cam_ts_ItineraryPath_tags_1) + /sizeof(asn_DEF_cam_ts_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ItineraryPath_tags_1) + /sizeof(asn_DEF_cam_ts_ItineraryPath_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) + &asn_PER_type_cam_ts_ItineraryPath_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_cam_ts_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_cam_ts_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ItsPduHeader.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ItsPduHeader.c new file mode 100644 index 000000000..4aab77554 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ItsPduHeader.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ItsPduHeader.h" + +asn_TYPE_member_t asn_MBR_cam_ts_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_OrdinalNumber1B, + 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 */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ItsPduHeader, messageId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MessageId, + 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 */ + "messageId" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ItsPduHeader, stationId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "stationId" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ItsPduHeader_specs_1 = { + sizeof(struct cam_ts_ItsPduHeader), + offsetof(struct cam_ts_ItsPduHeader, _asn_ctx), + asn_MAP_cam_ts_ItsPduHeader_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_cam_ts_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ItsPduHeader_tags_1, + sizeof(asn_DEF_cam_ts_ItsPduHeader_tags_1) + /sizeof(asn_DEF_cam_ts_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ItsPduHeader_tags_1) + /sizeof(asn_DEF_cam_ts_ItsPduHeader_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_cam_ts_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IviIdentificationNumber.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IviIdentificationNumber.c new file mode 100644 index 000000000..b8036464b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IviIdentificationNumber.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_IviIdentificationNumber.h" + +int +cam_ts_IviIdentificationNumber_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 <= 32767L) || (value == 8388607L))) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_IviIdentificationNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 23, -1, 1, 8388607 } /* (1..8388607,...) */, + { 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_cam_ts_IviIdentificationNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_IviIdentificationNumber = { + "IviIdentificationNumber", + "IviIdentificationNumber", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_IviIdentificationNumber_tags_1, + sizeof(asn_DEF_cam_ts_IviIdentificationNumber_tags_1) + /sizeof(asn_DEF_cam_ts_IviIdentificationNumber_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_IviIdentificationNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_IviIdentificationNumber_tags_1) + /sizeof(asn_DEF_cam_ts_IviIdentificationNumber_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) + &asn_PER_type_cam_ts_IviIdentificationNumber_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) */ + cam_ts_IviIdentificationNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IvimReference.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IvimReference.c new file mode 100644 index 000000000..939c68552 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IvimReference.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_IvimReference.h" + +asn_TYPE_member_t asn_MBR_cam_ts_IvimReference_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_IvimReference, serviceProviderId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "serviceProviderId" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_IvimReference, iviIdentificationNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_IviIdentificationNumber, + 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 */ + "iviIdentificationNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_IvimReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_IvimReference_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* serviceProviderId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iviIdentificationNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_IvimReference_specs_1 = { + sizeof(struct cam_ts_IvimReference), + offsetof(struct cam_ts_IvimReference, _asn_ctx), + asn_MAP_cam_ts_IvimReference_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_cam_ts_IvimReference = { + "IvimReference", + "IvimReference", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_IvimReference_tags_1, + sizeof(asn_DEF_cam_ts_IvimReference_tags_1) + /sizeof(asn_DEF_cam_ts_IvimReference_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_IvimReference_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_IvimReference_tags_1) + /sizeof(asn_DEF_cam_ts_IvimReference_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_cam_ts_IvimReference_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_IvimReference_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IvimReferences.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IvimReferences.c new file mode 100644 index 000000000..d9d7d1ed7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_IvimReferences.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_IvimReferences.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_IvimReferences_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) */ +static asn_TYPE_member_t asn_MBR_cam_ts_IvimReferences_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_IvimReference, + 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_cam_ts_IvimReferences_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_IvimReferences_specs_1 = { + sizeof(struct cam_ts_IvimReferences), + offsetof(struct cam_ts_IvimReferences, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_IvimReferences = { + "IvimReferences", + "IvimReferences", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_IvimReferences_tags_1, + sizeof(asn_DEF_cam_ts_IvimReferences_tags_1) + /sizeof(asn_DEF_cam_ts_IvimReferences_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_IvimReferences_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_IvimReferences_tags_1) + /sizeof(asn_DEF_cam_ts_IvimReferences_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) + &asn_PER_type_cam_ts_IvimReferences_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_cam_ts_IvimReferences_1, + 1, /* Single element */ + &asn_SPC_cam_ts_IvimReferences_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePosition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePosition.c new file mode 100644 index 000000000..f55abd06b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePosition.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LanePosition.h" + +int +cam_ts_LanePosition_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 <= 14L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..14) */, + { 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_cam_ts_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_LanePosition_tags_1, + sizeof(asn_DEF_cam_ts_LanePosition_tags_1) + /sizeof(asn_DEF_cam_ts_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LanePosition_tags_1) + /sizeof(asn_DEF_cam_ts_LanePosition_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) + &asn_PER_type_cam_ts_LanePosition_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) */ + cam_ts_LanePosition_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionAndType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionAndType.c new file mode 100644 index 000000000..78b321ad2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionAndType.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LanePositionAndType.h" + +static int asn_DFL_3_cmp_0(const void *sptr) { + const cam_ts_LaneType_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) { + cam_ts_LaneType_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_4_cmp_0(const void *sptr) { + const cam_ts_Direction_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_4_set_0(void **sptr) { + cam_ts_Direction_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_cam_ts_LanePositionAndType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionAndType, transversalPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "transversalPosition" + }, + { ATF_NOFLAGS, 2, offsetof(struct cam_ts_LanePositionAndType, laneType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LaneType, + 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 */ + "laneType" + }, + { ATF_NOFLAGS, 1, offsetof(struct cam_ts_LanePositionAndType, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Direction, + 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_4_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_4_set_0, /* Set DEFAULT 0 */ + "direction" + }, +}; +static const int asn_MAP_cam_ts_LanePositionAndType_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_LanePositionAndType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_LanePositionAndType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transversalPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* direction */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LanePositionAndType_specs_1 = { + sizeof(struct cam_ts_LanePositionAndType), + offsetof(struct cam_ts_LanePositionAndType, _asn_ctx), + asn_MAP_cam_ts_LanePositionAndType_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_LanePositionAndType_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LanePositionAndType = { + "LanePositionAndType", + "LanePositionAndType", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_LanePositionAndType_tags_1, + sizeof(asn_DEF_cam_ts_LanePositionAndType_tags_1) + /sizeof(asn_DEF_cam_ts_LanePositionAndType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LanePositionAndType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LanePositionAndType_tags_1) + /sizeof(asn_DEF_cam_ts_LanePositionAndType_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_cam_ts_LanePositionAndType_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_LanePositionAndType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionOptions.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionOptions.c new file mode 100644 index 000000000..5ef2ee4ad --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionOptions.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LanePositionOptions.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LanePositionOptions_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { 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_cam_ts_LanePositionOptions_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionOptions, choice.simplelanePosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "simplelanePosition" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionOptions, choice.simpleLaneType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LaneType, + 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 */ + "simpleLaneType" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionOptions, choice.detailedlanePosition), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LanePositionAndType, + 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 */ + "detailedlanePosition" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionOptions, choice.lanePositionWithLateralDetails), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LanePositionWithLateralDetails, + 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 */ + "lanePositionWithLateralDetails" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionOptions, choice.trafficIslandPosition), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TrafficIslandPosition, + 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 */ + "trafficIslandPosition" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_LanePositionOptions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* simplelanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* simpleLaneType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* detailedlanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* lanePositionWithLateralDetails */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* trafficIslandPosition */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_LanePositionOptions_specs_1 = { + sizeof(struct cam_ts_LanePositionOptions), + offsetof(struct cam_ts_LanePositionOptions, _asn_ctx), + offsetof(struct cam_ts_LanePositionOptions, present), + sizeof(((struct cam_ts_LanePositionOptions *)0)->present), + asn_MAP_cam_ts_LanePositionOptions_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + 5 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LanePositionOptions = { + "LanePositionOptions", + "LanePositionOptions", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_LanePositionOptions_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_LanePositionOptions_1, + 5, /* Elements count */ + &asn_SPC_cam_ts_LanePositionOptions_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionWithLateralDetails.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionWithLateralDetails.c new file mode 100644 index 000000000..64f722510 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LanePositionWithLateralDetails.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LanePositionWithLateralDetails.h" + +static int asn_DFL_3_cmp_0(const void *sptr) { + const cam_ts_LaneType_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) { + cam_ts_LaneType_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_4_cmp_0(const void *sptr) { + const cam_ts_Direction_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_4_set_0(void **sptr) { + cam_ts_Direction_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_cam_ts_LanePositionWithLateralDetails_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionWithLateralDetails, transversalPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "transversalPosition" + }, + { ATF_NOFLAGS, 2, offsetof(struct cam_ts_LanePositionWithLateralDetails, laneType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LaneType, + 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 */ + "laneType" + }, + { ATF_NOFLAGS, 1, offsetof(struct cam_ts_LanePositionWithLateralDetails, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Direction, + 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_4_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_4_set_0, /* Set DEFAULT 0 */ + "direction" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionWithLateralDetails, distanceToLeftBorder), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength9b, + 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 */ + "distanceToLeftBorder" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LanePositionWithLateralDetails, distanceToRightBorder), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength9b, + 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 */ + "distanceToRightBorder" + }, +}; +static const int asn_MAP_cam_ts_LanePositionWithLateralDetails_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_LanePositionWithLateralDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_LanePositionWithLateralDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transversalPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distanceToLeftBorder */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* distanceToRightBorder */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LanePositionWithLateralDetails_specs_1 = { + sizeof(struct cam_ts_LanePositionWithLateralDetails), + offsetof(struct cam_ts_LanePositionWithLateralDetails, _asn_ctx), + asn_MAP_cam_ts_LanePositionWithLateralDetails_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_cam_ts_LanePositionWithLateralDetails_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LanePositionWithLateralDetails = { + "LanePositionWithLateralDetails", + "LanePositionWithLateralDetails", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_LanePositionWithLateralDetails_tags_1, + sizeof(asn_DEF_cam_ts_LanePositionWithLateralDetails_tags_1) + /sizeof(asn_DEF_cam_ts_LanePositionWithLateralDetails_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LanePositionWithLateralDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LanePositionWithLateralDetails_tags_1) + /sizeof(asn_DEF_cam_ts_LanePositionWithLateralDetails_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_cam_ts_LanePositionWithLateralDetails_1, + 5, /* Elements count */ + &asn_SPC_cam_ts_LanePositionWithLateralDetails_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LaneType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LaneType.c new file mode 100644 index 000000000..d47fe3117 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LaneType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LaneType.h" + +int +cam_ts_LaneType_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 <= 31L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LaneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { 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_cam_ts_LaneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LaneType = { + "LaneType", + "LaneType", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_LaneType_tags_1, + sizeof(asn_DEF_cam_ts_LaneType_tags_1) + /sizeof(asn_DEF_cam_ts_LaneType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LaneType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LaneType_tags_1) + /sizeof(asn_DEF_cam_ts_LaneType_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) + &asn_PER_type_cam_ts_LaneType_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) */ + cam_ts_LaneType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LaneWidth.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LaneWidth.c new file mode 100644 index 000000000..cf60fea9f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LaneWidth.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LaneWidth.h" + +int +cam_ts_LaneWidth_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 <= 1023L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LaneWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { 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_cam_ts_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_LaneWidth_tags_1, + sizeof(asn_DEF_cam_ts_LaneWidth_tags_1) + /sizeof(asn_DEF_cam_ts_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LaneWidth_tags_1) + /sizeof(asn_DEF_cam_ts_LaneWidth_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) + &asn_PER_type_cam_ts_LaneWidth_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) */ + cam_ts_LaneWidth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LateralAcceleration.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LateralAcceleration.c new file mode 100644 index 000000000..b451df7ca --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LateralAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LateralAccelerationValue, + 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 */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationConfidence, + 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 */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LateralAcceleration_specs_1 = { + sizeof(struct cam_ts_LateralAcceleration), + offsetof(struct cam_ts_LateralAcceleration, _asn_ctx), + asn_MAP_cam_ts_LateralAcceleration_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_cam_ts_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_LateralAcceleration_tags_1, + sizeof(asn_DEF_cam_ts_LateralAcceleration_tags_1) + /sizeof(asn_DEF_cam_ts_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LateralAcceleration_tags_1) + /sizeof(asn_DEF_cam_ts_LateralAcceleration_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_cam_ts_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LateralAccelerationValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LateralAccelerationValue.c new file mode 100644 index 000000000..2c65b8ff1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LateralAccelerationValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LateralAccelerationValue.h" + +int +cam_ts_LateralAccelerationValue_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 >= -160L && value <= 161L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { 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_cam_ts_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_cam_ts_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_cam_ts_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_cam_ts_LateralAccelerationValue_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) + &asn_PER_type_cam_ts_LateralAccelerationValue_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) */ + cam_ts_LateralAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Latitude.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Latitude.c new file mode 100644 index 000000000..ae7accd0b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Latitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Latitude.h" + +int +cam_ts_Latitude_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 >= -900000000L && value <= 900000001L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Latitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 31, -1, -900000000, 900000001 } /* (-900000000..900000001) */, + { 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_cam_ts_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Latitude_tags_1, + sizeof(asn_DEF_cam_ts_Latitude_tags_1) + /sizeof(asn_DEF_cam_ts_Latitude_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Latitude_tags_1) + /sizeof(asn_DEF_cam_ts_Latitude_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) + &asn_PER_type_cam_ts_Latitude_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) */ + cam_ts_Latitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LightBarSirenInUse.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LightBarSirenInUse.c new file mode 100644 index 000000000..d3adae1b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LightBarSirenInUse.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LightBarSirenInUse.h" + +int +cam_ts_LightBarSirenInUse_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 == 2UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LightBarSirenInUse_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 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_cam_ts_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_cam_ts_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_cam_ts_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_cam_ts_LightBarSirenInUse_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) + &asn_PER_type_cam_ts_LightBarSirenInUse_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) */ + cam_ts_LightBarSirenInUse_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Longitude.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Longitude.c new file mode 100644 index 000000000..1b915322d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Longitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Longitude.h" + +int +cam_ts_Longitude_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 >= -1800000000L && value <= 1800000001L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..1800000001) */, + { 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_cam_ts_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Longitude_tags_1, + sizeof(asn_DEF_cam_ts_Longitude_tags_1) + /sizeof(asn_DEF_cam_ts_Longitude_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Longitude_tags_1) + /sizeof(asn_DEF_cam_ts_Longitude_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) + &asn_PER_type_cam_ts_Longitude_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) */ + cam_ts_Longitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalAcceleration.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalAcceleration.c new file mode 100644 index 000000000..370b37ec8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LongitudinalAccelerationValue, + 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 */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationConfidence, + 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 */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LongitudinalAcceleration_specs_1 = { + sizeof(struct cam_ts_LongitudinalAcceleration), + offsetof(struct cam_ts_LongitudinalAcceleration, _asn_ctx), + asn_MAP_cam_ts_LongitudinalAcceleration_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_cam_ts_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_cam_ts_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalAcceleration_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_cam_ts_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalAccelerationValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalAccelerationValue.c new file mode 100644 index 000000000..0a92331fa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalAccelerationValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalAccelerationValue.h" + +int +cam_ts_LongitudinalAccelerationValue_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 >= -160L && value <= 161L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { 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_cam_ts_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_cam_ts_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalAccelerationValue_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) + &asn_PER_type_cam_ts_LongitudinalAccelerationValue_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) */ + cam_ts_LongitudinalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePosition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePosition.c new file mode 100644 index 000000000..eca57bf32 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePosition.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePosition.h" + +asn_TYPE_member_t asn_MBR_cam_ts_LongitudinalLanePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LongitudinalLanePosition, longitudinalLanePositionValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LongitudinalLanePositionValue, + 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 */ + "longitudinalLanePositionValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LongitudinalLanePosition, longitudinalLanePositionConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LongitudinalLanePositionConfidence, + 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 */ + "longitudinalLanePositionConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_LongitudinalLanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_LongitudinalLanePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalLanePositionValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalLanePositionConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LongitudinalLanePosition_specs_1 = { + sizeof(struct cam_ts_LongitudinalLanePosition), + offsetof(struct cam_ts_LongitudinalLanePosition, _asn_ctx), + asn_MAP_cam_ts_LongitudinalLanePosition_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_cam_ts_LongitudinalLanePosition = { + "LongitudinalLanePosition", + "LongitudinalLanePosition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_LongitudinalLanePosition_tags_1, + sizeof(asn_DEF_cam_ts_LongitudinalLanePosition_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalLanePosition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LongitudinalLanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LongitudinalLanePosition_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalLanePosition_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_cam_ts_LongitudinalLanePosition_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_LongitudinalLanePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePositionConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePositionConfidence.c new file mode 100644 index 000000000..a1ed8cc06 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePositionConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionConfidence.h" + +int +cam_ts_LongitudinalLanePositionConfidence_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 <= 1023L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LongitudinalLanePositionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { 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_cam_ts_LongitudinalLanePositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LongitudinalLanePositionConfidence = { + "LongitudinalLanePositionConfidence", + "LongitudinalLanePositionConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_LongitudinalLanePositionConfidence_tags_1, + sizeof(asn_DEF_cam_ts_LongitudinalLanePositionConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalLanePositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LongitudinalLanePositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LongitudinalLanePositionConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalLanePositionConfidence_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) + &asn_PER_type_cam_ts_LongitudinalLanePositionConfidence_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) */ + cam_ts_LongitudinalLanePositionConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePositionValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePositionValue.c new file mode 100644 index 000000000..d61d58db4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LongitudinalLanePositionValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LongitudinalLanePositionValue.h" + +int +cam_ts_LongitudinalLanePositionValue_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 <= 32767L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LongitudinalLanePositionValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 32767 } /* (0..32767) */, + { 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_cam_ts_LongitudinalLanePositionValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LongitudinalLanePositionValue = { + "LongitudinalLanePositionValue", + "LongitudinalLanePositionValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_LongitudinalLanePositionValue_tags_1, + sizeof(asn_DEF_cam_ts_LongitudinalLanePositionValue_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalLanePositionValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LongitudinalLanePositionValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LongitudinalLanePositionValue_tags_1) + /sizeof(asn_DEF_cam_ts_LongitudinalLanePositionValue_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) + &asn_PER_type_cam_ts_LongitudinalLanePositionValue_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) */ + cam_ts_LongitudinalLanePositionValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowFrequencyContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowFrequencyContainer.c new file mode 100644 index 000000000..2f73de3d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowFrequencyContainer.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LowFrequencyContainer.h" + +static int +memb_cam_ts_basicVehicleContainerLowFrequency_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_basicVehicleContainerLowFrequency_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LowFrequencyContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { 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_cam_ts_LowFrequencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LowFrequencyContainer, choice.basicVehicleContainerLowFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_BasicVehicleContainerLowFrequency, + 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) + &asn_PER_memb_cam_ts_basicVehicleContainerLowFrequency_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_cam_ts_basicVehicleContainerLowFrequency_constraint_1 + }, + 0, 0, /* No default value */ + "basicVehicleContainerLowFrequency" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_LowFrequencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* basicVehicleContainerLowFrequency */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_LowFrequencyContainer_specs_1 = { + sizeof(struct cam_ts_LowFrequencyContainer), + offsetof(struct cam_ts_LowFrequencyContainer, _asn_ctx), + offsetof(struct cam_ts_LowFrequencyContainer, present), + sizeof(((struct cam_ts_LowFrequencyContainer *)0)->present), + asn_MAP_cam_ts_LowFrequencyContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LowFrequencyContainer = { + "LowFrequencyContainer", + "LowFrequencyContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_LowFrequencyContainer_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_LowFrequencyContainer_1, + 1, /* Elements count */ + &asn_SPC_cam_ts_LowFrequencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrices.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrices.c new file mode 100644 index 000000000..943f7ad28 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrices.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrices.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_constr_1 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) */ +asn_TYPE_member_t asn_MBR_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix, + 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_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_specs_1 = { + sizeof(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrices), + offsetof(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrices, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices = { + "LowerTriangularPositiveSemidefiniteMatrices", + "LowerTriangularPositiveSemidefiniteMatrices", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_tags_1, + sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_tags_1) + /sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_tags_1) + /sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_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) + &asn_PER_type_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_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_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_1, + 1, /* Single element */ + &asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrices_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrix.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrix.c new file mode 100644 index 000000000..c856c84d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrix.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrix.h" + +asn_TYPE_member_t asn_MBR_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrix, componentsIncludedIntheMatrix), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MatrixIncludedComponents, + 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 */ + "componentsIncludedIntheMatrix" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrix, matrix), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns, + 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 */ + "matrix" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* componentsIncludedIntheMatrix */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* matrix */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_specs_1 = { + sizeof(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrix), + offsetof(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrix, _asn_ctx), + asn_MAP_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_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_cam_ts_LowerTriangularPositiveSemidefiniteMatrix = { + "LowerTriangularPositiveSemidefiniteMatrix", + "LowerTriangularPositiveSemidefiniteMatrix", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_tags_1, + sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_tags_1) + /sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_tags_1) + /sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_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_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrix_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns.c new file mode 100644 index 000000000..add763a5b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 13 } /* (SIZE(1..13,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_CorrelationColumn, + 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_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_specs_1 = { + sizeof(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns), + offsetof(struct cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns = { + "LowerTriangularPositiveSemidefiniteMatrixColumns", + "LowerTriangularPositiveSemidefiniteMatrixColumns", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1, + sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1) + /sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1) + /sizeof(asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_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) + &asn_PER_type_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_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_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_1, + 1, /* Single element */ + &asn_SPC_cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapPosition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapPosition.c new file mode 100644 index 000000000..2d12b9c31 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapPosition.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MapPosition.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MapPosition_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_cam_ts_MapPosition_1[] = { + { ATF_POINTER, 4, offsetof(struct cam_ts_MapPosition, mapReference), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_MapReference, + 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 */ + "mapReference" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_MapPosition, laneId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier1B, + 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 */ + "laneId" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_MapPosition, connectionId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier1B, + 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 */ + "connectionId" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_MapPosition, longitudinalLanePosition), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LongitudinalLanePosition, + 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 */ + "longitudinalLanePosition" + }, +}; +static const int asn_MAP_cam_ts_MapPosition_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_MapPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_MapPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mapReference */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionId */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* longitudinalLanePosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MapPosition_specs_1 = { + sizeof(struct cam_ts_MapPosition), + offsetof(struct cam_ts_MapPosition, _asn_ctx), + asn_MAP_cam_ts_MapPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_cam_ts_MapPosition_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MapPosition = { + "MapPosition", + "MapPosition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_MapPosition_tags_1, + sizeof(asn_DEF_cam_ts_MapPosition_tags_1) + /sizeof(asn_DEF_cam_ts_MapPosition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MapPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MapPosition_tags_1) + /sizeof(asn_DEF_cam_ts_MapPosition_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) + &asn_PER_type_cam_ts_MapPosition_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_constraint + }, + asn_MBR_cam_ts_MapPosition_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_MapPosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapReference.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapReference.c new file mode 100644 index 000000000..fdb0fedc1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapReference.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MapReference.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MapReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_MapReference_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MapReference, choice.roadsegment), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RoadSegmentReferenceId, + 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 */ + "roadsegment" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MapReference, choice.intersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_IntersectionReferenceId, + 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 */ + "intersection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_MapReference_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadsegment */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* intersection */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_MapReference_specs_1 = { + sizeof(struct cam_ts_MapReference), + offsetof(struct cam_ts_MapReference, _asn_ctx), + offsetof(struct cam_ts_MapReference, present), + sizeof(((struct cam_ts_MapReference *)0)->present), + asn_MAP_cam_ts_MapReference_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MapReference = { + "MapReference", + "MapReference", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_MapReference_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_MapReference_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_MapReference_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapReferences.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapReferences.c new file mode 100644 index 000000000..d1d97c3c5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapReferences.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MapReferences.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_MapReferences_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) */ +static asn_TYPE_member_t asn_MBR_cam_ts_MapReferences_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_cam_ts_MapReference, + 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_cam_ts_MapReferences_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_MapReferences_specs_1 = { + sizeof(struct cam_ts_MapReferences), + offsetof(struct cam_ts_MapReferences, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MapReferences = { + "MapReferences", + "MapReferences", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_MapReferences_tags_1, + sizeof(asn_DEF_cam_ts_MapReferences_tags_1) + /sizeof(asn_DEF_cam_ts_MapReferences_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MapReferences_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MapReferences_tags_1) + /sizeof(asn_DEF_cam_ts_MapReferences_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) + &asn_PER_type_cam_ts_MapReferences_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_cam_ts_MapReferences_1, + 1, /* Single element */ + &asn_SPC_cam_ts_MapReferences_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemConfiguration.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemConfiguration.c new file mode 100644 index 000000000..f93ebd0e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemConfiguration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MapemConfiguration.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MapemConfiguration_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_cam_ts_MapemConfiguration_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_MapemElementReference, + 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_cam_ts_MapemConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_MapemConfiguration_specs_1 = { + sizeof(struct cam_ts_MapemConfiguration), + offsetof(struct cam_ts_MapemConfiguration, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MapemConfiguration = { + "MapemConfiguration", + "MapemConfiguration", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_MapemConfiguration_tags_1, + sizeof(asn_DEF_cam_ts_MapemConfiguration_tags_1) + /sizeof(asn_DEF_cam_ts_MapemConfiguration_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MapemConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MapemConfiguration_tags_1) + /sizeof(asn_DEF_cam_ts_MapemConfiguration_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) + &asn_PER_type_cam_ts_MapemConfiguration_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_cam_ts_MapemConfiguration_1, + 1, /* Single element */ + &asn_SPC_cam_ts_MapemConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemConnectionList.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemConnectionList.c new file mode 100644 index 000000000..165a8bad0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemConnectionList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MapemConnectionList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MapemConnectionList_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_cam_ts_MapemConnectionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_cam_ts_Identifier1B, + 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_cam_ts_MapemConnectionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_MapemConnectionList_specs_1 = { + sizeof(struct cam_ts_MapemConnectionList), + offsetof(struct cam_ts_MapemConnectionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MapemConnectionList = { + "MapemConnectionList", + "MapemConnectionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_MapemConnectionList_tags_1, + sizeof(asn_DEF_cam_ts_MapemConnectionList_tags_1) + /sizeof(asn_DEF_cam_ts_MapemConnectionList_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MapemConnectionList_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MapemConnectionList_tags_1) + /sizeof(asn_DEF_cam_ts_MapemConnectionList_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) + &asn_PER_type_cam_ts_MapemConnectionList_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_cam_ts_MapemConnectionList_1, + 1, /* Single element */ + &asn_SPC_cam_ts_MapemConnectionList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemElementReference.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemElementReference.c new file mode 100644 index 000000000..1d6d2ddd8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemElementReference.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MapemElementReference.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MapemElementReference_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_cam_ts_MapemElementReference_1[] = { + { ATF_POINTER, 3, offsetof(struct cam_ts_MapemElementReference, mapReference), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_MapReference, + 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 */ + "mapReference" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_MapemElementReference, laneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MapemLaneList, + 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 */ + "laneIds" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_MapemElementReference, connectionIds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MapemConnectionList, + 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 */ + "connectionIds" + }, +}; +static const int asn_MAP_cam_ts_MapemElementReference_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_MapemElementReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_MapemElementReference_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mapReference */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connectionIds */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MapemElementReference_specs_1 = { + sizeof(struct cam_ts_MapemElementReference), + offsetof(struct cam_ts_MapemElementReference, _asn_ctx), + asn_MAP_cam_ts_MapemElementReference_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_MapemElementReference_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MapemElementReference = { + "MapemElementReference", + "MapemElementReference", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_MapemElementReference_tags_1, + sizeof(asn_DEF_cam_ts_MapemElementReference_tags_1) + /sizeof(asn_DEF_cam_ts_MapemElementReference_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MapemElementReference_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MapemElementReference_tags_1) + /sizeof(asn_DEF_cam_ts_MapemElementReference_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) + &asn_PER_type_cam_ts_MapemElementReference_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_constraint + }, + asn_MBR_cam_ts_MapemElementReference_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_MapemElementReference_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemLaneList.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemLaneList.c new file mode 100644 index 000000000..5ea7056d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MapemLaneList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MapemLaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MapemLaneList_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_cam_ts_MapemLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_cam_ts_Identifier1B, + 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_cam_ts_MapemLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_MapemLaneList_specs_1 = { + sizeof(struct cam_ts_MapemLaneList), + offsetof(struct cam_ts_MapemLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MapemLaneList = { + "MapemLaneList", + "MapemLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_MapemLaneList_tags_1, + sizeof(asn_DEF_cam_ts_MapemLaneList_tags_1) + /sizeof(asn_DEF_cam_ts_MapemLaneList_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MapemLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MapemLaneList_tags_1) + /sizeof(asn_DEF_cam_ts_MapemLaneList_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) + &asn_PER_type_cam_ts_MapemLaneList_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_cam_ts_MapemLaneList_1, + 1, /* Single element */ + &asn_SPC_cam_ts_MapemLaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MatrixIncludedComponents.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MatrixIncludedComponents.c new file mode 100644 index 000000000..a68e69fd4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MatrixIncludedComponents.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MatrixIncludedComponents.h" + +int +cam_ts_MatrixIncludedComponents_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 == 13UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MatrixIncludedComponents_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 13, 13 } /* (SIZE(13..13,...)) */, + 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_cam_ts_MatrixIncludedComponents_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MatrixIncludedComponents = { + "MatrixIncludedComponents", + "MatrixIncludedComponents", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_MatrixIncludedComponents_tags_1, + sizeof(asn_DEF_cam_ts_MatrixIncludedComponents_tags_1) + /sizeof(asn_DEF_cam_ts_MatrixIncludedComponents_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MatrixIncludedComponents_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MatrixIncludedComponents_tags_1) + /sizeof(asn_DEF_cam_ts_MatrixIncludedComponents_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) + &asn_PER_type_cam_ts_MatrixIncludedComponents_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) */ + cam_ts_MatrixIncludedComponents_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageId.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageId.c new file mode 100644 index 000000000..5b5d6ebdb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageId.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MessageId.h" + +int +cam_ts_MessageId_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MessageId_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_cam_ts_MessageId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MessageId = { + "MessageId", + "MessageId", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_MessageId_tags_1, + sizeof(asn_DEF_cam_ts_MessageId_tags_1) + /sizeof(asn_DEF_cam_ts_MessageId_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MessageId_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MessageId_tags_1) + /sizeof(asn_DEF_cam_ts_MessageId_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) + &asn_PER_type_cam_ts_MessageId_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) */ + cam_ts_MessageId_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageRateHz.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageRateHz.c new file mode 100644 index 000000000..7d4fffaa9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageRateHz.c @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MessageRateHz.h" + +static int +memb_cam_ts_mantissa_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 >= 1L && value <= 100L)) { + /* 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_cam_ts_exponent_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 >= -5L && value <= 2L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_mantissa_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_exponent_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, -5, 2 } /* (-5..2) */, + { 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_cam_ts_MessageRateHz_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MessageRateHz, mantissa), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_cam_ts_mantissa_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_cam_ts_mantissa_constraint_1 + }, + 0, 0, /* No default value */ + "mantissa" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MessageRateHz, exponent), + (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) + &asn_PER_memb_cam_ts_exponent_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_cam_ts_exponent_constraint_1 + }, + 0, 0, /* No default value */ + "exponent" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_MessageRateHz_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_MessageRateHz_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mantissa */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* exponent */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MessageRateHz_specs_1 = { + sizeof(struct cam_ts_MessageRateHz), + offsetof(struct cam_ts_MessageRateHz, _asn_ctx), + asn_MAP_cam_ts_MessageRateHz_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_cam_ts_MessageRateHz = { + "MessageRateHz", + "MessageRateHz", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_MessageRateHz_tags_1, + sizeof(asn_DEF_cam_ts_MessageRateHz_tags_1) + /sizeof(asn_DEF_cam_ts_MessageRateHz_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MessageRateHz_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MessageRateHz_tags_1) + /sizeof(asn_DEF_cam_ts_MessageRateHz_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_cam_ts_MessageRateHz_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_MessageRateHz_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageSegmentationInfo.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageSegmentationInfo.c new file mode 100644 index 000000000..bfff3a64d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MessageSegmentationInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MessageSegmentationInfo.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_MessageSegmentationInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MessageSegmentationInfo, totalMsgNo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CardinalNumber3b, + 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 */ + "totalMsgNo" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MessageSegmentationInfo, thisMsgNo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_OrdinalNumber3b, + 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 */ + "thisMsgNo" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_MessageSegmentationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_MessageSegmentationInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* totalMsgNo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* thisMsgNo */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MessageSegmentationInfo_specs_1 = { + sizeof(struct cam_ts_MessageSegmentationInfo), + offsetof(struct cam_ts_MessageSegmentationInfo, _asn_ctx), + asn_MAP_cam_ts_MessageSegmentationInfo_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_cam_ts_MessageSegmentationInfo = { + "MessageSegmentationInfo", + "MessageSegmentationInfo", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_MessageSegmentationInfo_tags_1, + sizeof(asn_DEF_cam_ts_MessageSegmentationInfo_tags_1) + /sizeof(asn_DEF_cam_ts_MessageSegmentationInfo_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MessageSegmentationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MessageSegmentationInfo_tags_1) + /sizeof(asn_DEF_cam_ts_MessageSegmentationInfo_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_cam_ts_MessageSegmentationInfo_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_MessageSegmentationInfo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MetaInformation.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MetaInformation.c new file mode 100644 index 000000000..234f1c9b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MetaInformation.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MetaInformation.h" + +asn_TYPE_member_t asn_MBR_cam_ts_MetaInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MetaInformation, usedDetectionInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SensorTypes, + 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 */ + "usedDetectionInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MetaInformation, usedStoredInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StoredInformationType, + 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 */ + "usedStoredInformation" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_MetaInformation, confidenceValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ConfidenceLevel, + 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 */ + "confidenceValue" + }, +}; +static const int asn_MAP_cam_ts_MetaInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_MetaInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_MetaInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* usedDetectionInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* usedStoredInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* confidenceValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MetaInformation_specs_1 = { + sizeof(struct cam_ts_MetaInformation), + offsetof(struct cam_ts_MetaInformation, _asn_ctx), + asn_MAP_cam_ts_MetaInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_MetaInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MetaInformation = { + "MetaInformation", + "MetaInformation", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_MetaInformation_tags_1, + sizeof(asn_DEF_cam_ts_MetaInformation_tags_1) + /sizeof(asn_DEF_cam_ts_MetaInformation_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MetaInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MetaInformation_tags_1) + /sizeof(asn_DEF_cam_ts_MetaInformation_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_cam_ts_MetaInformation_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_MetaInformation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MitigationForTechnologies.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MitigationForTechnologies.c new file mode 100644 index 000000000..53c999ee0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MitigationForTechnologies.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MitigationForTechnologies.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_MitigationForTechnologies_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_cam_ts_MitigationForTechnologies_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_MitigationPerTechnologyClass, + 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_cam_ts_MitigationForTechnologies_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_MitigationForTechnologies_specs_1 = { + sizeof(struct cam_ts_MitigationForTechnologies), + offsetof(struct cam_ts_MitigationForTechnologies, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MitigationForTechnologies = { + "MitigationForTechnologies", + "MitigationForTechnologies", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_MitigationForTechnologies_tags_1, + sizeof(asn_DEF_cam_ts_MitigationForTechnologies_tags_1) + /sizeof(asn_DEF_cam_ts_MitigationForTechnologies_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MitigationForTechnologies_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MitigationForTechnologies_tags_1) + /sizeof(asn_DEF_cam_ts_MitigationForTechnologies_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) + &asn_PER_type_cam_ts_MitigationForTechnologies_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_cam_ts_MitigationForTechnologies_1, + 1, /* Single element */ + &asn_SPC_cam_ts_MitigationForTechnologies_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MitigationPerTechnologyClass.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MitigationPerTechnologyClass.c new file mode 100644 index 000000000..997c1aec9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_MitigationPerTechnologyClass.c @@ -0,0 +1,286 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_MitigationPerTechnologyClass.h" + +static int +memb_cam_ts_lowDutyCycle_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 <= 10000L)) { + /* 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_cam_ts_powerReduction_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 <= 30L)) { + /* 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_cam_ts_dmcToffLimit_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 <= 1200L)) { + /* 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_cam_ts_dmcTonLimit_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 <= 20L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_lowDutyCycle_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10000 } /* (0..10000) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_powerReduction_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_dmcToffLimit_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1200 } /* (0..1200) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_dmcTonLimit_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 20 } /* (0..20) */, + { 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_cam_ts_MitigationPerTechnologyClass_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_MitigationPerTechnologyClass, accessTechnologyClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccessTechnologyClass, + 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 */ + "accessTechnologyClass" + }, + { ATF_POINTER, 4, offsetof(struct cam_ts_MitigationPerTechnologyClass, lowDutyCycle), + (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) + &asn_PER_memb_cam_ts_lowDutyCycle_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_cam_ts_lowDutyCycle_constraint_1 + }, + 0, 0, /* No default value */ + "lowDutyCycle" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_MitigationPerTechnologyClass, powerReduction), + (ASN_TAG_CLASS_CONTEXT | (2 << 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) + &asn_PER_memb_cam_ts_powerReduction_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_cam_ts_powerReduction_constraint_1 + }, + 0, 0, /* No default value */ + "powerReduction" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_MitigationPerTechnologyClass, dmcToffLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 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) + &asn_PER_memb_cam_ts_dmcToffLimit_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_cam_ts_dmcToffLimit_constraint_1 + }, + 0, 0, /* No default value */ + "dmcToffLimit" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_MitigationPerTechnologyClass, dmcTonLimit), + (ASN_TAG_CLASS_CONTEXT | (4 << 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) + &asn_PER_memb_cam_ts_dmcTonLimit_constr_6, +#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_cam_ts_dmcTonLimit_constraint_1 + }, + 0, 0, /* No default value */ + "dmcTonLimit" + }, +}; +static const int asn_MAP_cam_ts_MitigationPerTechnologyClass_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_MitigationPerTechnologyClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_MitigationPerTechnologyClass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accessTechnologyClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lowDutyCycle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* powerReduction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dmcToffLimit */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* dmcTonLimit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_MitigationPerTechnologyClass_specs_1 = { + sizeof(struct cam_ts_MitigationPerTechnologyClass), + offsetof(struct cam_ts_MitigationPerTechnologyClass, _asn_ctx), + asn_MAP_cam_ts_MitigationPerTechnologyClass_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_cam_ts_MitigationPerTechnologyClass_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_MitigationPerTechnologyClass = { + "MitigationPerTechnologyClass", + "MitigationPerTechnologyClass", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_MitigationPerTechnologyClass_tags_1, + sizeof(asn_DEF_cam_ts_MitigationPerTechnologyClass_tags_1) + /sizeof(asn_DEF_cam_ts_MitigationPerTechnologyClass_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_MitigationPerTechnologyClass_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_MitigationPerTechnologyClass_tags_1) + /sizeof(asn_DEF_cam_ts_MitigationPerTechnologyClass_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_cam_ts_MitigationPerTechnologyClass_1, + 5, /* Elements count */ + &asn_SPC_cam_ts_MitigationPerTechnologyClass_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_NumberOfOccupants.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_NumberOfOccupants.c new file mode 100644 index 000000000..9d6a53104 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_NumberOfOccupants.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_NumberOfOccupants.h" + +int +cam_ts_NumberOfOccupants_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 <= 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_NumberOfOccupants_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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 const ber_tlv_tag_t asn_DEF_cam_ts_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_NumberOfOccupants_tags_1, + sizeof(asn_DEF_cam_ts_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_cam_ts_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_cam_ts_NumberOfOccupants_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) + &asn_PER_type_cam_ts_NumberOfOccupants_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) */ + cam_ts_NumberOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClass.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClass.c new file mode 100644 index 000000000..3e3b08957 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClass.c @@ -0,0 +1,197 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ObjectClass.h" + +static int +memb_cam_ts_vehicleSubClass_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 >= 5L && value <= 11L) || (value == 14L))) { + /* 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_cam_ts_groupSubClass_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_vehicleSubClass_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 14 } /* (0..14) */, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_groupSubClass_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ObjectClass_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) */ +asn_TYPE_member_t asn_MBR_cam_ts_ObjectClass_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ObjectClass, choice.vehicleSubClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TrafficParticipantType, + 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) + &asn_PER_memb_cam_ts_vehicleSubClass_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_cam_ts_vehicleSubClass_constraint_1 + }, + 0, 0, /* No default value */ + "vehicleSubClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ObjectClass, choice.vruSubClass), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_VruProfileAndSubprofile, + 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 */ + "vruSubClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ObjectClass, choice.groupSubClass), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VruClusterInformation, + 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) + &asn_PER_memb_cam_ts_groupSubClass_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_cam_ts_groupSubClass_constraint_1 + }, + 0, 0, /* No default value */ + "groupSubClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ObjectClass, choice.otherSubClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_OtherSubClass, + 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 */ + "otherSubClass" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ObjectClass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleSubClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vruSubClass */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* groupSubClass */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* otherSubClass */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_ObjectClass_specs_1 = { + sizeof(struct cam_ts_ObjectClass), + offsetof(struct cam_ts_ObjectClass, _asn_ctx), + offsetof(struct cam_ts_ObjectClass, present), + sizeof(((struct cam_ts_ObjectClass *)0)->present), + asn_MAP_cam_ts_ObjectClass_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectClass = { + "ObjectClass", + "ObjectClass", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_ObjectClass_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_ObjectClass_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_ObjectClass_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClassDescription.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClassDescription.c new file mode 100644 index 000000000..9d3596eed --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClassDescription.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ObjectClassDescription.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ObjectClassDescription_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_cam_ts_ObjectClassDescription_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_ObjectClassWithConfidence, + 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_cam_ts_ObjectClassDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_ObjectClassDescription_specs_1 = { + sizeof(struct cam_ts_ObjectClassDescription), + offsetof(struct cam_ts_ObjectClassDescription, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectClassDescription = { + "ObjectClassDescription", + "ObjectClassDescription", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_ObjectClassDescription_tags_1, + sizeof(asn_DEF_cam_ts_ObjectClassDescription_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectClassDescription_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ObjectClassDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ObjectClassDescription_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectClassDescription_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) + &asn_PER_type_cam_ts_ObjectClassDescription_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_cam_ts_ObjectClassDescription_1, + 1, /* Single element */ + &asn_SPC_cam_ts_ObjectClassDescription_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClassWithConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClassWithConfidence.c new file mode 100644 index 000000000..b0823d972 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectClassWithConfidence.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ObjectClassWithConfidence.h" + +asn_TYPE_member_t asn_MBR_cam_ts_ObjectClassWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ObjectClassWithConfidence, objectClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_ObjectClass, + 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 */ + "objectClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ObjectClassWithConfidence, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ConfidenceLevel, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_ObjectClassWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ObjectClassWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* objectClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ObjectClassWithConfidence_specs_1 = { + sizeof(struct cam_ts_ObjectClassWithConfidence), + offsetof(struct cam_ts_ObjectClassWithConfidence, _asn_ctx), + asn_MAP_cam_ts_ObjectClassWithConfidence_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_cam_ts_ObjectClassWithConfidence = { + "ObjectClassWithConfidence", + "ObjectClassWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ObjectClassWithConfidence_tags_1, + sizeof(asn_DEF_cam_ts_ObjectClassWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectClassWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ObjectClassWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ObjectClassWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectClassWithConfidence_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_cam_ts_ObjectClassWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_ObjectClassWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimension.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimension.c new file mode 100644 index 000000000..e30221593 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimension.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ObjectDimension.h" + +asn_TYPE_member_t asn_MBR_cam_ts_ObjectDimension_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ObjectDimension, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ObjectDimensionValue, + 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" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ObjectDimension, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ObjectDimensionConfidence, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_ObjectDimension_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ObjectDimension_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ObjectDimension_specs_1 = { + sizeof(struct cam_ts_ObjectDimension), + offsetof(struct cam_ts_ObjectDimension, _asn_ctx), + asn_MAP_cam_ts_ObjectDimension_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_cam_ts_ObjectDimension = { + "ObjectDimension", + "ObjectDimension", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ObjectDimension_tags_1, + sizeof(asn_DEF_cam_ts_ObjectDimension_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectDimension_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ObjectDimension_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ObjectDimension_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectDimension_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_cam_ts_ObjectDimension_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_ObjectDimension_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimensionConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimensionConfidence.c new file mode 100644 index 000000000..c27c6e6bf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimensionConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ObjectDimensionConfidence.h" + +int +cam_ts_ObjectDimensionConfidence_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 <= 32L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ObjectDimensionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { 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_cam_ts_ObjectDimensionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectDimensionConfidence = { + "ObjectDimensionConfidence", + "ObjectDimensionConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ObjectDimensionConfidence_tags_1, + sizeof(asn_DEF_cam_ts_ObjectDimensionConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectDimensionConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ObjectDimensionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ObjectDimensionConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectDimensionConfidence_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) + &asn_PER_type_cam_ts_ObjectDimensionConfidence_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) */ + cam_ts_ObjectDimensionConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimensionValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimensionValue.c new file mode 100644 index 000000000..1c44bd05c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectDimensionValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ObjectDimensionValue.h" + +int +cam_ts_ObjectDimensionValue_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 <= 256L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ObjectDimensionValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (1..256) */, + { 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_cam_ts_ObjectDimensionValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectDimensionValue = { + "ObjectDimensionValue", + "ObjectDimensionValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ObjectDimensionValue_tags_1, + sizeof(asn_DEF_cam_ts_ObjectDimensionValue_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectDimensionValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ObjectDimensionValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ObjectDimensionValue_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectDimensionValue_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) + &asn_PER_type_cam_ts_ObjectDimensionValue_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) */ + cam_ts_ObjectDimensionValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectFace.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectFace.c new file mode 100644 index 000000000..a7a770541 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectFace.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ObjectFace.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_ObjectFace_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { 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_cam_ts_ObjectFace_value2enum_1[] = { + { 0, 5, "front" }, + { 1, 13, "sideLeftFront" }, + { 2, 12, "sideLeftBack" }, + { 3, 14, "sideRightFront" }, + { 4, 13, "sideRightBack" }, + { 5, 4, "back" } +}; +static const unsigned int asn_MAP_cam_ts_ObjectFace_enum2value_1[] = { + 5, /* back(5) */ + 0, /* front(0) */ + 2, /* sideLeftBack(2) */ + 1, /* sideLeftFront(1) */ + 4, /* sideRightBack(4) */ + 3 /* sideRightFront(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cam_ts_ObjectFace_specs_1 = { + asn_MAP_cam_ts_ObjectFace_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_ObjectFace_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* 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_cam_ts_ObjectFace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectFace = { + "ObjectFace", + "ObjectFace", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_ObjectFace_tags_1, + sizeof(asn_DEF_cam_ts_ObjectFace_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectFace_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ObjectFace_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ObjectFace_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectFace_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) + &asn_PER_type_cam_ts_ObjectFace_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_cam_ts_ObjectFace_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectPerceptionQuality.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectPerceptionQuality.c new file mode 100644 index 000000000..68aff7d53 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ObjectPerceptionQuality.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ObjectPerceptionQuality.h" + +int +cam_ts_ObjectPerceptionQuality_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ObjectPerceptionQuality_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_cam_ts_ObjectPerceptionQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ObjectPerceptionQuality = { + "ObjectPerceptionQuality", + "ObjectPerceptionQuality", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ObjectPerceptionQuality_tags_1, + sizeof(asn_DEF_cam_ts_ObjectPerceptionQuality_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectPerceptionQuality_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ObjectPerceptionQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ObjectPerceptionQuality_tags_1) + /sizeof(asn_DEF_cam_ts_ObjectPerceptionQuality_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) + &asn_PER_type_cam_ts_ObjectPerceptionQuality_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) */ + cam_ts_ObjectPerceptionQuality_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OccupiedLanesWithConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OccupiedLanesWithConfidence.c new file mode 100644 index 000000000..856ba4d0e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OccupiedLanesWithConfidence.c @@ -0,0 +1,314 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_OccupiedLanesWithConfidence.h" + +static int +memb_cam_ts_lanePositionBased_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; + } +} + +static int +memb_cam_ts_mapBased_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_lanePositionBased_constr_2 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_mapBased_constr_4 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_lanePositionBased_constr_2 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_mapBased_constr_4 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_cam_ts_lanePositionBased_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_cam_ts_LanePositionOptions, + 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_cam_ts_lanePositionBased_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_lanePositionBased_specs_2 = { + sizeof(struct cam_ts_OccupiedLanesWithConfidence__lanePositionBased), + offsetof(struct cam_ts_OccupiedLanesWithConfidence__lanePositionBased, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cam_ts_lanePositionBased_2 = { + "lanePositionBased", + "lanePositionBased", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_lanePositionBased_tags_2, + sizeof(asn_DEF_cam_ts_lanePositionBased_tags_2) + /sizeof(asn_DEF_cam_ts_lanePositionBased_tags_2[0]) - 1, /* 1 */ + asn_DEF_cam_ts_lanePositionBased_tags_2, /* Same as above */ + sizeof(asn_DEF_cam_ts_lanePositionBased_tags_2) + /sizeof(asn_DEF_cam_ts_lanePositionBased_tags_2[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_lanePositionBased_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_cam_ts_lanePositionBased_2, + 1, /* Single element */ + &asn_SPC_cam_ts_lanePositionBased_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cam_ts_mapBased_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_MapPosition, + 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_cam_ts_mapBased_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_mapBased_specs_4 = { + sizeof(struct cam_ts_OccupiedLanesWithConfidence__mapBased), + offsetof(struct cam_ts_OccupiedLanesWithConfidence__mapBased, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cam_ts_mapBased_4 = { + "mapBased", + "mapBased", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_mapBased_tags_4, + sizeof(asn_DEF_cam_ts_mapBased_tags_4) + /sizeof(asn_DEF_cam_ts_mapBased_tags_4[0]) - 1, /* 1 */ + asn_DEF_cam_ts_mapBased_tags_4, /* Same as above */ + sizeof(asn_DEF_cam_ts_mapBased_tags_4) + /sizeof(asn_DEF_cam_ts_mapBased_tags_4[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_mapBased_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_cam_ts_mapBased_4, + 1, /* Single element */ + &asn_SPC_cam_ts_mapBased_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cam_ts_OccupiedLanesWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_OccupiedLanesWithConfidence, lanePositionBased), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_cam_ts_lanePositionBased_2, + 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) + &asn_PER_memb_cam_ts_lanePositionBased_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_cam_ts_lanePositionBased_constraint_1 + }, + 0, 0, /* No default value */ + "lanePositionBased" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_OccupiedLanesWithConfidence, mapBased), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_cam_ts_mapBased_4, + 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) + &asn_PER_memb_cam_ts_mapBased_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_cam_ts_mapBased_constraint_1 + }, + 0, 0, /* No default value */ + "mapBased" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_OccupiedLanesWithConfidence, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MetaInformation, + 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" + }, +}; +static const int asn_MAP_cam_ts_OccupiedLanesWithConfidence_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_OccupiedLanesWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_OccupiedLanesWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lanePositionBased */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mapBased */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* confidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_OccupiedLanesWithConfidence_specs_1 = { + sizeof(struct cam_ts_OccupiedLanesWithConfidence), + offsetof(struct cam_ts_OccupiedLanesWithConfidence, _asn_ctx), + asn_MAP_cam_ts_OccupiedLanesWithConfidence_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_OccupiedLanesWithConfidence_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_OccupiedLanesWithConfidence = { + "OccupiedLanesWithConfidence", + "OccupiedLanesWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_OccupiedLanesWithConfidence_tags_1, + sizeof(asn_DEF_cam_ts_OccupiedLanesWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_OccupiedLanesWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_OccupiedLanesWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_OccupiedLanesWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_OccupiedLanesWithConfidence_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_cam_ts_OccupiedLanesWithConfidence_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_OccupiedLanesWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OpeningDaysHours.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OpeningDaysHours.c new file mode 100644 index 000000000..b716a4d72 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OpeningDaysHours.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_cam_ts_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_cam_ts_OpeningDaysHours_tags_1, + sizeof(asn_DEF_cam_ts_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_cam_ts_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_cam_ts_OpeningDaysHours_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) */ + UTF8String_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OrdinalNumber1B.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OrdinalNumber1B.c new file mode 100644 index 000000000..560587308 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OrdinalNumber1B.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_OrdinalNumber1B.h" + +int +cam_ts_OrdinalNumber1B_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_OrdinalNumber1B_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_cam_ts_OrdinalNumber1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_OrdinalNumber1B = { + "OrdinalNumber1B", + "OrdinalNumber1B", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_OrdinalNumber1B_tags_1, + sizeof(asn_DEF_cam_ts_OrdinalNumber1B_tags_1) + /sizeof(asn_DEF_cam_ts_OrdinalNumber1B_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_OrdinalNumber1B_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_OrdinalNumber1B_tags_1) + /sizeof(asn_DEF_cam_ts_OrdinalNumber1B_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) + &asn_PER_type_cam_ts_OrdinalNumber1B_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) */ + cam_ts_OrdinalNumber1B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OrdinalNumber3b.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OrdinalNumber3b.c new file mode 100644 index 000000000..53778d85e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OrdinalNumber3b.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_OrdinalNumber3b.h" + +int +cam_ts_OrdinalNumber3b_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 <= 8L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_OrdinalNumber3b_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { 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_cam_ts_OrdinalNumber3b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_OrdinalNumber3b = { + "OrdinalNumber3b", + "OrdinalNumber3b", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_OrdinalNumber3b_tags_1, + sizeof(asn_DEF_cam_ts_OrdinalNumber3b_tags_1) + /sizeof(asn_DEF_cam_ts_OrdinalNumber3b_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_OrdinalNumber3b_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_OrdinalNumber3b_tags_1) + /sizeof(asn_DEF_cam_ts_OrdinalNumber3b_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) + &asn_PER_type_cam_ts_OrdinalNumber3b_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) */ + cam_ts_OrdinalNumber3b_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OtherSubClass.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OtherSubClass.c new file mode 100644 index 000000000..c644dad95 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_OtherSubClass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_OtherSubClass.h" + +int +cam_ts_OtherSubClass_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_OtherSubClass_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_cam_ts_OtherSubClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_OtherSubClass = { + "OtherSubClass", + "OtherSubClass", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_OtherSubClass_tags_1, + sizeof(asn_DEF_cam_ts_OtherSubClass_tags_1) + /sizeof(asn_DEF_cam_ts_OtherSubClass_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_OtherSubClass_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_OtherSubClass_tags_1) + /sizeof(asn_DEF_cam_ts_OtherSubClass_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) + &asn_PER_type_cam_ts_OtherSubClass_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) */ + cam_ts_OtherSubClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Path.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Path.c new file mode 100644 index 000000000..242f80aae --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Path.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Path.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Path_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_cam_ts_Path_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_PathPoint, + 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_cam_ts_Path_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_Path_specs_1 = { + sizeof(struct cam_ts_Path), + offsetof(struct cam_ts_Path, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Path = { + "Path", + "Path", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_Path_tags_1, + sizeof(asn_DEF_cam_ts_Path_tags_1) + /sizeof(asn_DEF_cam_ts_Path_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Path_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Path_tags_1) + /sizeof(asn_DEF_cam_ts_Path_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) + &asn_PER_type_cam_ts_Path_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_cam_ts_Path_1, + 1, /* Single element */ + &asn_SPC_cam_ts_Path_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathDeltaTime.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathDeltaTime.c new file mode 100644 index 000000000..c75261a36 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathDeltaTime.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathDeltaTime.h" + +int +cam_ts_PathDeltaTime_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 <= 65535L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { 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_cam_ts_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PathDeltaTime_tags_1, + sizeof(asn_DEF_cam_ts_PathDeltaTime_tags_1) + /sizeof(asn_DEF_cam_ts_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathDeltaTime_tags_1) + /sizeof(asn_DEF_cam_ts_PathDeltaTime_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) + &asn_PER_type_cam_ts_PathDeltaTime_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) */ + cam_ts_PathDeltaTime_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathDeltaTimeChoice.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathDeltaTimeChoice.c new file mode 100644 index 000000000..8a3c43401 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathDeltaTimeChoice.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathDeltaTimeChoice.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PathDeltaTimeChoice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { 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_cam_ts_PathDeltaTimeChoice_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathDeltaTimeChoice, choice.deltaTimeHighPrecision), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeTenthOfSecond, + 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 */ + "deltaTimeHighPrecision" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathDeltaTimeChoice, choice.deltaTimeBigRange), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeTenSeconds, + 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 */ + "deltaTimeBigRange" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PathDeltaTimeChoice_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaTimeHighPrecision */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* deltaTimeBigRange */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_PathDeltaTimeChoice_specs_1 = { + sizeof(struct cam_ts_PathDeltaTimeChoice), + offsetof(struct cam_ts_PathDeltaTimeChoice, _asn_ctx), + offsetof(struct cam_ts_PathDeltaTimeChoice, present), + sizeof(((struct cam_ts_PathDeltaTimeChoice *)0)->present), + asn_MAP_cam_ts_PathDeltaTimeChoice_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathDeltaTimeChoice = { + "PathDeltaTimeChoice", + "PathDeltaTimeChoice", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_PathDeltaTimeChoice_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_PathDeltaTimeChoice_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_PathDeltaTimeChoice_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathExtended.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathExtended.c new file mode 100644 index 000000000..db1a802a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathExtended.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathExtended.h" + +static int +memb_cam_ts_pointOfEventZone_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 >= 1L && value <= 23L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_pointOfEventZone_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (1..23) */, + { 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_cam_ts_PathExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathExtended, pointOfEventZone), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_cam_ts_pointOfEventZone_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_cam_ts_pointOfEventZone_constraint_1 + }, + 0, 0, /* No default value */ + "pointOfEventZone" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathExtended, path), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Path, + 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 */ + "path" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_PathExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PathExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pointOfEventZone */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* path */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PathExtended_specs_1 = { + sizeof(struct cam_ts_PathExtended), + offsetof(struct cam_ts_PathExtended, _asn_ctx), + asn_MAP_cam_ts_PathExtended_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_cam_ts_PathExtended = { + "PathExtended", + "PathExtended", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PathExtended_tags_1, + sizeof(asn_DEF_cam_ts_PathExtended_tags_1) + /sizeof(asn_DEF_cam_ts_PathExtended_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathExtended_tags_1) + /sizeof(asn_DEF_cam_ts_PathExtended_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_cam_ts_PathExtended_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_PathExtended_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathHistory.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathHistory.c new file mode 100644 index 000000000..982f58165 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathHistory.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathHistory.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_PathPoint, + 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_cam_ts_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_PathHistory_specs_1 = { + sizeof(struct cam_ts_PathHistory), + offsetof(struct cam_ts_PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_PathHistory_tags_1, + sizeof(asn_DEF_cam_ts_PathHistory_tags_1) + /sizeof(asn_DEF_cam_ts_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathHistory_tags_1) + /sizeof(asn_DEF_cam_ts_PathHistory_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) + &asn_PER_type_cam_ts_PathHistory_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_cam_ts_PathHistory_1, + 1, /* Single element */ + &asn_SPC_cam_ts_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathId.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathId.c new file mode 100644 index 000000000..3ab831cd0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathId.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathId.h" + +int +cam_ts_PathId_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 <= 14L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PathId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 14 } /* (0..14) */, + { 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_cam_ts_PathId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathId = { + "PathId", + "PathId", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PathId_tags_1, + sizeof(asn_DEF_cam_ts_PathId_tags_1) + /sizeof(asn_DEF_cam_ts_PathId_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathId_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathId_tags_1) + /sizeof(asn_DEF_cam_ts_PathId_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) + &asn_PER_type_cam_ts_PathId_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) */ + cam_ts_PathId_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPoint.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPoint.c new file mode 100644 index 000000000..66a4b24a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPoint.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathPoint.h" + +asn_TYPE_member_t asn_MBR_cam_ts_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaReferencePosition, + 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 */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PathDeltaTime, + 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 */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_cam_ts_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PathPoint_specs_1 = { + sizeof(struct cam_ts_PathPoint), + offsetof(struct cam_ts_PathPoint, _asn_ctx), + asn_MAP_cam_ts_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_cam_ts_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PathPoint_tags_1, + sizeof(asn_DEF_cam_ts_PathPoint_tags_1) + /sizeof(asn_DEF_cam_ts_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathPoint_tags_1) + /sizeof(asn_DEF_cam_ts_PathPoint_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_cam_ts_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPointPredicted.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPointPredicted.c new file mode 100644 index 000000000..01fb9739c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPointPredicted.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathPointPredicted.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PathPointPredicted_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static int asn_DFL_5_cmp_12800(const void *sptr) { + const cam_ts_DeltaAltitude_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 12800 */ + return (*st != 12800); +} +static int asn_DFL_5_set_12800(void **sptr) { + cam_ts_DeltaAltitude_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 12800 */ + *st = 12800; + return 0; +} +static int asn_DFL_6_cmp_15(const void *sptr) { + const cam_ts_AltitudeConfidence_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_6_set_15(void **sptr) { + cam_ts_AltitudeConfidence_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +asn_TYPE_member_t asn_MBR_cam_ts_PathPointPredicted_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathPointPredicted, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaLatitude, + 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 */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathPointPredicted, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaLongitude, + 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 */ + "deltaLongitude" + }, + { ATF_POINTER, 6, offsetof(struct cam_ts_PathPointPredicted, horizontalPositionConfidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PosConfidenceEllipse, + 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 */ + "horizontalPositionConfidence" + }, + { ATF_POINTER, 5, offsetof(struct cam_ts_PathPointPredicted, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaAltitude, + 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_5_cmp_12800, /* Compare DEFAULT 12800 */ + &asn_DFL_5_set_12800, /* Set DEFAULT 12800 */ + "deltaAltitude" + }, + { ATF_POINTER, 4, offsetof(struct cam_ts_PathPointPredicted, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 + }, + &asn_DFL_6_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_6_set_15, /* Set DEFAULT 15 */ + "altitudeConfidence" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_PathPointPredicted, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_PathDeltaTimeChoice, + 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 */ + "pathDeltaTime" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_PathPointPredicted, symmetricAreaOffset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength9b, + 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 */ + "symmetricAreaOffset" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_PathPointPredicted, asymmetricAreaOffset), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength9b, + 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 */ + "asymmetricAreaOffset" + }, +}; +static const int asn_MAP_cam_ts_PathPointPredicted_oms_1[] = { 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_PathPointPredicted_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PathPointPredicted_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalPositionConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* deltaAltitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* altitudeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* pathDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* symmetricAreaOffset */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* asymmetricAreaOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PathPointPredicted_specs_1 = { + sizeof(struct cam_ts_PathPointPredicted), + offsetof(struct cam_ts_PathPointPredicted, _asn_ctx), + asn_MAP_cam_ts_PathPointPredicted_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_cam_ts_PathPointPredicted_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPointPredicted = { + "PathPointPredicted", + "PathPointPredicted", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PathPointPredicted_tags_1, + sizeof(asn_DEF_cam_ts_PathPointPredicted_tags_1) + /sizeof(asn_DEF_cam_ts_PathPointPredicted_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathPointPredicted_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathPointPredicted_tags_1) + /sizeof(asn_DEF_cam_ts_PathPointPredicted_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) + &asn_PER_type_cam_ts_PathPointPredicted_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_constraint + }, + asn_MBR_cam_ts_PathPointPredicted_1, + 8, /* Elements count */ + &asn_SPC_cam_ts_PathPointPredicted_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredicted.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredicted.c new file mode 100644 index 000000000..4570fa5ad --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredicted.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathPredicted.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PathPredicted_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_cam_ts_PathPredicted_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_PathPointPredicted, + 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_cam_ts_PathPredicted_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_PathPredicted_specs_1 = { + sizeof(struct cam_ts_PathPredicted), + offsetof(struct cam_ts_PathPredicted, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPredicted = { + "PathPredicted", + "PathPredicted", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_PathPredicted_tags_1, + sizeof(asn_DEF_cam_ts_PathPredicted_tags_1) + /sizeof(asn_DEF_cam_ts_PathPredicted_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathPredicted_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathPredicted_tags_1) + /sizeof(asn_DEF_cam_ts_PathPredicted_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) + &asn_PER_type_cam_ts_PathPredicted_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_cam_ts_PathPredicted_1, + 1, /* Single element */ + &asn_SPC_cam_ts_PathPredicted_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredicted2.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredicted2.c new file mode 100644 index 000000000..25c1c09c5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredicted2.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathPredicted2.h" + +static int +memb_cam_ts_pathPredicted_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 <= 16UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_pathPredicted_constr_2 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_cam_ts_PathPredicted2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathPredicted2, pathPredicted), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PathPredicted, + 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) + &asn_PER_memb_cam_ts_pathPredicted_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_cam_ts_pathPredicted_constraint_1 + }, + 0, 0, /* No default value */ + "pathPredicted" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathPredicted2, usageIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_UsageIndication, + 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 */ + "usageIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PathPredicted2, confidenceLevel), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ConfidenceLevel, + 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 */ + "confidenceLevel" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_PathPredicted2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PathPredicted2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPredicted */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* usageIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* confidenceLevel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PathPredicted2_specs_1 = { + sizeof(struct cam_ts_PathPredicted2), + offsetof(struct cam_ts_PathPredicted2, _asn_ctx), + asn_MAP_cam_ts_PathPredicted2_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPredicted2 = { + "PathPredicted2", + "PathPredicted2", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PathPredicted2_tags_1, + sizeof(asn_DEF_cam_ts_PathPredicted2_tags_1) + /sizeof(asn_DEF_cam_ts_PathPredicted2_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathPredicted2_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathPredicted2_tags_1) + /sizeof(asn_DEF_cam_ts_PathPredicted2_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_cam_ts_PathPredicted2_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_PathPredicted2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredictedList.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredictedList.c new file mode 100644 index 000000000..f7540cd9a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathPredictedList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathPredictedList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PathPredictedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (SIZE(1..16,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_PathPredictedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_PathPredicted2, + 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_cam_ts_PathPredictedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_PathPredictedList_specs_1 = { + sizeof(struct cam_ts_PathPredictedList), + offsetof(struct cam_ts_PathPredictedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathPredictedList = { + "PathPredictedList", + "PathPredictedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_PathPredictedList_tags_1, + sizeof(asn_DEF_cam_ts_PathPredictedList_tags_1) + /sizeof(asn_DEF_cam_ts_PathPredictedList_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathPredictedList_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathPredictedList_tags_1) + /sizeof(asn_DEF_cam_ts_PathPredictedList_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) + &asn_PER_type_cam_ts_PathPredictedList_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_cam_ts_PathPredictedList_1, + 1, /* Single element */ + &asn_SPC_cam_ts_PathPredictedList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathReferences.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathReferences.c new file mode 100644 index 000000000..e265d13a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PathReferences.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PathReferences.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PathReferences_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 14 } /* (SIZE(1..14)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_cam_ts_PathReferences_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_cam_ts_PathId, + 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_cam_ts_PathReferences_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_PathReferences_specs_1 = { + sizeof(struct cam_ts_PathReferences), + offsetof(struct cam_ts_PathReferences, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PathReferences = { + "PathReferences", + "PathReferences", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_PathReferences_tags_1, + sizeof(asn_DEF_cam_ts_PathReferences_tags_1) + /sizeof(asn_DEF_cam_ts_PathReferences_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PathReferences_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PathReferences_tags_1) + /sizeof(asn_DEF_cam_ts_PathReferences_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) + &asn_PER_type_cam_ts_PathReferences_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_cam_ts_PathReferences_1, + 1, /* Single element */ + &asn_SPC_cam_ts_PathReferences_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PerceivedObject.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PerceivedObject.c new file mode 100644 index 000000000..988a86e5a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PerceivedObject.c @@ -0,0 +1,421 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PerceivedObject.h" + +static int +memb_cam_ts_objectAge_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 <= 2047L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_objectAge_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 2047 } /* (0..2047) */, + { 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_cam_ts_PerceivedObject_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_PerceivedObject, objectId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier2B, + 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 */ + "objectId" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PerceivedObject, measurementDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeMilliSecondSigned, + 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 */ + "measurementDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PerceivedObject, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianPosition3dWithConfidence, + 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 */ + "position" + }, + { ATF_POINTER, 13, offsetof(struct cam_ts_PerceivedObject, velocity), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_Velocity3dWithConfidence, + 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 */ + "velocity" + }, + { ATF_POINTER, 12, offsetof(struct cam_ts_PerceivedObject, acceleration), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_Acceleration3dWithConfidence, + 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 */ + "acceleration" + }, + { ATF_POINTER, 11, offsetof(struct cam_ts_PerceivedObject, angles), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EulerAnglesWithConfidence, + 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 */ + "angles" + }, + { ATF_POINTER, 10, offsetof(struct cam_ts_PerceivedObject, zAngularVelocity), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngularVelocityComponent, + 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 */ + "zAngularVelocity" + }, + { ATF_POINTER, 9, offsetof(struct cam_ts_PerceivedObject, lowerTriangularCorrelationMatrices), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LowerTriangularPositiveSemidefiniteMatrices, + 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 */ + "lowerTriangularCorrelationMatrices" + }, + { ATF_POINTER, 8, offsetof(struct cam_ts_PerceivedObject, objectDimensionZ), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ObjectDimension, + 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 */ + "objectDimensionZ" + }, + { ATF_POINTER, 7, offsetof(struct cam_ts_PerceivedObject, objectDimensionY), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ObjectDimension, + 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 */ + "objectDimensionY" + }, + { ATF_POINTER, 6, offsetof(struct cam_ts_PerceivedObject, objectDimensionX), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ObjectDimension, + 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 */ + "objectDimensionX" + }, + { ATF_POINTER, 5, offsetof(struct cam_ts_PerceivedObject, objectAge), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeMilliSecondSigned, + 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) + &asn_PER_memb_cam_ts_objectAge_constr_13, +#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_cam_ts_objectAge_constraint_1 + }, + 0, 0, /* No default value */ + "objectAge" + }, + { ATF_POINTER, 4, offsetof(struct cam_ts_PerceivedObject, objectPerceptionQuality), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ObjectPerceptionQuality, + 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 */ + "objectPerceptionQuality" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_PerceivedObject, sensorIdList), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SequenceOfIdentifier1B, + 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 */ + "sensorIdList" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_PerceivedObject, classification), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ObjectClassDescription, + 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 */ + "classification" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_PerceivedObject, mapPosition), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MapPosition, + 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 */ + "mapPosition" + }, +}; +static const int asn_MAP_cam_ts_PerceivedObject_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_PerceivedObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PerceivedObject_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* objectId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measurementDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* velocity */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* acceleration */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* angles */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* zAngularVelocity */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* lowerTriangularCorrelationMatrices */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* objectDimensionZ */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* objectDimensionY */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* objectDimensionX */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* objectAge */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* objectPerceptionQuality */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* sensorIdList */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* classification */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* mapPosition */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PerceivedObject_specs_1 = { + sizeof(struct cam_ts_PerceivedObject), + offsetof(struct cam_ts_PerceivedObject, _asn_ctx), + asn_MAP_cam_ts_PerceivedObject_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_cam_ts_PerceivedObject_oms_1, /* Optional members */ + 14, 0, /* Root/Additions */ + 16, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PerceivedObject = { + "PerceivedObject", + "PerceivedObject", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PerceivedObject_tags_1, + sizeof(asn_DEF_cam_ts_PerceivedObject_tags_1) + /sizeof(asn_DEF_cam_ts_PerceivedObject_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PerceivedObject_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PerceivedObject_tags_1) + /sizeof(asn_DEF_cam_ts_PerceivedObject_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_cam_ts_PerceivedObject_1, + 16, /* Elements count */ + &asn_SPC_cam_ts_PerceivedObject_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PerformanceClass.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PerformanceClass.c new file mode 100644 index 000000000..8dc594047 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PerformanceClass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PerformanceClass.h" + +int +cam_ts_PerformanceClass_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 <= 7L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PerformanceClass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { 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_cam_ts_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PerformanceClass_tags_1, + sizeof(asn_DEF_cam_ts_PerformanceClass_tags_1) + /sizeof(asn_DEF_cam_ts_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PerformanceClass_tags_1) + /sizeof(asn_DEF_cam_ts_PerformanceClass_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) + &asn_PER_type_cam_ts_PerformanceClass_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) */ + cam_ts_PerformanceClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PhoneNumber.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PhoneNumber.c new file mode 100644 index 000000000..c5d4baeb2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PhoneNumber.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +cam_ts_PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_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; + } + + size = st->size; + + if((size >= 1UL && size <= 16UL) + && !check_permitted_alphabet_1(st)) { + /* 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 asn_PER_MAP_cam_ts_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_cam_ts_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_cam_ts_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_cam_ts_PhoneNumber_1_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_cam_ts_PhoneNumber_tags_1, + sizeof(asn_DEF_cam_ts_PhoneNumber_tags_1) + /sizeof(asn_DEF_cam_ts_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PhoneNumber_tags_1) + /sizeof(asn_DEF_cam_ts_PhoneNumber_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) + &asn_PER_type_cam_ts_PhoneNumber_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) */ + cam_ts_PhoneNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PolygonalShape.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PolygonalShape.c new file mode 100644 index 000000000..0d3e6185b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PolygonalShape.c @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PolygonalShape.h" + +static int +memb_cam_ts_polygon_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 >= 3UL && size <= 16UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_polygon_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 3, 16 } /* (SIZE(3..16,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_cam_ts_PolygonalShape_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_PolygonalShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianPosition3d, + 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 */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PolygonalShape, polygon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SequenceOfCartesianPosition3d, + 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) + &asn_PER_memb_cam_ts_polygon_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_cam_ts_polygon_constraint_1 + }, + 0, 0, /* No default value */ + "polygon" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_PolygonalShape, height), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "height" + }, +}; +static const int asn_MAP_cam_ts_PolygonalShape_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_PolygonalShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PolygonalShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* polygon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* height */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PolygonalShape_specs_1 = { + sizeof(struct cam_ts_PolygonalShape), + offsetof(struct cam_ts_PolygonalShape, _asn_ctx), + asn_MAP_cam_ts_PolygonalShape_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_PolygonalShape_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PolygonalShape = { + "PolygonalShape", + "PolygonalShape", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PolygonalShape_tags_1, + sizeof(asn_DEF_cam_ts_PolygonalShape_tags_1) + /sizeof(asn_DEF_cam_ts_PolygonalShape_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PolygonalShape_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PolygonalShape_tags_1) + /sizeof(asn_DEF_cam_ts_PolygonalShape_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_cam_ts_PolygonalShape_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_PolygonalShape_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosCentMass.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosCentMass.c new file mode 100644 index 000000000..3e782b5f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosCentMass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PosCentMass.h" + +int +cam_ts_PosCentMass_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 <= 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..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_cam_ts_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PosCentMass_tags_1, + sizeof(asn_DEF_cam_ts_PosCentMass_tags_1) + /sizeof(asn_DEF_cam_ts_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PosCentMass_tags_1) + /sizeof(asn_DEF_cam_ts_PosCentMass_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) + &asn_PER_type_cam_ts_PosCentMass_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) */ + cam_ts_PosCentMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosConfidenceEllipse.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosConfidenceEllipse.c new file mode 100644 index 000000000..7d6b8f3ae --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosConfidenceEllipse.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_cam_ts_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SemiAxisLength, + 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 */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SemiAxisLength, + 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 */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_HeadingValue, + 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 */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PosConfidenceEllipse_specs_1 = { + sizeof(struct cam_ts_PosConfidenceEllipse), + offsetof(struct cam_ts_PosConfidenceEllipse, _asn_ctx), + asn_MAP_cam_ts_PosConfidenceEllipse_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_cam_ts_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_cam_ts_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_cam_ts_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_cam_ts_PosConfidenceEllipse_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_cam_ts_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosFrontAx.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosFrontAx.c new file mode 100644 index 000000000..aff114543 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosFrontAx.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PosFrontAx.h" + +int +cam_ts_PosFrontAx_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 <= 20L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { 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_cam_ts_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PosFrontAx_tags_1, + sizeof(asn_DEF_cam_ts_PosFrontAx_tags_1) + /sizeof(asn_DEF_cam_ts_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PosFrontAx_tags_1) + /sizeof(asn_DEF_cam_ts_PosFrontAx_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) + &asn_PER_type_cam_ts_PosFrontAx_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) */ + cam_ts_PosFrontAx_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosLonCarr.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosLonCarr.c new file mode 100644 index 000000000..6533e0a10 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosLonCarr.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PosLonCarr.h" + +int +cam_ts_PosLonCarr_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PosLonCarr_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_cam_ts_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PosLonCarr_tags_1, + sizeof(asn_DEF_cam_ts_PosLonCarr_tags_1) + /sizeof(asn_DEF_cam_ts_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PosLonCarr_tags_1) + /sizeof(asn_DEF_cam_ts_PosLonCarr_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) + &asn_PER_type_cam_ts_PosLonCarr_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) */ + cam_ts_PosLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosPillar.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosPillar.c new file mode 100644 index 000000000..6973503c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PosPillar.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PosPillar.h" + +int +cam_ts_PosPillar_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 <= 30L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { 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_cam_ts_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PosPillar_tags_1, + sizeof(asn_DEF_cam_ts_PosPillar_tags_1) + /sizeof(asn_DEF_cam_ts_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PosPillar_tags_1) + /sizeof(asn_DEF_cam_ts_PosPillar_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) + &asn_PER_type_cam_ts_PosPillar_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) */ + cam_ts_PosPillar_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Position1d.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Position1d.c new file mode 100644 index 000000000..131da3607 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Position1d.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Position1d.h" + +int +cam_ts_Position1d_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 >= -8190L && value <= 8191L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_Position1d_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8190, 8191 } /* (-8190..8191) */, + { 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_cam_ts_Position1d_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Position1d = { + "Position1d", + "Position1d", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Position1d_tags_1, + sizeof(asn_DEF_cam_ts_Position1d_tags_1) + /sizeof(asn_DEF_cam_ts_Position1d_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Position1d_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Position1d_tags_1) + /sizeof(asn_DEF_cam_ts_Position1d_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) + &asn_PER_type_cam_ts_Position1d_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) */ + cam_ts_Position1d_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionConfidenceEllipse.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionConfidenceEllipse.c new file mode 100644 index 000000000..1ea28e941 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionConfidenceEllipse.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PositionConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_cam_ts_PositionConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PositionConfidenceEllipse, semiMajorAxisLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SemiAxisLength, + 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 */ + "semiMajorAxisLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PositionConfidenceEllipse, semiMinorAxisLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SemiAxisLength, + 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 */ + "semiMinorAxisLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PositionConfidenceEllipse, semiMajorAxisOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "semiMajorAxisOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_PositionConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PositionConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorAxisLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorAxisLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorAxisOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PositionConfidenceEllipse_specs_1 = { + sizeof(struct cam_ts_PositionConfidenceEllipse), + offsetof(struct cam_ts_PositionConfidenceEllipse, _asn_ctx), + asn_MAP_cam_ts_PositionConfidenceEllipse_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_cam_ts_PositionConfidenceEllipse = { + "PositionConfidenceEllipse", + "PositionConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PositionConfidenceEllipse_tags_1, + sizeof(asn_DEF_cam_ts_PositionConfidenceEllipse_tags_1) + /sizeof(asn_DEF_cam_ts_PositionConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PositionConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PositionConfidenceEllipse_tags_1) + /sizeof(asn_DEF_cam_ts_PositionConfidenceEllipse_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_cam_ts_PositionConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_PositionConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionOfOccupants.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionOfOccupants.c new file mode 100644 index 000000000..a7759eff0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionOfOccupants.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PositionOfOccupants.h" + +int +cam_ts_PositionOfOccupants_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 == 20UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 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_cam_ts_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_PositionOfOccupants_tags_1, + sizeof(asn_DEF_cam_ts_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_cam_ts_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_cam_ts_PositionOfOccupants_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) + &asn_PER_type_cam_ts_PositionOfOccupants_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) */ + cam_ts_PositionOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionOfPillars.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionOfPillars.c new file mode 100644 index 000000000..17e263124 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositionOfPillars.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PositionOfPillars.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_cam_ts_PosPillar, + 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_cam_ts_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_PositionOfPillars_specs_1 = { + sizeof(struct cam_ts_PositionOfPillars), + offsetof(struct cam_ts_PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_PositionOfPillars_tags_1, + sizeof(asn_DEF_cam_ts_PositionOfPillars_tags_1) + /sizeof(asn_DEF_cam_ts_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PositionOfPillars_tags_1) + /sizeof(asn_DEF_cam_ts_PositionOfPillars_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) + &asn_PER_type_cam_ts_PositionOfPillars_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_cam_ts_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_cam_ts_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositioningSolutionType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositioningSolutionType.c new file mode 100644 index 000000000..87ef67bcf --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PositioningSolutionType.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PositioningSolutionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PositioningSolutionType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { 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_cam_ts_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" }, + { 6, 18, "manuallyByOperator" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_cam_ts_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 6, /* manuallyByOperator(6) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cam_ts_PositioningSolutionType_specs_1 = { + asn_MAP_cam_ts_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_PositioningSolutionType_tags_1, + sizeof(asn_DEF_cam_ts_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_cam_ts_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_cam_ts_PositioningSolutionType_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) + &asn_PER_type_cam_ts_PositioningSolutionType_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_cam_ts_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PostCrashSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PostCrashSubCauseCode.c new file mode 100644 index 000000000..adcd96c4f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PostCrashSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PostCrashSubCauseCode.h" + +int +cam_ts_PostCrashSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PostCrashSubCauseCode_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_cam_ts_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_PostCrashSubCauseCode_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) + &asn_PER_type_cam_ts_PostCrashSubCauseCode_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) */ + cam_ts_PostCrashSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PrecipitationIntensity.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PrecipitationIntensity.c new file mode 100644 index 000000000..ffc7c4d12 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PrecipitationIntensity.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PrecipitationIntensity.h" + +int +cam_ts_PrecipitationIntensity_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 <= 2001L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_PrecipitationIntensity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2001 } /* (1..2001) */, + { 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_cam_ts_PrecipitationIntensity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PrecipitationIntensity = { + "PrecipitationIntensity", + "PrecipitationIntensity", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PrecipitationIntensity_tags_1, + sizeof(asn_DEF_cam_ts_PrecipitationIntensity_tags_1) + /sizeof(asn_DEF_cam_ts_PrecipitationIntensity_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PrecipitationIntensity_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PrecipitationIntensity_tags_1) + /sizeof(asn_DEF_cam_ts_PrecipitationIntensity_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) + &asn_PER_type_cam_ts_PrecipitationIntensity_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) */ + cam_ts_PrecipitationIntensity_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedCommunicationZone.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedCommunicationZone.c new file mode 100644 index 000000000..daa8ce7a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedCommunicationZone.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_cam_ts_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ProtectedZoneType, + 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 */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TimestampIts, + 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 */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ProtectedZoneRadius, + 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 */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_ProtectedCommunicationZone, protectedZoneId), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ProtectedZoneId, + 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 */ + "protectedZoneId" + }, +}; +static const int asn_MAP_cam_ts_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ProtectedCommunicationZone_specs_1 = { + sizeof(struct cam_ts_ProtectedCommunicationZone), + offsetof(struct cam_ts_ProtectedCommunicationZone, _asn_ctx), + asn_MAP_cam_ts_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_cam_ts_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_cam_ts_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedCommunicationZone_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_cam_ts_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_cam_ts_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedCommunicationZonesRSU.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedCommunicationZonesRSU.c new file mode 100644 index 000000000..782ba95ae --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedCommunicationZonesRSU.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedCommunicationZonesRSU.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ProtectedCommunicationZonesRSU_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_cam_ts_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_ProtectedCommunicationZone, + 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_cam_ts_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct cam_ts_ProtectedCommunicationZonesRSU), + offsetof(struct cam_ts_ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_cam_ts_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedCommunicationZonesRSU_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) + &asn_PER_type_cam_ts_ProtectedCommunicationZonesRSU_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_cam_ts_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_cam_ts_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneId.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneId.c new file mode 100644 index 000000000..18aa29855 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneId.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneId.h" + +int +cam_ts_ProtectedZoneId_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 <= 134217727L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ProtectedZoneId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { 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_cam_ts_ProtectedZoneId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedZoneId = { + "ProtectedZoneId", + "ProtectedZoneId", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ProtectedZoneId_tags_1, + sizeof(asn_DEF_cam_ts_ProtectedZoneId_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedZoneId_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ProtectedZoneId_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ProtectedZoneId_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedZoneId_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) + &asn_PER_type_cam_ts_ProtectedZoneId_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) */ + cam_ts_ProtectedZoneId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneRadius.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneRadius.c new file mode 100644 index 000000000..136b9f606 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneRadius.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneRadius.h" + +int +cam_ts_ProtectedZoneRadius_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 <= 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..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_cam_ts_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_cam_ts_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedZoneRadius_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) + &asn_PER_type_cam_ts_ProtectedZoneRadius_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) */ + cam_ts_ProtectedZoneRadius_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneType.c new file mode 100644 index 000000000..70526348c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ProtectedZoneType.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ProtectedZoneType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_ProtectedZoneType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { 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_cam_ts_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_cam_ts_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_ProtectedZoneType_specs_1 = { + asn_MAP_cam_ts_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_ProtectedZoneType_tags_1, + sizeof(asn_DEF_cam_ts_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_cam_ts_ProtectedZoneType_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) + &asn_PER_type_cam_ts_ProtectedZoneType_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_cam_ts_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Provider.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Provider.c new file mode 100644 index 000000000..d23e1d0dd --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Provider.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Provider.h" + +asn_TYPE_member_t asn_MBR_cam_ts_Provider_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Provider, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CountryCode, + 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 */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Provider, providerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_IssuerIdentifier, + 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 */ + "providerIdentifier" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_Provider_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Provider_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* providerIdentifier */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Provider_specs_1 = { + sizeof(struct cam_ts_Provider), + offsetof(struct cam_ts_Provider, _asn_ctx), + asn_MAP_cam_ts_Provider_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_cam_ts_Provider = { + "Provider", + "Provider", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_Provider_tags_1, + sizeof(asn_DEF_cam_ts_Provider_tags_1) + /sizeof(asn_DEF_cam_ts_Provider_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Provider_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Provider_tags_1) + /sizeof(asn_DEF_cam_ts_Provider_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_cam_ts_Provider_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Provider_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivation.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivation.c new file mode 100644 index 000000000..1266fbd4f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PtActivation.h" + +asn_TYPE_member_t asn_MBR_cam_ts_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PtActivationType, + 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 */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PtActivationData, + 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 */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PtActivation_specs_1 = { + sizeof(struct cam_ts_PtActivation), + offsetof(struct cam_ts_PtActivation, _asn_ctx), + asn_MAP_cam_ts_PtActivation_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_cam_ts_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PtActivation_tags_1, + sizeof(asn_DEF_cam_ts_PtActivation_tags_1) + /sizeof(asn_DEF_cam_ts_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PtActivation_tags_1) + /sizeof(asn_DEF_cam_ts_PtActivation_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_cam_ts_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivationData.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivationData.c new file mode 100644 index 000000000..09d5f1730 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivationData.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PtActivationData.h" + +int +cam_ts_PtActivationData_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_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; + } + + size = st->size; + + if((size >= 1UL && size <= 20UL)) { + /* 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PtActivationData_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */, + 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_cam_ts_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_cam_ts_PtActivationData_tags_1, + sizeof(asn_DEF_cam_ts_PtActivationData_tags_1) + /sizeof(asn_DEF_cam_ts_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PtActivationData_tags_1) + /sizeof(asn_DEF_cam_ts_PtActivationData_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) + &asn_PER_type_cam_ts_PtActivationData_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) */ + cam_ts_PtActivationData_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivationType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivationType.c new file mode 100644 index 000000000..2b5d71999 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PtActivationType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PtActivationType.h" + +int +cam_ts_PtActivationType_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_PtActivationType_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_cam_ts_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_PtActivationType_tags_1, + sizeof(asn_DEF_cam_ts_PtActivationType_tags_1) + /sizeof(asn_DEF_cam_ts_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PtActivationType_tags_1) + /sizeof(asn_DEF_cam_ts_PtActivationType_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) + &asn_PER_type_cam_ts_PtActivationType_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) */ + cam_ts_PtActivationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PublicTransportContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PublicTransportContainer.c new file mode 100644 index 000000000..f251e4a92 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_PublicTransportContainer.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_PublicTransportContainer.h" + +asn_TYPE_member_t asn_MBR_cam_ts_PublicTransportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_PublicTransportContainer, embarkationStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EmbarkationStatus, + 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 */ + "embarkationStatus" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_PublicTransportContainer, ptActivation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PtActivation, + 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 */ + "ptActivation" + }, +}; +static const int asn_MAP_cam_ts_PublicTransportContainer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_PublicTransportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_PublicTransportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* embarkationStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_PublicTransportContainer_specs_1 = { + sizeof(struct cam_ts_PublicTransportContainer), + offsetof(struct cam_ts_PublicTransportContainer, _asn_ctx), + asn_MAP_cam_ts_PublicTransportContainer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_cam_ts_PublicTransportContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_PublicTransportContainer = { + "PublicTransportContainer", + "PublicTransportContainer", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_PublicTransportContainer_tags_1, + sizeof(asn_DEF_cam_ts_PublicTransportContainer_tags_1) + /sizeof(asn_DEF_cam_ts_PublicTransportContainer_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_PublicTransportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_PublicTransportContainer_tags_1) + /sizeof(asn_DEF_cam_ts_PublicTransportContainer_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_cam_ts_PublicTransportContainer_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_PublicTransportContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RSUContainerHighFrequency.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RSUContainerHighFrequency.c new file mode 100644 index 000000000..787921794 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RSUContainerHighFrequency.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RSUContainerHighFrequency.h" + +asn_TYPE_member_t asn_MBR_cam_ts_RSUContainerHighFrequency_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_RSUContainerHighFrequency, protectedCommunicationZonesRSU), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ProtectedCommunicationZonesRSU, + 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 */ + "protectedCommunicationZonesRSU" + }, +}; +static const int asn_MAP_cam_ts_RSUContainerHighFrequency_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RSUContainerHighFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RSUContainerHighFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protectedCommunicationZonesRSU */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RSUContainerHighFrequency_specs_1 = { + sizeof(struct cam_ts_RSUContainerHighFrequency), + offsetof(struct cam_ts_RSUContainerHighFrequency, _asn_ctx), + asn_MAP_cam_ts_RSUContainerHighFrequency_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_cam_ts_RSUContainerHighFrequency_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RSUContainerHighFrequency = { + "RSUContainerHighFrequency", + "RSUContainerHighFrequency", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RSUContainerHighFrequency_tags_1, + sizeof(asn_DEF_cam_ts_RSUContainerHighFrequency_tags_1) + /sizeof(asn_DEF_cam_ts_RSUContainerHighFrequency_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RSUContainerHighFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RSUContainerHighFrequency_tags_1) + /sizeof(asn_DEF_cam_ts_RSUContainerHighFrequency_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_cam_ts_RSUContainerHighFrequency_1, + 1, /* Elements count */ + &asn_SPC_cam_ts_RSUContainerHighFrequency_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShape.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShape.c new file mode 100644 index 000000000..57591d785 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShape.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RadialShape.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RadialShape_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_cam_ts_RadialShape_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_RadialShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianPosition3d, + 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 */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShape, range), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "range" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShape, horizontalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "horizontalOpeningAngleStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShape, horizontalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "horizontalOpeningAngleEnd" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_RadialShape, verticalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "verticalOpeningAngleStart" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_RadialShape, verticalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "verticalOpeningAngleEnd" + }, +}; +static const int asn_MAP_cam_ts_RadialShape_oms_1[] = { 0, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RadialShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RadialShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* range */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* horizontalOpeningAngleEnd */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* verticalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* verticalOpeningAngleEnd */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RadialShape_specs_1 = { + sizeof(struct cam_ts_RadialShape), + offsetof(struct cam_ts_RadialShape, _asn_ctx), + asn_MAP_cam_ts_RadialShape_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_cam_ts_RadialShape_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RadialShape = { + "RadialShape", + "RadialShape", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RadialShape_tags_1, + sizeof(asn_DEF_cam_ts_RadialShape_tags_1) + /sizeof(asn_DEF_cam_ts_RadialShape_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RadialShape_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RadialShape_tags_1) + /sizeof(asn_DEF_cam_ts_RadialShape_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) + &asn_PER_type_cam_ts_RadialShape_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_constraint + }, + asn_MBR_cam_ts_RadialShape_1, + 6, /* Elements count */ + &asn_SPC_cam_ts_RadialShape_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapeDetails.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapeDetails.c new file mode 100644 index 000000000..35d3f6a5e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapeDetails.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RadialShapeDetails.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RadialShapeDetails_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_cam_ts_RadialShapeDetails_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShapeDetails, range), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "range" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShapeDetails, horizontalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "horizontalOpeningAngleStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShapeDetails, horizontalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "horizontalOpeningAngleEnd" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_RadialShapeDetails, verticalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "verticalOpeningAngleStart" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_RadialShapeDetails, verticalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "verticalOpeningAngleEnd" + }, +}; +static const int asn_MAP_cam_ts_RadialShapeDetails_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RadialShapeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RadialShapeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* range */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* horizontalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalOpeningAngleEnd */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* verticalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* verticalOpeningAngleEnd */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RadialShapeDetails_specs_1 = { + sizeof(struct cam_ts_RadialShapeDetails), + offsetof(struct cam_ts_RadialShapeDetails, _asn_ctx), + asn_MAP_cam_ts_RadialShapeDetails_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_cam_ts_RadialShapeDetails_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RadialShapeDetails = { + "RadialShapeDetails", + "RadialShapeDetails", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RadialShapeDetails_tags_1, + sizeof(asn_DEF_cam_ts_RadialShapeDetails_tags_1) + /sizeof(asn_DEF_cam_ts_RadialShapeDetails_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RadialShapeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RadialShapeDetails_tags_1) + /sizeof(asn_DEF_cam_ts_RadialShapeDetails_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) + &asn_PER_type_cam_ts_RadialShapeDetails_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_constraint + }, + asn_MBR_cam_ts_RadialShapeDetails_1, + 5, /* Elements count */ + &asn_SPC_cam_ts_RadialShapeDetails_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapes.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapes.c new file mode 100644 index 000000000..872b75dc3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapes.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RadialShapes.h" + +asn_TYPE_member_t asn_MBR_cam_ts_RadialShapes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShapes, refPointId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier1B, + 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 */ + "refPointId" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShapes, xCoordinate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinateSmall, + 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 */ + "xCoordinate" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShapes, yCoordinate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinateSmall, + 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 */ + "yCoordinate" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_RadialShapes, zCoordinate), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianCoordinateSmall, + 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 */ + "zCoordinate" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RadialShapes, radialShapesList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RadialShapesList, + 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 */ + "radialShapesList" + }, +}; +static const int asn_MAP_cam_ts_RadialShapes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RadialShapes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RadialShapes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* refPointId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* yCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* zCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* radialShapesList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RadialShapes_specs_1 = { + sizeof(struct cam_ts_RadialShapes), + offsetof(struct cam_ts_RadialShapes, _asn_ctx), + asn_MAP_cam_ts_RadialShapes_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_cam_ts_RadialShapes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RadialShapes = { + "RadialShapes", + "RadialShapes", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RadialShapes_tags_1, + sizeof(asn_DEF_cam_ts_RadialShapes_tags_1) + /sizeof(asn_DEF_cam_ts_RadialShapes_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RadialShapes_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RadialShapes_tags_1) + /sizeof(asn_DEF_cam_ts_RadialShapes_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_cam_ts_RadialShapes_1, + 5, /* Elements count */ + &asn_SPC_cam_ts_RadialShapes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapesList.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapesList.c new file mode 100644 index 000000000..9a48f9a6e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RadialShapesList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RadialShapesList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RadialShapesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_cam_ts_RadialShapesList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_RadialShapeDetails, + 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_cam_ts_RadialShapesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_RadialShapesList_specs_1 = { + sizeof(struct cam_ts_RadialShapesList), + offsetof(struct cam_ts_RadialShapesList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RadialShapesList = { + "RadialShapesList", + "RadialShapesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_RadialShapesList_tags_1, + sizeof(asn_DEF_cam_ts_RadialShapesList_tags_1) + /sizeof(asn_DEF_cam_ts_RadialShapesList_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RadialShapesList_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RadialShapesList_tags_1) + /sizeof(asn_DEF_cam_ts_RadialShapesList_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) + &asn_PER_type_cam_ts_RadialShapesList_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_cam_ts_RadialShapesList_1, + 1, /* Single element */ + &asn_SPC_cam_ts_RadialShapesList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RailwayLevelCrossingSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RailwayLevelCrossingSubCauseCode.c new file mode 100644 index 000000000..0389296fa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RailwayLevelCrossingSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RailwayLevelCrossingSubCauseCode.h" + +int +cam_ts_RailwayLevelCrossingSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RailwayLevelCrossingSubCauseCode_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_cam_ts_RailwayLevelCrossingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode = { + "RailwayLevelCrossingSubCauseCode", + "RailwayLevelCrossingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_RailwayLevelCrossingSubCauseCode_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) + &asn_PER_type_cam_ts_RailwayLevelCrossingSubCauseCode_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) */ + cam_ts_RailwayLevelCrossingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RectangularShape.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RectangularShape.c new file mode 100644 index 000000000..e7b795a9f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RectangularShape.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RectangularShape.h" + +asn_TYPE_member_t asn_MBR_cam_ts_RectangularShape_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_RectangularShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianPosition3d, + 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 */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RectangularShape, semiLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "semiLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RectangularShape, semiBreadth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "semiBreadth" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_RectangularShape, orientation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngleValue, + 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 */ + "orientation" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_RectangularShape, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength12b, + 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 */ + "height" + }, +}; +static const int asn_MAP_cam_ts_RectangularShape_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RectangularShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RectangularShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiBreadth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* orientation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* height */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RectangularShape_specs_1 = { + sizeof(struct cam_ts_RectangularShape), + offsetof(struct cam_ts_RectangularShape, _asn_ctx), + asn_MAP_cam_ts_RectangularShape_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_cam_ts_RectangularShape_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RectangularShape = { + "RectangularShape", + "RectangularShape", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RectangularShape_tags_1, + sizeof(asn_DEF_cam_ts_RectangularShape_tags_1) + /sizeof(asn_DEF_cam_ts_RectangularShape_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RectangularShape_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RectangularShape_tags_1) + /sizeof(asn_DEF_cam_ts_RectangularShape_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_cam_ts_RectangularShape_1, + 5, /* Elements count */ + &asn_SPC_cam_ts_RectangularShape_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ReferencePosition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ReferencePosition.c new file mode 100644 index 000000000..56521a958 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ReferencePosition.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_cam_ts_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 cam_ts_ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 cam_ts_ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PosConfidenceEllipse, + 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 */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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_cam_ts_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ReferencePosition_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 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ReferencePosition_specs_1 = { + sizeof(struct cam_ts_ReferencePosition), + offsetof(struct cam_ts_ReferencePosition, _asn_ctx), + asn_MAP_cam_ts_ReferencePosition_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ReferencePosition_tags_1, + sizeof(asn_DEF_cam_ts_ReferencePosition_tags_1) + /sizeof(asn_DEF_cam_ts_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ReferencePosition_tags_1) + /sizeof(asn_DEF_cam_ts_ReferencePosition_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_cam_ts_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ReferencePositionWithConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ReferencePositionWithConfidence.c new file mode 100644 index 000000000..8852ed298 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ReferencePositionWithConfidence.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ReferencePositionWithConfidence.h" + +asn_TYPE_member_t asn_MBR_cam_ts_ReferencePositionWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ReferencePositionWithConfidence, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 cam_ts_ReferencePositionWithConfidence, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 cam_ts_ReferencePositionWithConfidence, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PositionConfidenceEllipse, + 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 */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_ReferencePositionWithConfidence, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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_cam_ts_ReferencePositionWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_ReferencePositionWithConfidence_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 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_ReferencePositionWithConfidence_specs_1 = { + sizeof(struct cam_ts_ReferencePositionWithConfidence), + offsetof(struct cam_ts_ReferencePositionWithConfidence, _asn_ctx), + asn_MAP_cam_ts_ReferencePositionWithConfidence_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ReferencePositionWithConfidence = { + "ReferencePositionWithConfidence", + "ReferencePositionWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_ReferencePositionWithConfidence_tags_1, + sizeof(asn_DEF_cam_ts_ReferencePositionWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_ReferencePositionWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ReferencePositionWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ReferencePositionWithConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_ReferencePositionWithConfidence_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_cam_ts_ReferencePositionWithConfidence_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_ReferencePositionWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RelevanceDistance.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RelevanceDistance.c new file mode 100644 index 000000000..cea05e49e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RelevanceDistance.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RelevanceDistance.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_RelevanceDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { 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_cam_ts_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_cam_ts_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cam_ts_RelevanceDistance_specs_1 = { + asn_MAP_cam_ts_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_RelevanceDistance_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* 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_cam_ts_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_RelevanceDistance_tags_1, + sizeof(asn_DEF_cam_ts_RelevanceDistance_tags_1) + /sizeof(asn_DEF_cam_ts_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RelevanceDistance_tags_1) + /sizeof(asn_DEF_cam_ts_RelevanceDistance_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) + &asn_PER_type_cam_ts_RelevanceDistance_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_cam_ts_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RelevanceTrafficDirection.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RelevanceTrafficDirection.c new file mode 100644 index 000000000..c1b230571 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RelevanceTrafficDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RelevanceTrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_RelevanceTrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_cam_ts_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_cam_ts_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cam_ts_RelevanceTrafficDirection_specs_1 = { + asn_MAP_cam_ts_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_RelevanceTrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* 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_cam_ts_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_cam_ts_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_cam_ts_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_cam_ts_RelevanceTrafficDirection_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) + &asn_PER_type_cam_ts_RelevanceTrafficDirection_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_cam_ts_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RequestResponseIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RequestResponseIndication.c new file mode 100644 index 000000000..f06bb5c37 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RequestResponseIndication.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RequestResponseIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_RequestResponseIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_cam_ts_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cam_ts_RequestResponseIndication_specs_1 = { + asn_MAP_cam_ts_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_RequestResponseIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* 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_cam_ts_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_RequestResponseIndication_tags_1, + sizeof(asn_DEF_cam_ts_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_cam_ts_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_cam_ts_RequestResponseIndication_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) + &asn_PER_type_cam_ts_RequestResponseIndication_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_cam_ts_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 000000000..41f96c2e9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_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_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_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) + &asn_PER_type_cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_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) */ + cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RescueContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RescueContainer.c new file mode 100644 index 000000000..ddc844309 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RescueContainer.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RescueContainer.h" + +asn_TYPE_member_t asn_MBR_cam_ts_RescueContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RescueContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LightBarSirenInUse, + 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 */ + "lightBarSirenInUse" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_RescueContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RescueContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* lightBarSirenInUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RescueContainer_specs_1 = { + sizeof(struct cam_ts_RescueContainer), + offsetof(struct cam_ts_RescueContainer, _asn_ctx), + asn_MAP_cam_ts_RescueContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RescueContainer = { + "RescueContainer", + "RescueContainer", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RescueContainer_tags_1, + sizeof(asn_DEF_cam_ts_RescueContainer_tags_1) + /sizeof(asn_DEF_cam_ts_RescueContainer_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RescueContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RescueContainer_tags_1) + /sizeof(asn_DEF_cam_ts_RescueContainer_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_cam_ts_RescueContainer_1, + 1, /* Elements count */ + &asn_SPC_cam_ts_RescueContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RestrictedTypes.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RestrictedTypes.c new file mode 100644 index 000000000..fbb677836 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RestrictedTypes.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RestrictedTypes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_cam_ts_StationType, + 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_cam_ts_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_RestrictedTypes_specs_1 = { + sizeof(struct cam_ts_RestrictedTypes), + offsetof(struct cam_ts_RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_RestrictedTypes_tags_1, + sizeof(asn_DEF_cam_ts_RestrictedTypes_tags_1) + /sizeof(asn_DEF_cam_ts_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RestrictedTypes_tags_1) + /sizeof(asn_DEF_cam_ts_RestrictedTypes_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) + &asn_PER_type_cam_ts_RestrictedTypes_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_cam_ts_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_cam_ts_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadConfigurationSection.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadConfigurationSection.c new file mode 100644 index 000000000..058da54a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadConfigurationSection.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSection.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RoadConfigurationSection_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { 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_cam_ts_RoadConfigurationSection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RoadConfigurationSection, roadSectionDefinition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RoadSectionDefinition, + 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 */ + "roadSectionDefinition" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_RoadConfigurationSection, roadType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RoadType, + 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 */ + "roadType" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_RoadConfigurationSection, laneConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_BasicLaneConfiguration, + 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 */ + "laneConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_RoadConfigurationSection, mapemConfiguration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_MapemConfiguration, + 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 */ + "mapemConfiguration" + }, +}; +static const int asn_MAP_cam_ts_RoadConfigurationSection_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RoadConfigurationSection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RoadConfigurationSection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadSectionDefinition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roadType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* mapemConfiguration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RoadConfigurationSection_specs_1 = { + sizeof(struct cam_ts_RoadConfigurationSection), + offsetof(struct cam_ts_RoadConfigurationSection, _asn_ctx), + asn_MAP_cam_ts_RoadConfigurationSection_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_cam_ts_RoadConfigurationSection_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadConfigurationSection = { + "RoadConfigurationSection", + "RoadConfigurationSection", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RoadConfigurationSection_tags_1, + sizeof(asn_DEF_cam_ts_RoadConfigurationSection_tags_1) + /sizeof(asn_DEF_cam_ts_RoadConfigurationSection_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RoadConfigurationSection_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RoadConfigurationSection_tags_1) + /sizeof(asn_DEF_cam_ts_RoadConfigurationSection_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) + &asn_PER_type_cam_ts_RoadConfigurationSection_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_constraint + }, + asn_MBR_cam_ts_RoadConfigurationSection_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_RoadConfigurationSection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadConfigurationSectionList.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadConfigurationSectionList.c new file mode 100644 index 000000000..ea20ee319 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadConfigurationSectionList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RoadConfigurationSectionList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_RoadConfigurationSectionList_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) */ +static asn_TYPE_member_t asn_MBR_cam_ts_RoadConfigurationSectionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_RoadConfigurationSection, + 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_cam_ts_RoadConfigurationSectionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_RoadConfigurationSectionList_specs_1 = { + sizeof(struct cam_ts_RoadConfigurationSectionList), + offsetof(struct cam_ts_RoadConfigurationSectionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadConfigurationSectionList = { + "RoadConfigurationSectionList", + "RoadConfigurationSectionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_RoadConfigurationSectionList_tags_1, + sizeof(asn_DEF_cam_ts_RoadConfigurationSectionList_tags_1) + /sizeof(asn_DEF_cam_ts_RoadConfigurationSectionList_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RoadConfigurationSectionList_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RoadConfigurationSectionList_tags_1) + /sizeof(asn_DEF_cam_ts_RoadConfigurationSectionList_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) + &asn_PER_type_cam_ts_RoadConfigurationSectionList_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_cam_ts_RoadConfigurationSectionList_1, + 1, /* Single element */ + &asn_SPC_cam_ts_RoadConfigurationSectionList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSectionDefinition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSectionDefinition.c new file mode 100644 index 000000000..de32f6f59 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSectionDefinition.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RoadSectionDefinition.h" + +asn_TYPE_member_t asn_MBR_cam_ts_RoadSectionDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RoadSectionDefinition, startingPointSection), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_GeoPosition, + 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 */ + "startingPointSection" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_RoadSectionDefinition, lengthOfSection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength2B, + 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 */ + "lengthOfSection" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_RoadSectionDefinition, endingPointSection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_GeoPosition, + 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 */ + "endingPointSection" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RoadSectionDefinition, connectedPaths), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PathReferences, + 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 */ + "connectedPaths" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RoadSectionDefinition, includedPaths), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PathReferences, + 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 */ + "includedPaths" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RoadSectionDefinition, isEventZoneIncluded), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 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 */ + "isEventZoneIncluded" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RoadSectionDefinition, isEventZoneConnected), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 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 */ + "isEventZoneConnected" + }, +}; +static const int asn_MAP_cam_ts_RoadSectionDefinition_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RoadSectionDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RoadSectionDefinition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startingPointSection */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lengthOfSection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* endingPointSection */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* connectedPaths */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* includedPaths */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* isEventZoneIncluded */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* isEventZoneConnected */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RoadSectionDefinition_specs_1 = { + sizeof(struct cam_ts_RoadSectionDefinition), + offsetof(struct cam_ts_RoadSectionDefinition, _asn_ctx), + asn_MAP_cam_ts_RoadSectionDefinition_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_cam_ts_RoadSectionDefinition_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadSectionDefinition = { + "RoadSectionDefinition", + "RoadSectionDefinition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RoadSectionDefinition_tags_1, + sizeof(asn_DEF_cam_ts_RoadSectionDefinition_tags_1) + /sizeof(asn_DEF_cam_ts_RoadSectionDefinition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RoadSectionDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RoadSectionDefinition_tags_1) + /sizeof(asn_DEF_cam_ts_RoadSectionDefinition_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_cam_ts_RoadSectionDefinition_1, + 7, /* Elements count */ + &asn_SPC_cam_ts_RoadSectionDefinition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSectionId.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSectionId.c new file mode 100644 index 000000000..2e096b68b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSectionId.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RoadSectionId.h" + +int +cam_ts_RoadSectionId_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 <= 8L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RoadSectionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 8 } /* (0..8,...) */, + { 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_cam_ts_RoadSectionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadSectionId = { + "RoadSectionId", + "RoadSectionId", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_RoadSectionId_tags_1, + sizeof(asn_DEF_cam_ts_RoadSectionId_tags_1) + /sizeof(asn_DEF_cam_ts_RoadSectionId_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RoadSectionId_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RoadSectionId_tags_1) + /sizeof(asn_DEF_cam_ts_RoadSectionId_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) + &asn_PER_type_cam_ts_RoadSectionId_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) */ + cam_ts_RoadSectionId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSegmentReferenceId.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSegmentReferenceId.c new file mode 100644 index 000000000..023d40407 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadSegmentReferenceId.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RoadSegmentReferenceId.h" + +asn_TYPE_member_t asn_MBR_cam_ts_RoadSegmentReferenceId_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_RoadSegmentReferenceId, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier2B, + 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 */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RoadSegmentReferenceId, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier2B, + 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 */ + "id" + }, +}; +static const int asn_MAP_cam_ts_RoadSegmentReferenceId_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RoadSegmentReferenceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RoadSegmentReferenceId_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* region */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RoadSegmentReferenceId_specs_1 = { + sizeof(struct cam_ts_RoadSegmentReferenceId), + offsetof(struct cam_ts_RoadSegmentReferenceId, _asn_ctx), + asn_MAP_cam_ts_RoadSegmentReferenceId_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_cam_ts_RoadSegmentReferenceId_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadSegmentReferenceId = { + "RoadSegmentReferenceId", + "RoadSegmentReferenceId", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RoadSegmentReferenceId_tags_1, + sizeof(asn_DEF_cam_ts_RoadSegmentReferenceId_tags_1) + /sizeof(asn_DEF_cam_ts_RoadSegmentReferenceId_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RoadSegmentReferenceId_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RoadSegmentReferenceId_tags_1) + /sizeof(asn_DEF_cam_ts_RoadSegmentReferenceId_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_cam_ts_RoadSegmentReferenceId_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_RoadSegmentReferenceId_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadType.c new file mode 100644 index 000000000..4e5086866 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RoadType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_cam_ts_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_cam_ts_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_RoadType_specs_1 = { + asn_MAP_cam_ts_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_RoadType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* 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_cam_ts_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_RoadType_tags_1, + sizeof(asn_DEF_cam_ts_RoadType_tags_1) + /sizeof(asn_DEF_cam_ts_RoadType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RoadType_tags_1) + /sizeof(asn_DEF_cam_ts_RoadType_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) + &asn_PER_type_cam_ts_RoadType_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_cam_ts_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadWorksContainerBasic.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadWorksContainerBasic.c new file mode 100644 index 000000000..139b48c65 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadWorksContainerBasic.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RoadWorksContainerBasic.h" + +asn_TYPE_member_t asn_MBR_cam_ts_RoadWorksContainerBasic_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_RoadWorksContainerBasic, roadworksSubCauseCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RoadworksSubCauseCode, + 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 */ + "roadworksSubCauseCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_RoadWorksContainerBasic, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LightBarSirenInUse, + 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 */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_RoadWorksContainerBasic, closedLanes), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ClosedLanes, + 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 */ + "closedLanes" + }, +}; +static const int asn_MAP_cam_ts_RoadWorksContainerBasic_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_RoadWorksContainerBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_RoadWorksContainerBasic_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadworksSubCauseCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* closedLanes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_RoadWorksContainerBasic_specs_1 = { + sizeof(struct cam_ts_RoadWorksContainerBasic), + offsetof(struct cam_ts_RoadWorksContainerBasic, _asn_ctx), + asn_MAP_cam_ts_RoadWorksContainerBasic_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_RoadWorksContainerBasic_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadWorksContainerBasic = { + "RoadWorksContainerBasic", + "RoadWorksContainerBasic", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_RoadWorksContainerBasic_tags_1, + sizeof(asn_DEF_cam_ts_RoadWorksContainerBasic_tags_1) + /sizeof(asn_DEF_cam_ts_RoadWorksContainerBasic_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RoadWorksContainerBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RoadWorksContainerBasic_tags_1) + /sizeof(asn_DEF_cam_ts_RoadWorksContainerBasic_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_cam_ts_RoadWorksContainerBasic_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_RoadWorksContainerBasic_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadworksSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadworksSubCauseCode.c new file mode 100644 index 000000000..097c3ecb3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_RoadworksSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_RoadworksSubCauseCode.h" + +int +cam_ts_RoadworksSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_RoadworksSubCauseCode_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_cam_ts_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_RoadworksSubCauseCode_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) + &asn_PER_type_cam_ts_RoadworksSubCauseCode_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) */ + cam_ts_RoadworksSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafeDistanceIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafeDistanceIndication.c new file mode 100644 index 000000000..86dbe2155 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafeDistanceIndication.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndication.h" + +asn_TYPE_member_t asn_MBR_cam_ts_SafeDistanceIndication_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_SafeDistanceIndication, subjectStation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "subjectStation" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SafeDistanceIndication, safeDistanceIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SafeDistanceIndicator, + 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 */ + "safeDistanceIndicator" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_SafeDistanceIndication, timeToCollision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeTenthOfSecond, + 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 */ + "timeToCollision" + }, +}; +static const int asn_MAP_cam_ts_SafeDistanceIndication_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_SafeDistanceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_SafeDistanceIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subjectStation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* safeDistanceIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* timeToCollision */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_SafeDistanceIndication_specs_1 = { + sizeof(struct cam_ts_SafeDistanceIndication), + offsetof(struct cam_ts_SafeDistanceIndication, _asn_ctx), + asn_MAP_cam_ts_SafeDistanceIndication_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_SafeDistanceIndication_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SafeDistanceIndication = { + "SafeDistanceIndication", + "SafeDistanceIndication", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_SafeDistanceIndication_tags_1, + sizeof(asn_DEF_cam_ts_SafeDistanceIndication_tags_1) + /sizeof(asn_DEF_cam_ts_SafeDistanceIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SafeDistanceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SafeDistanceIndication_tags_1) + /sizeof(asn_DEF_cam_ts_SafeDistanceIndication_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_cam_ts_SafeDistanceIndication_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_SafeDistanceIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafeDistanceIndicator.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafeDistanceIndicator.c new file mode 100644 index 000000000..2d970c6c3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafeDistanceIndicator.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SafeDistanceIndicator.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_cam_ts_SafeDistanceIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SafeDistanceIndicator = { + "SafeDistanceIndicator", + "SafeDistanceIndicator", + &asn_OP_BOOLEAN, + asn_DEF_cam_ts_SafeDistanceIndicator_tags_1, + sizeof(asn_DEF_cam_ts_SafeDistanceIndicator_tags_1) + /sizeof(asn_DEF_cam_ts_SafeDistanceIndicator_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SafeDistanceIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SafeDistanceIndicator_tags_1) + /sizeof(asn_DEF_cam_ts_SafeDistanceIndicator_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) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafetyCarContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafetyCarContainer.c new file mode 100644 index 000000000..989d5b6f4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SafetyCarContainer.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SafetyCarContainer.h" + +asn_TYPE_member_t asn_MBR_cam_ts_SafetyCarContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SafetyCarContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LightBarSirenInUse, + 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 */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_SafetyCarContainer, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CauseCodeV2, + 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 */ + "incidentIndication" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_SafetyCarContainer, trafficRule), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TrafficRule, + 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 */ + "trafficRule" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_SafetyCarContainer, speedLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SpeedLimit, + 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 */ + "speedLimit" + }, +}; +static const int asn_MAP_cam_ts_SafetyCarContainer_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_SafetyCarContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_SafetyCarContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* trafficRule */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* speedLimit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_SafetyCarContainer_specs_1 = { + sizeof(struct cam_ts_SafetyCarContainer), + offsetof(struct cam_ts_SafetyCarContainer, _asn_ctx), + asn_MAP_cam_ts_SafetyCarContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_cam_ts_SafetyCarContainer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SafetyCarContainer = { + "SafetyCarContainer", + "SafetyCarContainer", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_SafetyCarContainer_tags_1, + sizeof(asn_DEF_cam_ts_SafetyCarContainer_tags_1) + /sizeof(asn_DEF_cam_ts_SafetyCarContainer_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SafetyCarContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SafetyCarContainer_tags_1) + /sizeof(asn_DEF_cam_ts_SafetyCarContainer_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_cam_ts_SafetyCarContainer_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_SafetyCarContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SemiAxisLength.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SemiAxisLength.c new file mode 100644 index 000000000..3ccc32ef5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SemiAxisLength.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SemiAxisLength.h" + +int +cam_ts_SemiAxisLength_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 <= 4095L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SemiAxisLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { 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_cam_ts_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SemiAxisLength_tags_1, + sizeof(asn_DEF_cam_ts_SemiAxisLength_tags_1) + /sizeof(asn_DEF_cam_ts_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SemiAxisLength_tags_1) + /sizeof(asn_DEF_cam_ts_SemiAxisLength_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) + &asn_PER_type_cam_ts_SemiAxisLength_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) */ + cam_ts_SemiAxisLength_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SensorType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SensorType.c new file mode 100644 index 000000000..af9516d1f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SensorType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SensorType.h" + +int +cam_ts_SensorType_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 <= 31L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_SensorType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { 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_cam_ts_SensorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SensorType = { + "SensorType", + "SensorType", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SensorType_tags_1, + sizeof(asn_DEF_cam_ts_SensorType_tags_1) + /sizeof(asn_DEF_cam_ts_SensorType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SensorType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SensorType_tags_1) + /sizeof(asn_DEF_cam_ts_SensorType_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) + &asn_PER_type_cam_ts_SensorType_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) */ + cam_ts_SensorType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SensorTypes.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SensorTypes.c new file mode 100644 index 000000000..5ef9b2628 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SensorTypes.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SensorTypes.h" + +int +cam_ts_SensorTypes_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 == 16UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SensorTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 16, 16 } /* (SIZE(16..16,...)) */, + 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_cam_ts_SensorTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SensorTypes = { + "SensorTypes", + "SensorTypes", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_SensorTypes_tags_1, + sizeof(asn_DEF_cam_ts_SensorTypes_tags_1) + /sizeof(asn_DEF_cam_ts_SensorTypes_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SensorTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SensorTypes_tags_1) + /sizeof(asn_DEF_cam_ts_SensorTypes_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) + &asn_PER_type_cam_ts_SensorTypes_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) */ + cam_ts_SensorTypes_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceNumber.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceNumber.c new file mode 100644 index 000000000..5fccc3220 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceNumber.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SequenceNumber.h" + +int +cam_ts_SequenceNumber_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 <= 65535L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SequenceNumber_constr_1 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) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SequenceNumber_tags_1, + sizeof(asn_DEF_cam_ts_SequenceNumber_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SequenceNumber_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceNumber_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) + &asn_PER_type_cam_ts_SequenceNumber_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) */ + cam_ts_SequenceNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfCartesianPosition3d.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfCartesianPosition3d.c new file mode 100644 index 000000000..37076d600 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfCartesianPosition3d.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SequenceOfCartesianPosition3d.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SequenceOfCartesianPosition3d_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_cam_ts_SequenceOfCartesianPosition3d_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_CartesianPosition3d, + 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_cam_ts_SequenceOfCartesianPosition3d_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_SequenceOfCartesianPosition3d_specs_1 = { + sizeof(struct cam_ts_SequenceOfCartesianPosition3d), + offsetof(struct cam_ts_SequenceOfCartesianPosition3d, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceOfCartesianPosition3d = { + "SequenceOfCartesianPosition3d", + "SequenceOfCartesianPosition3d", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_SequenceOfCartesianPosition3d_tags_1, + sizeof(asn_DEF_cam_ts_SequenceOfCartesianPosition3d_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceOfCartesianPosition3d_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SequenceOfCartesianPosition3d_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SequenceOfCartesianPosition3d_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceOfCartesianPosition3d_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) + &asn_PER_type_cam_ts_SequenceOfCartesianPosition3d_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_cam_ts_SequenceOfCartesianPosition3d_1, + 1, /* Single element */ + &asn_SPC_cam_ts_SequenceOfCartesianPosition3d_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfIdentifier1B.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfIdentifier1B.c new file mode 100644 index 000000000..972c789bd --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfIdentifier1B.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SequenceOfIdentifier1B.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SequenceOfIdentifier1B_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 128 } /* (SIZE(1..128,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_cam_ts_SequenceOfIdentifier1B_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_cam_ts_Identifier1B, + 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_cam_ts_SequenceOfIdentifier1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_cam_ts_SequenceOfIdentifier1B_specs_1 = { + sizeof(struct cam_ts_SequenceOfIdentifier1B), + offsetof(struct cam_ts_SequenceOfIdentifier1B, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceOfIdentifier1B = { + "SequenceOfIdentifier1B", + "SequenceOfIdentifier1B", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_SequenceOfIdentifier1B_tags_1, + sizeof(asn_DEF_cam_ts_SequenceOfIdentifier1B_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceOfIdentifier1B_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SequenceOfIdentifier1B_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SequenceOfIdentifier1B_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceOfIdentifier1B_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) + &asn_PER_type_cam_ts_SequenceOfIdentifier1B_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_cam_ts_SequenceOfIdentifier1B_1, + 1, /* Single element */ + &asn_SPC_cam_ts_SequenceOfIdentifier1B_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfSafeDistanceIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfSafeDistanceIndication.c new file mode 100644 index 000000000..b0d339da2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfSafeDistanceIndication.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SequenceOfSafeDistanceIndication.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_SequenceOfSafeDistanceIndication_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) */ +static asn_TYPE_member_t asn_MBR_cam_ts_SequenceOfSafeDistanceIndication_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_SafeDistanceIndication, + 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_cam_ts_SequenceOfSafeDistanceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_SequenceOfSafeDistanceIndication_specs_1 = { + sizeof(struct cam_ts_SequenceOfSafeDistanceIndication), + offsetof(struct cam_ts_SequenceOfSafeDistanceIndication, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceOfSafeDistanceIndication = { + "SequenceOfSafeDistanceIndication", + "SequenceOfSafeDistanceIndication", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_SequenceOfSafeDistanceIndication_tags_1, + sizeof(asn_DEF_cam_ts_SequenceOfSafeDistanceIndication_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceOfSafeDistanceIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SequenceOfSafeDistanceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SequenceOfSafeDistanceIndication_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceOfSafeDistanceIndication_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) + &asn_PER_type_cam_ts_SequenceOfSafeDistanceIndication_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_cam_ts_SequenceOfSafeDistanceIndication_1, + 1, /* Single element */ + &asn_SPC_cam_ts_SequenceOfSafeDistanceIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfTrajectoryInterceptionIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfTrajectoryInterceptionIndication.c new file mode 100644 index 000000000..e538ff577 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SequenceOfTrajectoryInterceptionIndication.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SequenceOfTrajectoryInterceptionIndication.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_SequenceOfTrajectoryInterceptionIndication_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) */ +static asn_TYPE_member_t asn_MBR_cam_ts_SequenceOfTrajectoryInterceptionIndication_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_TrajectoryInterceptionIndication, + 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_cam_ts_SequenceOfTrajectoryInterceptionIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_SequenceOfTrajectoryInterceptionIndication_specs_1 = { + sizeof(struct cam_ts_SequenceOfTrajectoryInterceptionIndication), + offsetof(struct cam_ts_SequenceOfTrajectoryInterceptionIndication, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SequenceOfTrajectoryInterceptionIndication = { + "SequenceOfTrajectoryInterceptionIndication", + "SequenceOfTrajectoryInterceptionIndication", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_SequenceOfTrajectoryInterceptionIndication_tags_1, + sizeof(asn_DEF_cam_ts_SequenceOfTrajectoryInterceptionIndication_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceOfTrajectoryInterceptionIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SequenceOfTrajectoryInterceptionIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SequenceOfTrajectoryInterceptionIndication_tags_1) + /sizeof(asn_DEF_cam_ts_SequenceOfTrajectoryInterceptionIndication_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) + &asn_PER_type_cam_ts_SequenceOfTrajectoryInterceptionIndication_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_cam_ts_SequenceOfTrajectoryInterceptionIndication_1, + 1, /* Single element */ + &asn_SPC_cam_ts_SequenceOfTrajectoryInterceptionIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Shape.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Shape.c new file mode 100644 index 000000000..01b623114 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Shape.c @@ -0,0 +1,181 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Shape.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Shape_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { 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_cam_ts_Shape_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Shape, choice.rectangular), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RectangularShape, + 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 */ + "rectangular" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Shape, choice.circular), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CircularShape, + 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 */ + "circular" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Shape, choice.polygonal), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PolygonalShape, + 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 */ + "polygonal" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Shape, choice.elliptical), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EllipticalShape, + 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 */ + "elliptical" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Shape, choice.radial), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RadialShape, + 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 */ + "radial" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Shape, choice.radialShapes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RadialShapes, + 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 */ + "radialShapes" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Shape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rectangular */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* circular */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* polygonal */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elliptical */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* radial */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* radialShapes */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_Shape_specs_1 = { + sizeof(struct cam_ts_Shape), + offsetof(struct cam_ts_Shape, _asn_ctx), + offsetof(struct cam_ts_Shape, present), + sizeof(((struct cam_ts_Shape *)0)->present), + asn_MAP_cam_ts_Shape_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + 6 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Shape = { + "Shape", + "Shape", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_Shape_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_Shape_1, + 6, /* Elements count */ + &asn_SPC_cam_ts_Shape_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SignalViolationSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SignalViolationSubCauseCode.c new file mode 100644 index 000000000..c4538f164 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SignalViolationSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SignalViolationSubCauseCode.h" + +int +cam_ts_SignalViolationSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SignalViolationSubCauseCode_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_cam_ts_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_SignalViolationSubCauseCode_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) + &asn_PER_type_cam_ts_SignalViolationSubCauseCode_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) */ + cam_ts_SignalViolationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SlowVehicleSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SlowVehicleSubCauseCode.c new file mode 100644 index 000000000..a47d13733 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SlowVehicleSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SlowVehicleSubCauseCode.h" + +int +cam_ts_SlowVehicleSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SlowVehicleSubCauseCode_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_cam_ts_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_SlowVehicleSubCauseCode_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) + &asn_PER_type_cam_ts_SlowVehicleSubCauseCode_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) */ + cam_ts_SlowVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialTransportContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialTransportContainer.c new file mode 100644 index 000000000..8b33e07ee --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialTransportContainer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SpecialTransportContainer.h" + +asn_TYPE_member_t asn_MBR_cam_ts_SpecialTransportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialTransportContainer, specialTransportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SpecialTransportType, + 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 */ + "specialTransportType" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialTransportContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LightBarSirenInUse, + 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 */ + "lightBarSirenInUse" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_SpecialTransportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_SpecialTransportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* specialTransportType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lightBarSirenInUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_SpecialTransportContainer_specs_1 = { + sizeof(struct cam_ts_SpecialTransportContainer), + offsetof(struct cam_ts_SpecialTransportContainer, _asn_ctx), + asn_MAP_cam_ts_SpecialTransportContainer_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_cam_ts_SpecialTransportContainer = { + "SpecialTransportContainer", + "SpecialTransportContainer", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_SpecialTransportContainer_tags_1, + sizeof(asn_DEF_cam_ts_SpecialTransportContainer_tags_1) + /sizeof(asn_DEF_cam_ts_SpecialTransportContainer_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SpecialTransportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SpecialTransportContainer_tags_1) + /sizeof(asn_DEF_cam_ts_SpecialTransportContainer_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_cam_ts_SpecialTransportContainer_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_SpecialTransportContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialTransportType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialTransportType.c new file mode 100644 index 000000000..9b9657e69 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialTransportType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SpecialTransportType.h" + +int +cam_ts_SpecialTransportType_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 == 4UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SpecialTransportType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 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_cam_ts_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_SpecialTransportType_tags_1, + sizeof(asn_DEF_cam_ts_SpecialTransportType_tags_1) + /sizeof(asn_DEF_cam_ts_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SpecialTransportType_tags_1) + /sizeof(asn_DEF_cam_ts_SpecialTransportType_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) + &asn_PER_type_cam_ts_SpecialTransportType_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) */ + cam_ts_SpecialTransportType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialVehicleContainer.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialVehicleContainer.c new file mode 100644 index 000000000..205af5f5d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpecialVehicleContainer.c @@ -0,0 +1,202 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "/input/CAM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SpecialVehicleContainer.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SpecialVehicleContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { 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_cam_ts_SpecialVehicleContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialVehicleContainer, choice.publicTransportContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_PublicTransportContainer, + 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 */ + "publicTransportContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialVehicleContainer, choice.specialTransportContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SpecialTransportContainer, + 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 */ + "specialTransportContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialVehicleContainer, choice.dangerousGoodsContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DangerousGoodsContainer, + 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 */ + "dangerousGoodsContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialVehicleContainer, choice.roadWorksContainerBasic), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RoadWorksContainerBasic, + 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 */ + "roadWorksContainerBasic" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialVehicleContainer, choice.rescueContainer), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_RescueContainer, + 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 */ + "rescueContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialVehicleContainer, choice.emergencyContainer), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_EmergencyContainer, + 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 */ + "emergencyContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SpecialVehicleContainer, choice.safetyCarContainer), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SafetyCarContainer, + 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 */ + "safetyCarContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_SpecialVehicleContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* publicTransportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* specialTransportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dangerousGoodsContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadWorksContainerBasic */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rescueContainer */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* safetyCarContainer */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_SpecialVehicleContainer_specs_1 = { + sizeof(struct cam_ts_SpecialVehicleContainer), + offsetof(struct cam_ts_SpecialVehicleContainer, _asn_ctx), + offsetof(struct cam_ts_SpecialVehicleContainer, present), + sizeof(((struct cam_ts_SpecialVehicleContainer *)0)->present), + asn_MAP_cam_ts_SpecialVehicleContainer_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SpecialVehicleContainer = { + "SpecialVehicleContainer", + "SpecialVehicleContainer", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_SpecialVehicleContainer_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_SpecialVehicleContainer_1, + 7, /* Elements count */ + &asn_SPC_cam_ts_SpecialVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Speed.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Speed.c new file mode 100644 index 000000000..af88aa1d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Speed.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Speed.h" + +asn_TYPE_member_t asn_MBR_cam_ts_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SpeedValue, + 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 */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SpeedConfidence, + 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 */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Speed_specs_1 = { + sizeof(struct cam_ts_Speed), + offsetof(struct cam_ts_Speed, _asn_ctx), + asn_MAP_cam_ts_Speed_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_cam_ts_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_Speed_tags_1, + sizeof(asn_DEF_cam_ts_Speed_tags_1) + /sizeof(asn_DEF_cam_ts_Speed_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Speed_tags_1) + /sizeof(asn_DEF_cam_ts_Speed_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_cam_ts_Speed_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Speed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedConfidence.c new file mode 100644 index 000000000..e06243f45 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SpeedConfidence.h" + +int +cam_ts_SpeedConfidence_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SpeedConfidence_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_cam_ts_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SpeedConfidence_tags_1, + sizeof(asn_DEF_cam_ts_SpeedConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SpeedConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_SpeedConfidence_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) + &asn_PER_type_cam_ts_SpeedConfidence_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) */ + cam_ts_SpeedConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedLimit.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedLimit.c new file mode 100644 index 000000000..3cc324e64 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedLimit.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SpeedLimit.h" + +int +cam_ts_SpeedLimit_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 <= 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SpeedLimit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..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_cam_ts_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SpeedLimit_tags_1, + sizeof(asn_DEF_cam_ts_SpeedLimit_tags_1) + /sizeof(asn_DEF_cam_ts_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SpeedLimit_tags_1) + /sizeof(asn_DEF_cam_ts_SpeedLimit_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) + &asn_PER_type_cam_ts_SpeedLimit_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) */ + cam_ts_SpeedLimit_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedValue.c new file mode 100644 index 000000000..6c0941f00 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SpeedValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SpeedValue.h" + +int +cam_ts_SpeedValue_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 <= 16383L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { 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_cam_ts_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SpeedValue_tags_1, + sizeof(asn_DEF_cam_ts_SpeedValue_tags_1) + /sizeof(asn_DEF_cam_ts_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SpeedValue_tags_1) + /sizeof(asn_DEF_cam_ts_SpeedValue_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) + &asn_PER_type_cam_ts_SpeedValue_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) */ + cam_ts_SpeedValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StabilityChangeIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StabilityChangeIndication.c new file mode 100644 index 000000000..64b271029 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StabilityChangeIndication.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StabilityChangeIndication.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_StabilityChangeIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_StabilityChangeIndication, lossProbability), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StabilityLossProbability, + 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 */ + "lossProbability" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_StabilityChangeIndication, actionDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_DeltaTimeTenthOfSecond, + 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 */ + "actionDeltaTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_StabilityChangeIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_StabilityChangeIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lossProbability */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionDeltaTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_StabilityChangeIndication_specs_1 = { + sizeof(struct cam_ts_StabilityChangeIndication), + offsetof(struct cam_ts_StabilityChangeIndication, _asn_ctx), + asn_MAP_cam_ts_StabilityChangeIndication_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StabilityChangeIndication = { + "StabilityChangeIndication", + "StabilityChangeIndication", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_StabilityChangeIndication_tags_1, + sizeof(asn_DEF_cam_ts_StabilityChangeIndication_tags_1) + /sizeof(asn_DEF_cam_ts_StabilityChangeIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StabilityChangeIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StabilityChangeIndication_tags_1) + /sizeof(asn_DEF_cam_ts_StabilityChangeIndication_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_cam_ts_StabilityChangeIndication_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_StabilityChangeIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StabilityLossProbability.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StabilityLossProbability.c new file mode 100644 index 000000000..2acef440a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StabilityLossProbability.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StabilityLossProbability.h" + +int +cam_ts_StabilityLossProbability_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StabilityLossProbability_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_cam_ts_StabilityLossProbability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StabilityLossProbability = { + "StabilityLossProbability", + "StabilityLossProbability", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_StabilityLossProbability_tags_1, + sizeof(asn_DEF_cam_ts_StabilityLossProbability_tags_1) + /sizeof(asn_DEF_cam_ts_StabilityLossProbability_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StabilityLossProbability_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StabilityLossProbability_tags_1) + /sizeof(asn_DEF_cam_ts_StabilityLossProbability_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) + &asn_PER_type_cam_ts_StabilityLossProbability_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) */ + cam_ts_StabilityLossProbability_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength12b.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength12b.c new file mode 100644 index 000000000..370df1082 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength12b.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength12b.h" + +int +cam_ts_StandardLength12b_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 <= 4095L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StandardLength12b_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { 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_cam_ts_StandardLength12b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength12b = { + "StandardLength12b", + "StandardLength12b", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_StandardLength12b_tags_1, + sizeof(asn_DEF_cam_ts_StandardLength12b_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength12b_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StandardLength12b_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StandardLength12b_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength12b_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) + &asn_PER_type_cam_ts_StandardLength12b_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) */ + cam_ts_StandardLength12b_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength1B.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength1B.c new file mode 100644 index 000000000..a78b373f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength1B.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength1B.h" + +int +cam_ts_StandardLength1B_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StandardLength1B_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_cam_ts_StandardLength1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength1B = { + "StandardLength1B", + "StandardLength1B", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_StandardLength1B_tags_1, + sizeof(asn_DEF_cam_ts_StandardLength1B_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength1B_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StandardLength1B_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StandardLength1B_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength1B_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) + &asn_PER_type_cam_ts_StandardLength1B_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) */ + cam_ts_StandardLength1B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength2B.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength2B.c new file mode 100644 index 000000000..e3ff90a2d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength2B.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength2B.h" + +int +cam_ts_StandardLength2B_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 <= 65535L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StandardLength2B_constr_1 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) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_StandardLength2B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength2B = { + "StandardLength2B", + "StandardLength2B", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_StandardLength2B_tags_1, + sizeof(asn_DEF_cam_ts_StandardLength2B_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength2B_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StandardLength2B_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StandardLength2B_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength2B_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) + &asn_PER_type_cam_ts_StandardLength2B_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) */ + cam_ts_StandardLength2B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength3b.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength3b.c new file mode 100644 index 000000000..4edfdb73a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength3b.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength3b.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_StandardLength3b_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { 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_cam_ts_StandardLength3b_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_cam_ts_StandardLength3b_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cam_ts_StandardLength3b_specs_1 = { + asn_MAP_cam_ts_StandardLength3b_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_StandardLength3b_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* 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_cam_ts_StandardLength3b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength3b = { + "StandardLength3b", + "StandardLength3b", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_StandardLength3b_tags_1, + sizeof(asn_DEF_cam_ts_StandardLength3b_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength3b_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StandardLength3b_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StandardLength3b_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength3b_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) + &asn_PER_type_cam_ts_StandardLength3b_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_cam_ts_StandardLength3b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength9b.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength9b.c new file mode 100644 index 000000000..497efef9d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StandardLength9b.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StandardLength9b.h" + +int +cam_ts_StandardLength9b_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 <= 511L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StandardLength9b_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 511 } /* (0..511) */, + { 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_cam_ts_StandardLength9b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StandardLength9b = { + "StandardLength9b", + "StandardLength9b", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_StandardLength9b_tags_1, + sizeof(asn_DEF_cam_ts_StandardLength9b_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength9b_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StandardLength9b_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StandardLength9b_tags_1) + /sizeof(asn_DEF_cam_ts_StandardLength9b_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) + &asn_PER_type_cam_ts_StandardLength9b_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) */ + cam_ts_StandardLength9b_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationId.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationId.c new file mode 100644 index 000000000..4368e8c4d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationId.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StationId.h" + +int +cam_ts_StationId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StationId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +const asn_INTEGER_specifics_t asn_SPC_cam_ts_StationId_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_StationId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StationId = { + "StationId", + "StationId", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_StationId_tags_1, + sizeof(asn_DEF_cam_ts_StationId_tags_1) + /sizeof(asn_DEF_cam_ts_StationId_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StationId_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StationId_tags_1) + /sizeof(asn_DEF_cam_ts_StationId_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) + &asn_PER_type_cam_ts_StationId_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) */ + cam_ts_StationId_constraint + }, + 0, 0, /* No members */ + &asn_SPC_cam_ts_StationId_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationType.c new file mode 100644 index 000000000..1a6873859 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StationType.h" + +int +cam_ts_StationType_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StationType_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_cam_ts_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_StationType_tags_1, + sizeof(asn_DEF_cam_ts_StationType_tags_1) + /sizeof(asn_DEF_cam_ts_StationType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StationType_tags_1) + /sizeof(asn_DEF_cam_ts_StationType_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) + &asn_PER_type_cam_ts_StationType_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) */ + cam_ts_StationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationarySince.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationarySince.c new file mode 100644 index 000000000..76d075f7c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationarySince.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StationarySince.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_StationarySince_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_cam_ts_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_cam_ts_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cam_ts_StationarySince_specs_1 = { + asn_MAP_cam_ts_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_StationarySince_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* 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_cam_ts_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_StationarySince_tags_1, + sizeof(asn_DEF_cam_ts_StationarySince_tags_1) + /sizeof(asn_DEF_cam_ts_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StationarySince_tags_1) + /sizeof(asn_DEF_cam_ts_StationarySince_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) + &asn_PER_type_cam_ts_StationarySince_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_cam_ts_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationaryVehicleSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationaryVehicleSubCauseCode.c new file mode 100644 index 000000000..14933ee14 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StationaryVehicleSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StationaryVehicleSubCauseCode.h" + +int +cam_ts_StationaryVehicleSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StationaryVehicleSubCauseCode_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_cam_ts_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_StationaryVehicleSubCauseCode_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) + &asn_PER_type_cam_ts_StationaryVehicleSubCauseCode_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) */ + cam_ts_StationaryVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngle.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngle.c new file mode 100644 index 000000000..5cd31f16e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngle.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngle.h" + +asn_TYPE_member_t asn_MBR_cam_ts_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SteeringWheelAngleValue, + 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 */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SteeringWheelAngleConfidence, + 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 */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_SteeringWheelAngle_specs_1 = { + sizeof(struct cam_ts_SteeringWheelAngle), + offsetof(struct cam_ts_SteeringWheelAngle, _asn_ctx), + asn_MAP_cam_ts_SteeringWheelAngle_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_cam_ts_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_cam_ts_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_cam_ts_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_cam_ts_SteeringWheelAngle_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_cam_ts_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngleConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngleConfidence.c new file mode 100644 index 000000000..0fda3b927 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngleConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleConfidence.h" + +int +cam_ts_SteeringWheelAngleConfidence_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SteeringWheelAngleConfidence_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_cam_ts_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_cam_ts_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_SteeringWheelAngleConfidence_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) + &asn_PER_type_cam_ts_SteeringWheelAngleConfidence_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) */ + cam_ts_SteeringWheelAngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngleValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngleValue.c new file mode 100644 index 000000000..f4954132c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SteeringWheelAngleValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SteeringWheelAngleValue.h" + +int +cam_ts_SteeringWheelAngleValue_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 >= -511L && value <= 512L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { 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_cam_ts_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_cam_ts_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_cam_ts_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_cam_ts_SteeringWheelAngleValue_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) + &asn_PER_type_cam_ts_SteeringWheelAngleValue_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) */ + cam_ts_SteeringWheelAngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StoredInformationType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StoredInformationType.c new file mode 100644 index 000000000..eec47b3d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_StoredInformationType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_StoredInformationType.h" + +int +cam_ts_StoredInformationType_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 == 8UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_StoredInformationType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 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_cam_ts_StoredInformationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_StoredInformationType = { + "StoredInformationType", + "StoredInformationType", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_StoredInformationType_tags_1, + sizeof(asn_DEF_cam_ts_StoredInformationType_tags_1) + /sizeof(asn_DEF_cam_ts_StoredInformationType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_StoredInformationType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_StoredInformationType_tags_1) + /sizeof(asn_DEF_cam_ts_StoredInformationType_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) + &asn_PER_type_cam_ts_StoredInformationType_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) */ + cam_ts_StoredInformationType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SubCauseCodeType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SubCauseCodeType.c new file mode 100644 index 000000000..4c1c132a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_SubCauseCodeType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_SubCauseCodeType.h" + +int +cam_ts_SubCauseCodeType_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_SubCauseCodeType_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_cam_ts_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_SubCauseCodeType_tags_1, + sizeof(asn_DEF_cam_ts_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_cam_ts_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_cam_ts_SubCauseCodeType_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) + &asn_PER_type_cam_ts_SubCauseCodeType_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) */ + cam_ts_SubCauseCodeType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Temperature.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Temperature.c new file mode 100644 index 000000000..7e83fcb65 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Temperature.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Temperature.h" + +int +cam_ts_Temperature_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 >= -60L && value <= 67L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { 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_cam_ts_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Temperature_tags_1, + sizeof(asn_DEF_cam_ts_Temperature_tags_1) + /sizeof(asn_DEF_cam_ts_Temperature_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Temperature_tags_1) + /sizeof(asn_DEF_cam_ts_Temperature_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) + &asn_PER_type_cam_ts_Temperature_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) */ + cam_ts_Temperature_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TimestampIts.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TimestampIts.c new file mode 100644 index 000000000..25b5067a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TimestampIts.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TimestampIts.h" + +int +cam_ts_TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0L && value <= 4398046511103L)) { + /* 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 INTEGER, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { 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_cam_ts_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_cam_ts_TimestampIts_tags_1, + sizeof(asn_DEF_cam_ts_TimestampIts_tags_1) + /sizeof(asn_DEF_cam_ts_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TimestampIts_tags_1) + /sizeof(asn_DEF_cam_ts_TimestampIts_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) + &asn_PER_type_cam_ts_TimestampIts_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) */ + cam_ts_TimestampIts_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Traces.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Traces.c new file mode 100644 index 000000000..790ef832b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Traces.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Traces.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_Path, + 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_cam_ts_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_Traces_specs_1 = { + sizeof(struct cam_ts_Traces), + offsetof(struct cam_ts_Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_Traces_tags_1, + sizeof(asn_DEF_cam_ts_Traces_tags_1) + /sizeof(asn_DEF_cam_ts_Traces_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Traces_tags_1) + /sizeof(asn_DEF_cam_ts_Traces_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) + &asn_PER_type_cam_ts_Traces_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_cam_ts_Traces_1, + 1, /* Single element */ + &asn_SPC_cam_ts_Traces_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TracesExtended.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TracesExtended.c new file mode 100644 index 000000000..065c3aa81 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TracesExtended.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TracesExtended.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_TracesExtended_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_cam_ts_TracesExtended_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_cam_ts_PathExtended, + 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_cam_ts_TracesExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cam_ts_TracesExtended_specs_1 = { + sizeof(struct cam_ts_TracesExtended), + offsetof(struct cam_ts_TracesExtended, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TracesExtended = { + "TracesExtended", + "TracesExtended", + &asn_OP_SEQUENCE_OF, + asn_DEF_cam_ts_TracesExtended_tags_1, + sizeof(asn_DEF_cam_ts_TracesExtended_tags_1) + /sizeof(asn_DEF_cam_ts_TracesExtended_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TracesExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TracesExtended_tags_1) + /sizeof(asn_DEF_cam_ts_TracesExtended_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) + &asn_PER_type_cam_ts_TracesExtended_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_cam_ts_TracesExtended_1, + 1, /* Single element */ + &asn_SPC_cam_ts_TracesExtended_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficConditionSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficConditionSubCauseCode.c new file mode 100644 index 000000000..892f2f8fe --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficConditionSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrafficConditionSubCauseCode.h" + +int +cam_ts_TrafficConditionSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_TrafficConditionSubCauseCode_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_cam_ts_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficConditionSubCauseCode_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) + &asn_PER_type_cam_ts_TrafficConditionSubCauseCode_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) */ + cam_ts_TrafficConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficDirection.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficDirection.c new file mode 100644 index 000000000..77cd64b43 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrafficDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_TrafficDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_cam_ts_TrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 52, "sameAsReferenceDirection-upstreamOfReferencePosition" }, + { 2, 54, "sameAsReferenceDirection-downstreamOfReferencePosition" }, + { 3, 28, "oppositeToReferenceDirection" } +}; +static const unsigned int asn_MAP_cam_ts_TrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 3, /* oppositeToReferenceDirection(3) */ + 2, /* sameAsReferenceDirection-downstreamOfReferencePosition(2) */ + 1 /* sameAsReferenceDirection-upstreamOfReferencePosition(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cam_ts_TrafficDirection_specs_1 = { + asn_MAP_cam_ts_TrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_TrafficDirection_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* 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_cam_ts_TrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficDirection = { + "TrafficDirection", + "TrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_TrafficDirection_tags_1, + sizeof(asn_DEF_cam_ts_TrafficDirection_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrafficDirection_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficDirection_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) + &asn_PER_type_cam_ts_TrafficDirection_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_cam_ts_TrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficIslandPosition.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficIslandPosition.c new file mode 100644 index 000000000..9796ecbd1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficIslandPosition.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrafficIslandPosition.h" + +asn_TYPE_member_t asn_MBR_cam_ts_TrafficIslandPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_TrafficIslandPosition, oneSide), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LanePositionAndType, + 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 */ + "oneSide" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_TrafficIslandPosition, otherSide), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_LanePositionAndType, + 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 */ + "otherSide" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_TrafficIslandPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_TrafficIslandPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneSide */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* otherSide */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_TrafficIslandPosition_specs_1 = { + sizeof(struct cam_ts_TrafficIslandPosition), + offsetof(struct cam_ts_TrafficIslandPosition, _asn_ctx), + asn_MAP_cam_ts_TrafficIslandPosition_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficIslandPosition = { + "TrafficIslandPosition", + "TrafficIslandPosition", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_TrafficIslandPosition_tags_1, + sizeof(asn_DEF_cam_ts_TrafficIslandPosition_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficIslandPosition_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrafficIslandPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrafficIslandPosition_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficIslandPosition_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_cam_ts_TrafficIslandPosition_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_TrafficIslandPosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficParticipantType.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficParticipantType.c new file mode 100644 index 000000000..370e0e4af --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficParticipantType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrafficParticipantType.h" + +int +cam_ts_TrafficParticipantType_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_TrafficParticipantType_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_cam_ts_TrafficParticipantType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficParticipantType = { + "TrafficParticipantType", + "TrafficParticipantType", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_TrafficParticipantType_tags_1, + sizeof(asn_DEF_cam_ts_TrafficParticipantType_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficParticipantType_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrafficParticipantType_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrafficParticipantType_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficParticipantType_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) + &asn_PER_type_cam_ts_TrafficParticipantType_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) */ + cam_ts_TrafficParticipantType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficRule.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficRule.c new file mode 100644 index 000000000..6edcc8066 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrafficRule.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrafficRule.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_TrafficRule_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_cam_ts_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" }, + { 4, 17, "passToLeftOrRight" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_cam_ts_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 4, /* passToLeftOrRight(4) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_TrafficRule_specs_1 = { + asn_MAP_cam_ts_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* 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_cam_ts_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_TrafficRule_tags_1, + sizeof(asn_DEF_cam_ts_TrafficRule_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrafficRule_tags_1) + /sizeof(asn_DEF_cam_ts_TrafficRule_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) + &asn_PER_type_cam_ts_TrafficRule_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_cam_ts_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrailerData.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrailerData.c new file mode 100644 index 000000000..dc0357bb9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrailerData.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrailerData.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_TrailerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_TrailerData, refPointId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier1B, + 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 */ + "refPointId" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_TrailerData, hitchPointOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength1B, + 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 */ + "hitchPointOffset" + }, + { ATF_POINTER, 3, offsetof(struct cam_ts_TrailerData, frontOverhang), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength1B, + 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 */ + "frontOverhang" + }, + { ATF_POINTER, 2, offsetof(struct cam_ts_TrailerData, rearOverhang), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_StandardLength1B, + 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 */ + "rearOverhang" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_TrailerData, trailerWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VehicleWidth, + 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 */ + "trailerWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_TrailerData, hitchAngle), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngle, + 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 */ + "hitchAngle" + }, +}; +static const int asn_MAP_cam_ts_TrailerData_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_TrailerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_TrailerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* refPointId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hitchPointOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* frontOverhang */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rearOverhang */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* trailerWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* hitchAngle */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_TrailerData_specs_1 = { + sizeof(struct cam_ts_TrailerData), + offsetof(struct cam_ts_TrailerData, _asn_ctx), + asn_MAP_cam_ts_TrailerData_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_cam_ts_TrailerData_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrailerData = { + "TrailerData", + "TrailerData", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_TrailerData_tags_1, + sizeof(asn_DEF_cam_ts_TrailerData_tags_1) + /sizeof(asn_DEF_cam_ts_TrailerData_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrailerData_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrailerData_tags_1) + /sizeof(asn_DEF_cam_ts_TrailerData_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_cam_ts_TrailerData_1, + 6, /* Elements count */ + &asn_SPC_cam_ts_TrailerData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrailerPresenceInformation.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrailerPresenceInformation.c new file mode 100644 index 000000000..0514cf7c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrailerPresenceInformation.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrailerPresenceInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_TrailerPresenceInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { 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_cam_ts_TrailerPresenceInformation_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_cam_ts_TrailerPresenceInformation_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_TrailerPresenceInformation_specs_1 = { + asn_MAP_cam_ts_TrailerPresenceInformation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_TrailerPresenceInformation_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* 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_cam_ts_TrailerPresenceInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrailerPresenceInformation = { + "TrailerPresenceInformation", + "TrailerPresenceInformation", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_TrailerPresenceInformation_tags_1, + sizeof(asn_DEF_cam_ts_TrailerPresenceInformation_tags_1) + /sizeof(asn_DEF_cam_ts_TrailerPresenceInformation_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrailerPresenceInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrailerPresenceInformation_tags_1) + /sizeof(asn_DEF_cam_ts_TrailerPresenceInformation_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) + &asn_PER_type_cam_ts_TrailerPresenceInformation_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_cam_ts_TrailerPresenceInformation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionConfidence.c new file mode 100644 index 000000000..4f4eada1b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionConfidence.h" + +int +cam_ts_TrajectoryInterceptionConfidence_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 <= 3L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_TrajectoryInterceptionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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 ber_tlv_tag_t asn_DEF_cam_ts_TrajectoryInterceptionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrajectoryInterceptionConfidence = { + "TrajectoryInterceptionConfidence", + "TrajectoryInterceptionConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_TrajectoryInterceptionConfidence_tags_1, + sizeof(asn_DEF_cam_ts_TrajectoryInterceptionConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_TrajectoryInterceptionConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrajectoryInterceptionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrajectoryInterceptionConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_TrajectoryInterceptionConfidence_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) + &asn_PER_type_cam_ts_TrajectoryInterceptionConfidence_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) */ + cam_ts_TrajectoryInterceptionConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionIndication.c new file mode 100644 index 000000000..2ab5e3077 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionIndication.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionIndication.h" + +asn_TYPE_member_t asn_MBR_cam_ts_TrajectoryInterceptionIndication_1[] = { + { ATF_POINTER, 1, offsetof(struct cam_ts_TrajectoryInterceptionIndication, subjectStation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "subjectStation" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_TrajectoryInterceptionIndication, trajectoryInterceptionProbability), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TrajectoryInterceptionProbability, + 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 */ + "trajectoryInterceptionProbability" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_TrajectoryInterceptionIndication, trajectoryInterceptionConfidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TrajectoryInterceptionConfidence, + 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 */ + "trajectoryInterceptionConfidence" + }, +}; +static const int asn_MAP_cam_ts_TrajectoryInterceptionIndication_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_TrajectoryInterceptionIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_TrajectoryInterceptionIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subjectStation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trajectoryInterceptionProbability */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* trajectoryInterceptionConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_TrajectoryInterceptionIndication_specs_1 = { + sizeof(struct cam_ts_TrajectoryInterceptionIndication), + offsetof(struct cam_ts_TrajectoryInterceptionIndication, _asn_ctx), + asn_MAP_cam_ts_TrajectoryInterceptionIndication_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_TrajectoryInterceptionIndication_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrajectoryInterceptionIndication = { + "TrajectoryInterceptionIndication", + "TrajectoryInterceptionIndication", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_TrajectoryInterceptionIndication_tags_1, + sizeof(asn_DEF_cam_ts_TrajectoryInterceptionIndication_tags_1) + /sizeof(asn_DEF_cam_ts_TrajectoryInterceptionIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrajectoryInterceptionIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrajectoryInterceptionIndication_tags_1) + /sizeof(asn_DEF_cam_ts_TrajectoryInterceptionIndication_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_cam_ts_TrajectoryInterceptionIndication_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_TrajectoryInterceptionIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionProbability.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionProbability.c new file mode 100644 index 000000000..0fc6a068d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TrajectoryInterceptionProbability.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TrajectoryInterceptionProbability.h" + +int +cam_ts_TrajectoryInterceptionProbability_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_TrajectoryInterceptionProbability_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_cam_ts_TrajectoryInterceptionProbability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TrajectoryInterceptionProbability = { + "TrajectoryInterceptionProbability", + "TrajectoryInterceptionProbability", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_TrajectoryInterceptionProbability_tags_1, + sizeof(asn_DEF_cam_ts_TrajectoryInterceptionProbability_tags_1) + /sizeof(asn_DEF_cam_ts_TrajectoryInterceptionProbability_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TrajectoryInterceptionProbability_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TrajectoryInterceptionProbability_tags_1) + /sizeof(asn_DEF_cam_ts_TrajectoryInterceptionProbability_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) + &asn_PER_type_cam_ts_TrajectoryInterceptionProbability_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) */ + cam_ts_TrajectoryInterceptionProbability_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TransmissionInterval.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TransmissionInterval.c new file mode 100644 index 000000000..9092a38a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TransmissionInterval.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TransmissionInterval.h" + +int +cam_ts_TransmissionInterval_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 <= 10000L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..10000) */, + { 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_cam_ts_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_TransmissionInterval_tags_1, + sizeof(asn_DEF_cam_ts_TransmissionInterval_tags_1) + /sizeof(asn_DEF_cam_ts_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TransmissionInterval_tags_1) + /sizeof(asn_DEF_cam_ts_TransmissionInterval_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) + &asn_PER_type_cam_ts_TransmissionInterval_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) */ + cam_ts_TransmissionInterval_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TurningDirection.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TurningDirection.c new file mode 100644 index 000000000..c2a201155 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TurningDirection.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TurningDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_TurningDirection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_TurningDirection_value2enum_1[] = { + { 0, 4, "left" }, + { 1, 5, "right" } +}; +static const unsigned int asn_MAP_cam_ts_TurningDirection_enum2value_1[] = { + 0, /* left(0) */ + 1 /* right(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_TurningDirection_specs_1 = { + asn_MAP_cam_ts_TurningDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_TurningDirection_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* 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_cam_ts_TurningDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TurningDirection = { + "TurningDirection", + "TurningDirection", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_TurningDirection_tags_1, + sizeof(asn_DEF_cam_ts_TurningDirection_tags_1) + /sizeof(asn_DEF_cam_ts_TurningDirection_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TurningDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TurningDirection_tags_1) + /sizeof(asn_DEF_cam_ts_TurningDirection_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) + &asn_PER_type_cam_ts_TurningDirection_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_cam_ts_TurningDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TurningRadius.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TurningRadius.c new file mode 100644 index 000000000..165b48d8b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_TurningRadius.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_TurningRadius.h" + +int +cam_ts_TurningRadius_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 <= 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_TurningRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (1..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_cam_ts_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_TurningRadius_tags_1, + sizeof(asn_DEF_cam_ts_TurningRadius_tags_1) + /sizeof(asn_DEF_cam_ts_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_TurningRadius_tags_1) + /sizeof(asn_DEF_cam_ts_TurningRadius_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) + &asn_PER_type_cam_ts_TurningRadius_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) */ + cam_ts_TurningRadius_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_UsageIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_UsageIndication.c new file mode 100644 index 000000000..88d5d433b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_UsageIndication.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_UsageIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_UsageIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { 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_cam_ts_UsageIndication_value2enum_1[] = { + { 0, 12, "noIndication" }, + { 1, 10, "specialUse" }, + { 2, 15, "rescueOperation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_cam_ts_UsageIndication_enum2value_1[] = { + 0, /* noIndication(0) */ + 2, /* rescueOperation(2) */ + 1 /* specialUse(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_UsageIndication_specs_1 = { + asn_MAP_cam_ts_UsageIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_UsageIndication_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_UsageIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_UsageIndication = { + "UsageIndication", + "UsageIndication", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_UsageIndication_tags_1, + sizeof(asn_DEF_cam_ts_UsageIndication_tags_1) + /sizeof(asn_DEF_cam_ts_UsageIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_UsageIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_UsageIndication_tags_1) + /sizeof(asn_DEF_cam_ts_UsageIndication_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) + &asn_PER_type_cam_ts_UsageIndication_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_cam_ts_UsageIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VDS.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VDS.c new file mode 100644 index 000000000..791109ad9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VDS.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VDS.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +int +cam_ts_VDS_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_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; + } + + size = st->size; + + if((size == 6UL) + && !check_permitted_alphabet_1(st)) { + /* 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 IA5String, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_cam_ts_VDS_tags_1, + sizeof(asn_DEF_cam_ts_VDS_tags_1) + /sizeof(asn_DEF_cam_ts_VDS_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VDS_tags_1) + /sizeof(asn_DEF_cam_ts_VDS_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) + &asn_PER_type_cam_ts_VDS_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) */ + cam_ts_VDS_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ValidityDuration.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ValidityDuration.c new file mode 100644 index 000000000..b5ff2f3f2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_ValidityDuration.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_ValidityDuration.h" + +int +cam_ts_ValidityDuration_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 <= 86400L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { 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_cam_ts_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_ValidityDuration_tags_1, + sizeof(asn_DEF_cam_ts_ValidityDuration_tags_1) + /sizeof(asn_DEF_cam_ts_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_ValidityDuration_tags_1) + /sizeof(asn_DEF_cam_ts_ValidityDuration_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) + &asn_PER_type_cam_ts_ValidityDuration_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) */ + cam_ts_ValidityDuration_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VarLengthNumber.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VarLengthNumber.c new file mode 100644 index 000000000..b45abedd8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VarLengthNumber.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VarLengthNumber.h" + +static int +memb_cam_ts_content_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_content_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_VarLengthNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_VarLengthNumber_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VarLengthNumber, choice.content), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_cam_ts_content_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_cam_ts_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VarLengthNumber, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_Ext1, + 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 */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VarLengthNumber_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_cam_ts_VarLengthNumber_specs_1 = { + sizeof(struct cam_ts_VarLengthNumber), + offsetof(struct cam_ts_VarLengthNumber, _asn_ctx), + offsetof(struct cam_ts_VarLengthNumber, present), + sizeof(((struct cam_ts_VarLengthNumber *)0)->present), + asn_MAP_cam_ts_VarLengthNumber_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VarLengthNumber = { + "VarLengthNumber", + "VarLengthNumber", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_VarLengthNumber_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_VarLengthNumber_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_VarLengthNumber_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleBreakdownSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleBreakdownSubCauseCode.c new file mode 100644 index 000000000..2a14b926d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleBreakdownSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleBreakdownSubCauseCode.h" + +int +cam_ts_VehicleBreakdownSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VehicleBreakdownSubCauseCode_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_cam_ts_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleBreakdownSubCauseCode_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) + &asn_PER_type_cam_ts_VehicleBreakdownSubCauseCode_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) */ + cam_ts_VehicleBreakdownSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleHeight.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleHeight.c new file mode 100644 index 000000000..a3b062ba8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleHeight.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleHeight.h" + +int +cam_ts_VehicleHeight_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 <= 128L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (1..128) */, + { 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_cam_ts_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VehicleHeight_tags_1, + sizeof(asn_DEF_cam_ts_VehicleHeight_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleHeight_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleHeight_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) + &asn_PER_type_cam_ts_VehicleHeight_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) */ + cam_ts_VehicleHeight_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleIdentification.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleIdentification.c new file mode 100644 index 000000000..6e78f9c7e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleIdentification.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct cam_ts_VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_WMInumber, + 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 */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VDS, + 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 */ + "vDS" + }, +}; +static const int asn_MAP_cam_ts_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VehicleIdentification_specs_1 = { + sizeof(struct cam_ts_VehicleIdentification), + offsetof(struct cam_ts_VehicleIdentification, _asn_ctx), + asn_MAP_cam_ts_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_cam_ts_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VehicleIdentification_tags_1, + sizeof(asn_DEF_cam_ts_VehicleIdentification_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleIdentification_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleIdentification_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_cam_ts_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLength.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLength.c new file mode 100644 index 000000000..484d2a7d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLength.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleLength.h" + +asn_TYPE_member_t asn_MBR_cam_ts_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VehicleLengthValue, + 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 */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VehicleLengthConfidenceIndication, + 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 */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VehicleLength_specs_1 = { + sizeof(struct cam_ts_VehicleLength), + offsetof(struct cam_ts_VehicleLength, _asn_ctx), + asn_MAP_cam_ts_VehicleLength_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_cam_ts_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VehicleLength_tags_1, + sizeof(asn_DEF_cam_ts_VehicleLength_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleLength_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleLength_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_cam_ts_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthConfidenceIndication.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthConfidenceIndication.c new file mode 100644 index 000000000..e308f1832 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthConfidenceIndication.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleLengthConfidenceIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VehicleLengthConfidenceIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { 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_cam_ts_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_cam_ts_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_cam_ts_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* 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_cam_ts_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_cam_ts_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleLengthConfidenceIndication_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) + &asn_PER_type_cam_ts_VehicleLengthConfidenceIndication_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_cam_ts_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthV2.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthV2.c new file mode 100644 index 000000000..eb7e9e2a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthV2.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleLengthV2.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_VehicleLengthV2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VehicleLengthV2, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VehicleLengthValue, + 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 */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VehicleLengthV2, trailerPresenceInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_TrailerPresenceInformation, + 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 */ + "trailerPresenceInformation" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_VehicleLengthV2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VehicleLengthV2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* trailerPresenceInformation */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VehicleLengthV2_specs_1 = { + sizeof(struct cam_ts_VehicleLengthV2), + offsetof(struct cam_ts_VehicleLengthV2, _asn_ctx), + asn_MAP_cam_ts_VehicleLengthV2_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_cam_ts_VehicleLengthV2 = { + "VehicleLengthV2", + "VehicleLengthV2", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VehicleLengthV2_tags_1, + sizeof(asn_DEF_cam_ts_VehicleLengthV2_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleLengthV2_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleLengthV2_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleLengthV2_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleLengthV2_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_cam_ts_VehicleLengthV2_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_VehicleLengthV2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthValue.c new file mode 100644 index 000000000..03ece0817 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleLengthValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleLengthValue.h" + +int +cam_ts_VehicleLengthValue_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 <= 1023L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..1023) */, + { 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_cam_ts_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VehicleLengthValue_tags_1, + sizeof(asn_DEF_cam_ts_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleLengthValue_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) + &asn_PER_type_cam_ts_VehicleLengthValue_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) */ + cam_ts_VehicleLengthValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleMass.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleMass.c new file mode 100644 index 000000000..a7fab6f18 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleMass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleMass.h" + +int +cam_ts_VehicleMass_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 <= 1024L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { 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_cam_ts_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VehicleMass_tags_1, + sizeof(asn_DEF_cam_ts_VehicleMass_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleMass_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleMass_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) + &asn_PER_type_cam_ts_VehicleMass_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) */ + cam_ts_VehicleMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleRole.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleRole.c new file mode 100644 index 000000000..3644f9eb4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleRole.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleRole.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VehicleRole_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_cam_ts_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 4, "uvar" }, + { 14, 4, "rfu1" }, + { 15, 4, "rfu2" } +}; +static const unsigned int asn_MAP_cam_ts_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 14, /* rfu1(14) */ + 15, /* rfu2(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12, /* taxi(12) */ + 13 /* uvar(13) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_VehicleRole_specs_1 = { + asn_MAP_cam_ts_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_VehicleRole_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_cam_ts_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_VehicleRole_tags_1, + sizeof(asn_DEF_cam_ts_VehicleRole_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleRole_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleRole_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) + &asn_PER_type_cam_ts_VehicleRole_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_cam_ts_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleWidth.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleWidth.c new file mode 100644 index 000000000..896414d2c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VehicleWidth.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VehicleWidth.h" + +int +cam_ts_VehicleWidth_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 <= 62L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { 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_cam_ts_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VehicleWidth_tags_1, + sizeof(asn_DEF_cam_ts_VehicleWidth_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VehicleWidth_tags_1) + /sizeof(asn_DEF_cam_ts_VehicleWidth_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) + &asn_PER_type_cam_ts_VehicleWidth_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) */ + cam_ts_VehicleWidth_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Velocity3dWithConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Velocity3dWithConfidence.c new file mode 100644 index 000000000..0256c7b7f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Velocity3dWithConfidence.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Velocity3dWithConfidence.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Velocity3dWithConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { 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_cam_ts_Velocity3dWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Velocity3dWithConfidence, choice.polarVelocity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VelocityPolarWithZ, + 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 */ + "polarVelocity" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Velocity3dWithConfidence, choice.cartesianVelocity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VelocityCartesian, + 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 */ + "cartesianVelocity" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Velocity3dWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* polarVelocity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cartesianVelocity */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_Velocity3dWithConfidence_specs_1 = { + sizeof(struct cam_ts_Velocity3dWithConfidence), + offsetof(struct cam_ts_Velocity3dWithConfidence, _asn_ctx), + offsetof(struct cam_ts_Velocity3dWithConfidence, present), + sizeof(((struct cam_ts_Velocity3dWithConfidence *)0)->present), + asn_MAP_cam_ts_Velocity3dWithConfidence_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Velocity3dWithConfidence = { + "Velocity3dWithConfidence", + "Velocity3dWithConfidence", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_Velocity3dWithConfidence_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_Velocity3dWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Velocity3dWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityCartesian.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityCartesian.c new file mode 100644 index 000000000..fc419debe --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityCartesian.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VelocityCartesian.h" + +asn_TYPE_member_t asn_MBR_cam_ts_VelocityCartesian_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VelocityCartesian, xVelocity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VelocityComponent, + 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 */ + "xVelocity" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VelocityCartesian, yVelocity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VelocityComponent, + 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 */ + "yVelocity" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_VelocityCartesian, zVelocity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VelocityComponent, + 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 */ + "zVelocity" + }, +}; +static const int asn_MAP_cam_ts_VelocityCartesian_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_VelocityCartesian_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VelocityCartesian_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xVelocity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yVelocity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zVelocity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VelocityCartesian_specs_1 = { + sizeof(struct cam_ts_VelocityCartesian), + offsetof(struct cam_ts_VelocityCartesian, _asn_ctx), + asn_MAP_cam_ts_VelocityCartesian_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_VelocityCartesian_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VelocityCartesian = { + "VelocityCartesian", + "VelocityCartesian", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VelocityCartesian_tags_1, + sizeof(asn_DEF_cam_ts_VelocityCartesian_tags_1) + /sizeof(asn_DEF_cam_ts_VelocityCartesian_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VelocityCartesian_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VelocityCartesian_tags_1) + /sizeof(asn_DEF_cam_ts_VelocityCartesian_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_cam_ts_VelocityCartesian_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_VelocityCartesian_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityComponent.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityComponent.c new file mode 100644 index 000000000..03ee42aca --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityComponent.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VelocityComponent.h" + +asn_TYPE_member_t asn_MBR_cam_ts_VelocityComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VelocityComponent, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VelocityComponentValue, + 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" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VelocityComponent, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_SpeedConfidence, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_VelocityComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VelocityComponent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VelocityComponent_specs_1 = { + sizeof(struct cam_ts_VelocityComponent), + offsetof(struct cam_ts_VelocityComponent, _asn_ctx), + asn_MAP_cam_ts_VelocityComponent_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_cam_ts_VelocityComponent = { + "VelocityComponent", + "VelocityComponent", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VelocityComponent_tags_1, + sizeof(asn_DEF_cam_ts_VelocityComponent_tags_1) + /sizeof(asn_DEF_cam_ts_VelocityComponent_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VelocityComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VelocityComponent_tags_1) + /sizeof(asn_DEF_cam_ts_VelocityComponent_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_cam_ts_VelocityComponent_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_VelocityComponent_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityComponentValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityComponentValue.c new file mode 100644 index 000000000..76df91656 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityComponentValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VelocityComponentValue.h" + +int +cam_ts_VelocityComponentValue_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 >= -16383L && value <= 16383L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VelocityComponentValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -16383, 16383 } /* (-16383..16383) */, + { 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_cam_ts_VelocityComponentValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VelocityComponentValue = { + "VelocityComponentValue", + "VelocityComponentValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VelocityComponentValue_tags_1, + sizeof(asn_DEF_cam_ts_VelocityComponentValue_tags_1) + /sizeof(asn_DEF_cam_ts_VelocityComponentValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VelocityComponentValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VelocityComponentValue_tags_1) + /sizeof(asn_DEF_cam_ts_VelocityComponentValue_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) + &asn_PER_type_cam_ts_VelocityComponentValue_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) */ + cam_ts_VelocityComponentValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityPolarWithZ.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityPolarWithZ.c new file mode 100644 index 000000000..e16f5a5b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VelocityPolarWithZ.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VelocityPolarWithZ.h" + +asn_TYPE_member_t asn_MBR_cam_ts_VelocityPolarWithZ_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VelocityPolarWithZ, velocityMagnitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Speed, + 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 */ + "velocityMagnitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VelocityPolarWithZ, velocityDirection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CartesianAngle, + 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 */ + "velocityDirection" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_VelocityPolarWithZ, zVelocity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VelocityComponent, + 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 */ + "zVelocity" + }, +}; +static const int asn_MAP_cam_ts_VelocityPolarWithZ_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_VelocityPolarWithZ_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VelocityPolarWithZ_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* velocityMagnitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* velocityDirection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zVelocity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VelocityPolarWithZ_specs_1 = { + sizeof(struct cam_ts_VelocityPolarWithZ), + offsetof(struct cam_ts_VelocityPolarWithZ, _asn_ctx), + asn_MAP_cam_ts_VelocityPolarWithZ_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_cam_ts_VelocityPolarWithZ_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VelocityPolarWithZ = { + "VelocityPolarWithZ", + "VelocityPolarWithZ", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VelocityPolarWithZ_tags_1, + sizeof(asn_DEF_cam_ts_VelocityPolarWithZ_tags_1) + /sizeof(asn_DEF_cam_ts_VelocityPolarWithZ_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VelocityPolarWithZ_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VelocityPolarWithZ_tags_1) + /sizeof(asn_DEF_cam_ts_VelocityPolarWithZ_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_cam_ts_VelocityPolarWithZ_1, + 3, /* Elements count */ + &asn_SPC_cam_ts_VelocityPolarWithZ_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VerticalAcceleration.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VerticalAcceleration.c new file mode 100644 index 000000000..1af243816 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VerticalAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VerticalAccelerationValue, + 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 */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_AccelerationConfidence, + 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 */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VerticalAcceleration_specs_1 = { + sizeof(struct cam_ts_VerticalAcceleration), + offsetof(struct cam_ts_VerticalAcceleration, _asn_ctx), + asn_MAP_cam_ts_VerticalAcceleration_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_cam_ts_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VerticalAcceleration_tags_1, + sizeof(asn_DEF_cam_ts_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_cam_ts_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_cam_ts_VerticalAcceleration_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_cam_ts_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VerticalAccelerationValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VerticalAccelerationValue.c new file mode 100644 index 000000000..6606609ca --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VerticalAccelerationValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VerticalAccelerationValue.h" + +int +cam_ts_VerticalAccelerationValue_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 >= -160L && value <= 161L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { 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_cam_ts_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_cam_ts_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_cam_ts_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_cam_ts_VerticalAccelerationValue_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) + &asn_PER_type_cam_ts_VerticalAccelerationValue_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) */ + cam_ts_VerticalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruClusterInformation.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruClusterInformation.c new file mode 100644 index 000000000..4d04c57a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruClusterInformation.c @@ -0,0 +1,163 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruClusterInformation.h" + +static int +memb_cam_ts_clusterBoundingBoxShape_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_cam_ts_clusterBoundingBoxShape_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { 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_cam_ts_VruClusterInformation_1[] = { + { ATF_POINTER, 2, offsetof(struct cam_ts_VruClusterInformation, clusterId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Identifier1B, + 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 */ + "clusterId" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_VruClusterInformation, clusterBoundingBoxShape), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cam_ts_Shape, + 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) + &asn_PER_memb_cam_ts_clusterBoundingBoxShape_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_cam_ts_clusterBoundingBoxShape_constraint_1 + }, + 0, 0, /* No default value */ + "clusterBoundingBoxShape" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VruClusterInformation, clusterCardinalitySize), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_CardinalNumber1B, + 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 */ + "clusterCardinalitySize" + }, + { ATF_POINTER, 1, offsetof(struct cam_ts_VruClusterInformation, clusterProfiles), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VruClusterProfiles, + 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 */ + "clusterProfiles" + }, +}; +static const int asn_MAP_cam_ts_VruClusterInformation_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_cam_ts_VruClusterInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VruClusterInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* clusterId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* clusterBoundingBoxShape */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* clusterCardinalitySize */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* clusterProfiles */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VruClusterInformation_specs_1 = { + sizeof(struct cam_ts_VruClusterInformation), + offsetof(struct cam_ts_VruClusterInformation, _asn_ctx), + asn_MAP_cam_ts_VruClusterInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_cam_ts_VruClusterInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruClusterInformation = { + "VruClusterInformation", + "VruClusterInformation", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VruClusterInformation_tags_1, + sizeof(asn_DEF_cam_ts_VruClusterInformation_tags_1) + /sizeof(asn_DEF_cam_ts_VruClusterInformation_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruClusterInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruClusterInformation_tags_1) + /sizeof(asn_DEF_cam_ts_VruClusterInformation_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_cam_ts_VruClusterInformation_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_VruClusterInformation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruClusterProfiles.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruClusterProfiles.c new file mode 100644 index 000000000..8ed4b45e7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruClusterProfiles.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruClusterProfiles.h" + +int +cam_ts_VruClusterProfiles_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 == 4UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VruClusterProfiles_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 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_cam_ts_VruClusterProfiles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruClusterProfiles = { + "VruClusterProfiles", + "VruClusterProfiles", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_VruClusterProfiles_tags_1, + sizeof(asn_DEF_cam_ts_VruClusterProfiles_tags_1) + /sizeof(asn_DEF_cam_ts_VruClusterProfiles_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruClusterProfiles_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruClusterProfiles_tags_1) + /sizeof(asn_DEF_cam_ts_VruClusterProfiles_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) + &asn_PER_type_cam_ts_VruClusterProfiles_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) */ + cam_ts_VruClusterProfiles_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruDeviceUsage.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruDeviceUsage.c new file mode 100644 index 000000000..49524ef32 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruDeviceUsage.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruDeviceUsage.h" + +int +cam_ts_VruDeviceUsage_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_VruDeviceUsage_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_cam_ts_VruDeviceUsage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruDeviceUsage = { + "VruDeviceUsage", + "VruDeviceUsage", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VruDeviceUsage_tags_1, + sizeof(asn_DEF_cam_ts_VruDeviceUsage_tags_1) + /sizeof(asn_DEF_cam_ts_VruDeviceUsage_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruDeviceUsage_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruDeviceUsage_tags_1) + /sizeof(asn_DEF_cam_ts_VruDeviceUsage_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) + &asn_PER_type_cam_ts_VruDeviceUsage_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) */ + cam_ts_VruDeviceUsage_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruEnvironment.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruEnvironment.c new file mode 100644 index 000000000..14d078ec0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruEnvironment.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruEnvironment.h" + +int +cam_ts_VruEnvironment_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_VruEnvironment_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_cam_ts_VruEnvironment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruEnvironment = { + "VruEnvironment", + "VruEnvironment", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VruEnvironment_tags_1, + sizeof(asn_DEF_cam_ts_VruEnvironment_tags_1) + /sizeof(asn_DEF_cam_ts_VruEnvironment_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruEnvironment_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruEnvironment_tags_1) + /sizeof(asn_DEF_cam_ts_VruEnvironment_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) + &asn_PER_type_cam_ts_VruEnvironment_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) */ + cam_ts_VruEnvironment_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruExteriorLights.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruExteriorLights.c new file mode 100644 index 000000000..5f0ab49fc --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruExteriorLights.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruExteriorLights.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_VruExteriorLights_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VruExteriorLights, vehicular), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_ExteriorLights, + 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 */ + "vehicular" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VruExteriorLights, vruSpecific), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VruSpecificExteriorLights, + 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 */ + "vruSpecific" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_VruExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VruExteriorLights_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicular */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vruSpecific */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_VruExteriorLights_specs_1 = { + sizeof(struct cam_ts_VruExteriorLights), + offsetof(struct cam_ts_VruExteriorLights, _asn_ctx), + asn_MAP_cam_ts_VruExteriorLights_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruExteriorLights = { + "VruExteriorLights", + "VruExteriorLights", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_VruExteriorLights_tags_1, + sizeof(asn_DEF_cam_ts_VruExteriorLights_tags_1) + /sizeof(asn_DEF_cam_ts_VruExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruExteriorLights_tags_1) + /sizeof(asn_DEF_cam_ts_VruExteriorLights_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_cam_ts_VruExteriorLights_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_VruExteriorLights_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruMovementControl.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruMovementControl.c new file mode 100644 index 000000000..34c906cb1 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruMovementControl.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruMovementControl.h" + +int +cam_ts_VruMovementControl_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_VruMovementControl_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_cam_ts_VruMovementControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruMovementControl = { + "VruMovementControl", + "VruMovementControl", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VruMovementControl_tags_1, + sizeof(asn_DEF_cam_ts_VruMovementControl_tags_1) + /sizeof(asn_DEF_cam_ts_VruMovementControl_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruMovementControl_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruMovementControl_tags_1) + /sizeof(asn_DEF_cam_ts_VruMovementControl_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) + &asn_PER_type_cam_ts_VruMovementControl_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) */ + cam_ts_VruMovementControl_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruProfileAndSubprofile.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruProfileAndSubprofile.c new file mode 100644 index 000000000..86b600524 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruProfileAndSubprofile.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruProfileAndSubprofile.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VruProfileAndSubprofile_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) */ +asn_TYPE_member_t asn_MBR_cam_ts_VruProfileAndSubprofile_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VruProfileAndSubprofile, choice.pedestrian), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VruSubProfilePedestrian, + 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 */ + "pedestrian" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VruProfileAndSubprofile, choice.bicyclistAndLightVruVehicle), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VruSubProfileBicyclist, + 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 */ + "bicyclistAndLightVruVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VruProfileAndSubprofile, choice.motorcyclist), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VruSubProfileMotorcyclist, + 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 */ + "motorcyclist" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_VruProfileAndSubprofile, choice.animal), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_VruSubProfileAnimal, + 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 */ + "animal" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_VruProfileAndSubprofile_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pedestrian */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bicyclistAndLightVruVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* motorcyclist */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* animal */ +}; +asn_CHOICE_specifics_t asn_SPC_cam_ts_VruProfileAndSubprofile_specs_1 = { + sizeof(struct cam_ts_VruProfileAndSubprofile), + offsetof(struct cam_ts_VruProfileAndSubprofile, _asn_ctx), + offsetof(struct cam_ts_VruProfileAndSubprofile, present), + sizeof(((struct cam_ts_VruProfileAndSubprofile *)0)->present), + asn_MAP_cam_ts_VruProfileAndSubprofile_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruProfileAndSubprofile = { + "VruProfileAndSubprofile", + "VruProfileAndSubprofile", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_cam_ts_VruProfileAndSubprofile_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) */ + CHOICE_constraint + }, + asn_MBR_cam_ts_VruProfileAndSubprofile_1, + 4, /* Elements count */ + &asn_SPC_cam_ts_VruProfileAndSubprofile_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSizeClass.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSizeClass.c new file mode 100644 index 000000000..582b89d0b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSizeClass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruSizeClass.h" + +int +cam_ts_VruSizeClass_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_VruSizeClass_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_cam_ts_VruSizeClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSizeClass = { + "VruSizeClass", + "VruSizeClass", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VruSizeClass_tags_1, + sizeof(asn_DEF_cam_ts_VruSizeClass_tags_1) + /sizeof(asn_DEF_cam_ts_VruSizeClass_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruSizeClass_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruSizeClass_tags_1) + /sizeof(asn_DEF_cam_ts_VruSizeClass_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) + &asn_PER_type_cam_ts_VruSizeClass_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) */ + cam_ts_VruSizeClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSpecificExteriorLights.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSpecificExteriorLights.c new file mode 100644 index 000000000..ed4b17376 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSpecificExteriorLights.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruSpecificExteriorLights.h" + +int +cam_ts_VruSpecificExteriorLights_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 == 8UL)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VruSpecificExteriorLights_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, + 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_cam_ts_VruSpecificExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSpecificExteriorLights = { + "VruSpecificExteriorLights", + "VruSpecificExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_cam_ts_VruSpecificExteriorLights_tags_1, + sizeof(asn_DEF_cam_ts_VruSpecificExteriorLights_tags_1) + /sizeof(asn_DEF_cam_ts_VruSpecificExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruSpecificExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruSpecificExteriorLights_tags_1) + /sizeof(asn_DEF_cam_ts_VruSpecificExteriorLights_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) + &asn_PER_type_cam_ts_VruSpecificExteriorLights_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) */ + cam_ts_VruSpecificExteriorLights_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileAnimal.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileAnimal.c new file mode 100644 index 000000000..2aba9c6d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileAnimal.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruSubProfileAnimal.h" + +int +cam_ts_VruSubProfileAnimal_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VruSubProfileAnimal_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_cam_ts_VruSubProfileAnimal_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSubProfileAnimal = { + "VruSubProfileAnimal", + "VruSubProfileAnimal", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VruSubProfileAnimal_tags_1, + sizeof(asn_DEF_cam_ts_VruSubProfileAnimal_tags_1) + /sizeof(asn_DEF_cam_ts_VruSubProfileAnimal_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruSubProfileAnimal_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruSubProfileAnimal_tags_1) + /sizeof(asn_DEF_cam_ts_VruSubProfileAnimal_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) + &asn_PER_type_cam_ts_VruSubProfileAnimal_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) */ + cam_ts_VruSubProfileAnimal_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileBicyclist.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileBicyclist.c new file mode 100644 index 000000000..ea23b0cd9 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileBicyclist.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruSubProfileBicyclist.h" + +int +cam_ts_VruSubProfileBicyclist_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VruSubProfileBicyclist_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_cam_ts_VruSubProfileBicyclist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSubProfileBicyclist = { + "VruSubProfileBicyclist", + "VruSubProfileBicyclist", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VruSubProfileBicyclist_tags_1, + sizeof(asn_DEF_cam_ts_VruSubProfileBicyclist_tags_1) + /sizeof(asn_DEF_cam_ts_VruSubProfileBicyclist_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruSubProfileBicyclist_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruSubProfileBicyclist_tags_1) + /sizeof(asn_DEF_cam_ts_VruSubProfileBicyclist_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) + &asn_PER_type_cam_ts_VruSubProfileBicyclist_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) */ + cam_ts_VruSubProfileBicyclist_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileMotorcyclist.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileMotorcyclist.c new file mode 100644 index 000000000..c4e67a272 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfileMotorcyclist.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruSubProfileMotorcyclist.h" + +int +cam_ts_VruSubProfileMotorcyclist_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VruSubProfileMotorcyclist_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_cam_ts_VruSubProfileMotorcyclist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSubProfileMotorcyclist = { + "VruSubProfileMotorcyclist", + "VruSubProfileMotorcyclist", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VruSubProfileMotorcyclist_tags_1, + sizeof(asn_DEF_cam_ts_VruSubProfileMotorcyclist_tags_1) + /sizeof(asn_DEF_cam_ts_VruSubProfileMotorcyclist_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruSubProfileMotorcyclist_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruSubProfileMotorcyclist_tags_1) + /sizeof(asn_DEF_cam_ts_VruSubProfileMotorcyclist_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) + &asn_PER_type_cam_ts_VruSubProfileMotorcyclist_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) */ + cam_ts_VruSubProfileMotorcyclist_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfilePedestrian.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfilePedestrian.c new file mode 100644 index 000000000..10ed78c4a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_VruSubProfilePedestrian.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_VruSubProfilePedestrian.h" + +int +cam_ts_VruSubProfilePedestrian_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_VruSubProfilePedestrian_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_cam_ts_VruSubProfilePedestrian_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_VruSubProfilePedestrian = { + "VruSubProfilePedestrian", + "VruSubProfilePedestrian", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_VruSubProfilePedestrian_tags_1, + sizeof(asn_DEF_cam_ts_VruSubProfilePedestrian_tags_1) + /sizeof(asn_DEF_cam_ts_VruSubProfilePedestrian_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_VruSubProfilePedestrian_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_VruSubProfilePedestrian_tags_1) + /sizeof(asn_DEF_cam_ts_VruSubProfilePedestrian_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) + &asn_PER_type_cam_ts_VruSubProfilePedestrian_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) */ + cam_ts_VruSubProfilePedestrian_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WMInumber.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WMInumber.c new file mode 100644 index 000000000..97d91f4ab --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WMInumber.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_WMInumber.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is IA5String */ + const IA5String_t *st = (const IA5String_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv <= 127UL)) return -1; + } + return 0; +} + +int +cam_ts_WMInumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const IA5String_t *st = (const IA5String_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; + } + + size = st->size; + + if((size >= 1UL && size <= 3UL) + && !check_permitted_alphabet_1(st)) { + /* 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 IA5String, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_cam_ts_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_cam_ts_WMInumber_tags_1, + sizeof(asn_DEF_cam_ts_WMInumber_tags_1) + /sizeof(asn_DEF_cam_ts_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_WMInumber_tags_1) + /sizeof(asn_DEF_cam_ts_WMInumber_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) + &asn_PER_type_cam_ts_WMInumber_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) */ + cam_ts_WMInumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84Angle.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84Angle.c new file mode 100644 index 000000000..7a78f6a93 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84Angle.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Wgs84Angle.h" + +static asn_TYPE_member_t asn_MBR_cam_ts_Wgs84Angle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Wgs84Angle, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_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 */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_Wgs84Angle, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_Wgs84AngleConfidence, + 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" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_Wgs84Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_Wgs84Angle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cam_ts_Wgs84Angle_specs_1 = { + sizeof(struct cam_ts_Wgs84Angle), + offsetof(struct cam_ts_Wgs84Angle, _asn_ctx), + asn_MAP_cam_ts_Wgs84Angle_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_cam_ts_Wgs84Angle = { + "Wgs84Angle", + "Wgs84Angle", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_Wgs84Angle_tags_1, + sizeof(asn_DEF_cam_ts_Wgs84Angle_tags_1) + /sizeof(asn_DEF_cam_ts_Wgs84Angle_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Wgs84Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Wgs84Angle_tags_1) + /sizeof(asn_DEF_cam_ts_Wgs84Angle_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_cam_ts_Wgs84Angle_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_Wgs84Angle_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84AngleConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84AngleConfidence.c new file mode 100644 index 000000000..2d6e9a103 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84AngleConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Wgs84AngleConfidence.h" + +int +cam_ts_Wgs84AngleConfidence_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Wgs84AngleConfidence_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_cam_ts_Wgs84AngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Wgs84AngleConfidence = { + "Wgs84AngleConfidence", + "Wgs84AngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Wgs84AngleConfidence_tags_1, + sizeof(asn_DEF_cam_ts_Wgs84AngleConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_Wgs84AngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Wgs84AngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Wgs84AngleConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_Wgs84AngleConfidence_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) + &asn_PER_type_cam_ts_Wgs84AngleConfidence_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) */ + cam_ts_Wgs84AngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84AngleValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84AngleValue.c new file mode 100644 index 000000000..57d56f013 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_Wgs84AngleValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_Wgs84AngleValue.h" + +int +cam_ts_Wgs84AngleValue_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 <= 3601L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_Wgs84AngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { 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_cam_ts_Wgs84AngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_Wgs84AngleValue = { + "Wgs84AngleValue", + "Wgs84AngleValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_Wgs84AngleValue_tags_1, + sizeof(asn_DEF_cam_ts_Wgs84AngleValue_tags_1) + /sizeof(asn_DEF_cam_ts_Wgs84AngleValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_Wgs84AngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_Wgs84AngleValue_tags_1) + /sizeof(asn_DEF_cam_ts_Wgs84AngleValue_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) + &asn_PER_type_cam_ts_Wgs84AngleValue_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) */ + cam_ts_Wgs84AngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WheelBaseVehicle.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WheelBaseVehicle.c new file mode 100644 index 000000000..251a30a5b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WheelBaseVehicle.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_WheelBaseVehicle.h" + +int +cam_ts_WheelBaseVehicle_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_cam_ts_WheelBaseVehicle_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_cam_ts_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_cam_ts_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_cam_ts_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_cam_ts_WheelBaseVehicle_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) + &asn_PER_type_cam_ts_WheelBaseVehicle_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) */ + cam_ts_WheelBaseVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WrongWayDrivingSubCauseCode.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WrongWayDrivingSubCauseCode.c new file mode 100644 index 000000000..b6f4c040d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_WrongWayDrivingSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_WrongWayDrivingSubCauseCode.h" + +int +cam_ts_WrongWayDrivingSubCauseCode_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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_WrongWayDrivingSubCauseCode_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_cam_ts_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_cam_ts_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_cam_ts_WrongWayDrivingSubCauseCode_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) + &asn_PER_type_cam_ts_WrongWayDrivingSubCauseCode_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) */ + cam_ts_WrongWayDrivingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRate.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRate.c new file mode 100644 index 000000000..75591baeb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRate.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_YawRate.h" + +asn_TYPE_member_t asn_MBR_cam_ts_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_YawRateValue, + 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 */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct cam_ts_YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cam_ts_YawRateConfidence, + 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 */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_cam_ts_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cam_ts_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_cam_ts_YawRate_specs_1 = { + sizeof(struct cam_ts_YawRate), + offsetof(struct cam_ts_YawRate, _asn_ctx), + asn_MAP_cam_ts_YawRate_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_cam_ts_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_cam_ts_YawRate_tags_1, + sizeof(asn_DEF_cam_ts_YawRate_tags_1) + /sizeof(asn_DEF_cam_ts_YawRate_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_YawRate_tags_1) + /sizeof(asn_DEF_cam_ts_YawRate_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_cam_ts_YawRate_1, + 2, /* Elements count */ + &asn_SPC_cam_ts_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRateConfidence.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRateConfidence.c new file mode 100644 index 000000000..ad70c452d --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRateConfidence.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_YawRateConfidence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { 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_cam_ts_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_cam_ts_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_cam_ts_YawRateConfidence_specs_1 = { + asn_MAP_cam_ts_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_cam_ts_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* 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_cam_ts_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_cam_ts_YawRateConfidence_tags_1, + sizeof(asn_DEF_cam_ts_YawRateConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_YawRateConfidence_tags_1) + /sizeof(asn_DEF_cam_ts_YawRateConfidence_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) + &asn_PER_type_cam_ts_YawRateConfidence_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_cam_ts_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRateValue.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRateValue.c new file mode 100644 index 000000000..e593b9ec4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/cam_ts_YawRateValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "/input/ETSI-ITS-CDD.asn" + * `asn1c -fcompound-names -fprefix=cam_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_cam_ts_coding/cam_ts_YawRateValue.h" + +int +cam_ts_YawRateValue_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 >= -32766L && value <= 32767L)) { + /* 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_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_cam_ts_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..32767) */, + { 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_cam_ts_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_cam_ts_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_cam_ts_YawRateValue_tags_1, + sizeof(asn_DEF_cam_ts_YawRateValue_tags_1) + /sizeof(asn_DEF_cam_ts_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_cam_ts_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_cam_ts_YawRateValue_tags_1) + /sizeof(asn_DEF_cam_ts_YawRateValue_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) + &asn_PER_type_cam_ts_YawRateValue_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) */ + cam_ts_YawRateValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE.c new file mode 100644 index 000000000..4e928554b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE.c @@ -0,0 +1,415 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_CHOICE = { + CHOICE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + CHOICE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + CHOICE_compare, + CHOICE_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + CHOICE_decode_ber, + CHOICE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + CHOICE_decode_xer, + CHOICE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + CHOICE_decode_jer, + CHOICE_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + CHOICE_decode_oer, + CHOICE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + CHOICE_decode_uper, + CHOICE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + CHOICE_decode_aper, + CHOICE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + CHOICE_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + CHOICE_outmost_tag +}; + +ber_tlv_tag_t +CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + assert(tag_mode == 0); (void)tag_mode; + assert(tag == 0); (void)tag; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + if(present > 0 && present <= td->elements_count) { + const asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *) + ((const char *)ptr + elm->memb_offset); + } else { + memb_ptr = (const void *) + ((const char *)ptr + elm->memb_offset); + } + + return asn_TYPE_outmost_tag(elm->type, memb_ptr, + elm->tag_mode, elm->tag); + } else { + return (ber_tlv_tag_t)-1; + } +} + +/* + * See the definitions. + */ +static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, + const void *sptr, asn_TYPE_member_t **elm, + unsigned *present); + +int +CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + return 0; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory CHOICE element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(elm->encoding_constraints.general_constraints) { + return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, + ctfailcb, app_key); + } else { + return elm->type->encoding_constraints.general_constraints(elm->type, + memb_ptr, ctfailcb, app_key); + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: no CHOICE element given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +void +CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + const asn_CHOICE_specifics_t *specs; + unsigned present; + + if(!td || !ptr) + return; + + specs = (const asn_CHOICE_specifics_t *)td->specifics; + + ASN_DEBUG("Freeing %s as CHOICE", td->name); + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + /* + * Free that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)ptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)ptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } +} + + +/* + * The following functions functions offer protection against -fshort-enums, + * compatible with little- and big-endian machines. + * If assertion is triggered, either disable -fshort-enums, or add an entry + * here with the ->pres_size of your target stracture. + * Unless the target structure is packed, the ".present" member + * is guaranteed to be aligned properly. ASN.1 compiler itself does not + * produce packed code. + */ +unsigned +_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, + unsigned pres_size) { + const void *present_ptr; + unsigned present; + + present_ptr = ((const char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): present = *(const unsigned int *)present_ptr; break; + case sizeof(short): present = *(const unsigned short *)present_ptr; break; + case sizeof(char): present = *(const unsigned char *)present_ptr; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + return 0; /* If not aborted, pass back safe value */ + } + + return present; +} + +void +_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, + unsigned present) { + void *present_ptr; + present_ptr = ((char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): *(unsigned int *)present_ptr = present; break; + case sizeof(short): *(unsigned short *)present_ptr = present; break; + case sizeof(char): *(unsigned char *)present_ptr = present; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + } +} + +static const void * +_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_TYPE_member_t **elm_ptr, unsigned *present_out) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + *elm_ptr = NULL; + *present_out = 0; + return NULL; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + *present_out = present; + + /* + * The presence index is intentionally 1-based to avoid + * treating zeroed structure as a valid one. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *const elm = &td->elements[present - 1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + *elm_ptr = elm; + return memb_ptr; + } else { + *elm_ptr = NULL; + return NULL; + } + +} + +int +CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + asn_TYPE_member_t *aelm; + asn_TYPE_member_t *belm; + unsigned apresent = 0; + unsigned bpresent = 0; + const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); + const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); + + if(amember && bmember) { + if(apresent == bpresent) { + assert(aelm == belm); + return aelm->type->op->compare_struct(aelm->type, amember, bmember); + } else if(apresent < bpresent) { + return -1; + } else { + return 1; + } + } else if(!amember) { + return -1; + } else { + return 1; + } +} + +int +CHOICE_copy(const asn_TYPE_descriptor_t *td, void **aptr, const void *bptr) { + if(!td) return -1; + + void *st = *aptr; + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm; /* CHOICE's element */ + int present; + int ret; + void *amemb; + void **amembp; + const void *bmemb; + + if(!bptr) { + if(st) { + ASN_STRUCT_FREE(*td, st); + *aptr = NULL; + } + return 0; + } + + if(!st) { + st = *aptr = CALLOC(1, specs->struct_size); + if(!st) return -1; + } + + present = _fetch_present_idx(bptr, + specs->pres_offset, specs->pres_size); + + if(present <= 0 && (unsigned)present > td->elements_count) return -1; + --present; + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + amembp = (void **)((char *)st + elm->memb_offset); + bmemb = *(const void* const*)((const char*)bptr + elm->memb_offset); + } else { + amemb = (char *)st + elm->memb_offset; + amembp = &amemb; + bmemb = (const void*)((const char*)bptr + elm->memb_offset); + } + ret = elm->type->op->copy_struct(elm->type, amembp, bmemb); + if (ret != 0) return ret; + + _set_present_idx(st, + specs->pres_offset, + specs->pres_size, present + 1); + + return 0; +} + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned +CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); +} + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int +CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, + unsigned present) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned old_present; + + if(!sptr) { + return -1; + } + + if(present > td->elements_count) + return -1; + + old_present = + _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + if(present == old_present) + return 0; + + if(old_present != 0) { + assert(old_present <= td->elements_count); + ASN_STRUCT_RESET(*td, sptr); + } + + _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_aper.c new file mode 100644 index 000000000..6f8a19525 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_aper.c @@ -0,0 +1,179 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct = NULL; + asn_TYPE_member_t *elm = NULL; /* CHOICE's element */ + void *memb_ptr = NULL; + void **memb_ptr2 = NULL; + void *st = *sptr; + int value = 0; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + + if(specs && specs->tag2el_count > (unsigned)specs->ext_start) { + value = aper_get_nsnnwn(pd); /* extension elements range */ + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) + value = specs->from_canonical_order[value]; + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } else { + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + int present; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present <= 0 || (unsigned)present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present = specs->to_canonical_order[present]; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + if(ct && ct->range_bits >= 0) { + if(present < ct->lower_bound + || present > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po); + } else { + asn_enc_rval_t rval = {0,0,0}; + if(specs->ext_start == -1) + ASN__ENCODE_FAILED; + if(aper_put_nsnnwn(po, present - specs->ext_start)) + ASN__ENCODE_FAILED; + if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_print.c new file mode 100644 index 000000000..1d1509bdb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_print.c @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + /* + * Print that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Print member's name and stuff */ + if(0) { + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + } + + return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, + cb, app_key); + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_rfill.c new file mode 100644 index 000000000..1c139a99f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_rfill.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_random_fill_result_t res; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm; + unsigned present; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *st = *sptr; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + present = asn_random_between(1, td->elements_count); + elm = &td->elements[present - 1]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + res = elm->type->op->random_fill(elm->type, memb_ptr2, + &elm->encoding_constraints, max_length); + _set_present_idx(st, specs->pres_offset, specs->pres_size, present); + if(res.code == ARFILL_OK) { + *sptr = st; + } else { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + } + + return res; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_uper.c new file mode 100644 index 000000000..4904db7e0 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_CHOICE_uper.c @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_dec_rval_t +CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct; + asn_TYPE_member_t *elm; /* CHOICE's element */ + void *memb_ptr; + void **memb_ptr2; + void *st = *sptr; + int value; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) { + ASN_DEBUG("CHOICE presence from wire %d", value); + value = specs->from_canonical_order[value]; + ASN_DEBUG("CHOICE presence index effective %d", value); + } + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } else { + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + unsigned present; + int present_enc; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present_enc = specs->to_canonical_order[present]; + else + present_enc = present; + + if(ct && ct->range_bits >= 0) { + if(present_enc < ct->lower_bound + || present_enc > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG( + "CHOICE member %d (enc %d) is an extension (%"ASN_PRIdMAX"..%"ASN_PRIdMAX")", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%"ASN_PRIdMAX"..%"ASN_PRIdMAX")", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + + elm = &td->elements[present]; + ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, + present_enc); + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present_enc, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); + } else { + asn_enc_rval_t rval = {0,0,0}; + if(specs->ext_start == -1) ASN__ENCODE_FAILED; + if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) + ASN__ENCODE_FAILED; + if(uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE.c new file mode 100644 index 000000000..2cd2fe253 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE.c @@ -0,0 +1,251 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_SEQUENCE = { + SEQUENCE_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SEQUENCE_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SEQUENCE_compare, + SEQUENCE_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SEQUENCE_decode_ber, + SEQUENCE_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SEQUENCE_decode_jer, + SEQUENCE_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SEQUENCE_decode_oer, + SEQUENCE_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SEQUENCE_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +void +SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + size_t edx; + const asn_SEQUENCE_specifics_t *specs; + asn_struct_ctx_t *ctx; /* Decoder context */ + + if(!td || !sptr) + return; + + specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + + ASN_DEBUG("Freeing %s as SEQUENCE", td->name); + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)sptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)sptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + /* Clean parsing context */ + ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); + FREEMEM(ctx->ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset( + sptr, 0, + ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); + break; + } +} + +int +SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t edx; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Iterate over structure members and check their validity. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + asn_constr_check_f *constr; + int ret; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + continue; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + constr = elm->encoding_constraints.general_constraints; + if(!constr) + constr = elm->type->encoding_constraints.general_constraints; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; + } + + return 0; +} + +int +SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + size_t edx; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *amemb; + const void *bmemb; + int ret; + + if(elm->flags & ATF_POINTER) { + amemb = + *(const void *const *)((const char *)aptr + elm->memb_offset); + bmemb = + *(const void *const *)((const char *)bptr + elm->memb_offset); + if(!amemb) { + if(!bmemb) continue; + if(elm->default_value_cmp + && elm->default_value_cmp(bmemb) == 0) { + /* A is absent, but B is present and equal to DEFAULT */ + continue; + } + return -1; + } else if(!bmemb) { + if(elm->default_value_cmp + && elm->default_value_cmp(amemb) == 0) { + /* B is absent, but A is present and equal to DEFAULT */ + continue; + } + return 1; + } + } else { + amemb = (const void *)((const char *)aptr + elm->memb_offset); + bmemb = (const void *)((const char *)bptr + elm->memb_offset); + } + + ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); + if(ret != 0) return ret; + } + + return 0; +} + +int +SEQUENCE_copy(const asn_TYPE_descriptor_t *td, void **aptr, + const void *bptr) { + if(!td) return -1; + + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + size_t edx; + void *st = *aptr; /* Target structure */ + + if(!bptr) { + if(st) { + SEQUENCE_free(td, st, 0); + *aptr = 0; + } + return 0; + } + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *aptr = CALLOC(1, specs->struct_size); + if(st == 0) return -1; + } + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *amemb; + void **amembp; + const void *bmemb; + int ret; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + amembp = (void **)((char *)st + elm->memb_offset); + bmemb = *(const void* const*)((const char*)bptr + elm->memb_offset); + } else { + amemb = (char *)st + elm->memb_offset; + amembp = &amemb; + bmemb = (const void*)((const char*)bptr + elm->memb_offset); + } + + ret = elm->type->op->copy_struct(elm->type, amembp, bmemb); + if(ret != 0) return ret; + } + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF.c new file mode 100644 index 000000000..a64dc4bbd --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF.c @@ -0,0 +1,95 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { + SEQUENCE_OF_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SEQUENCE_OF_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SEQUENCE_OF_compare, + SEQUENCE_OF_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SEQUENCE_OF_decode_jer, + SEQUENCE_OF_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ + SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ + SEQUENCE_OF_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SEQUENCE_OF_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +int +SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); + const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); + ssize_t idx; + + if(a && b) { + ssize_t common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, a->array[idx], b->array[idx]); + if(ret) return ret; + } + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF_aper.c new file mode 100644 index 000000000..92e42a387 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF_aper.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er = {0,0,0}; + asn_TYPE_member_t *elm = td->elements; + int seq; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = (list->count < ct->lower_bound + || list->count > ct->upper_bound); + ASN_DEBUG("lb %lld ub %lld %s", + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) + ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) + ASN__ENCODE_FAILED; + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ +/* + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; +*/ + if (ct->lower_bound == ct->upper_bound && ct->upper_bound < 65536) { + /* No length determinant */ + } else if (aper_put_length(po, ct->lower_bound, ct->upper_bound, list->count - ct->lower_bound, 0) < 0) + ASN__ENCODE_FAILED; + } + + for(seq = -1; seq < list->count;) { + ssize_t mayEncode; + int need_eom = 0; + if(seq < 0) seq = 0; + if(ct && ct->effective_bits >= 0) { + mayEncode = list->count; + } else { + mayEncode = aper_put_length(po, -1, -1, list->count - seq, &need_eom); + if(mayEncode < 0) ASN__ENCODE_FAILED; + } + + while(mayEncode--) { + void *memb_ptr = list->array[seq++]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->aper_encoder(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po); + if(er.encoded == -1) + ASN__ENCODE_FAILED; + } + + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF_uper.c new file mode 100644 index 000000000..679e6b774 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_OF_uper.c @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_enc_rval_t +SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er = {0,0,0}; + const asn_TYPE_member_t *elm = td->elements; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %"ASN_PRIdMAX" ub %"ASN_PRIdMAX" %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, + po); + if(er.encoded == -1) ASN__ENCODE_FAILED; + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_aper.c new file mode 100644 index 000000000..277bab67e --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_aper.c @@ -0,0 +1,457 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +asn_dec_rval_t +SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ +#if 0 + int padding; +#endif + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } +#if 0 + /* Get Padding */ + padding = (8 - (pd->moved % 8)) % 8; + if(padding > 0) + ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); +#if 0 /* old way of removing padding */ + per_get_few_bits(pd, padding); +#else /* Experimental fix proposed by @mhanna123 */ + if(edx != (td->elements_count-1)) + per_get_few_bits(pd, padding); + else { + if(specs->roms_count && (padding > 0)) + ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); + else + per_get_few_bits(pd, padding); + } +#endif /* dealing with padding */ +#endif + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + if (OPEN_TYPE_aper_is_unknown_type(td, st, elm)) { + rv = OPEN_TYPE_aper_unknown_type_discard_bytes(pd); + FREEMEM(opres); + return rv; + } + rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = aper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) + ASN__DECODE_STARVED; + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %zd bits (%x..)", + td->name, bmlength, *epres); + + /* Deal with padding */ + if (aper_get_align(pd) < 0) + ASN__DECODE_STARVED; + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%zu is not extension", edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: + break; + case 0: + continue; + default: + if(aper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + } + break; + } + + FREEMEM(epres); + } + + /* Fill DEFAULT members in extensions */ + for(edx = specs->roms_count; edx < specs->roms_count + + specs->aoms_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void **memb_ptr2; /* Pointer to member pointer */ + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%s (@%zu) is not extension", elm->type->name, edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s (@%zu) present => %d", + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) + return -1; + /* Encode as open type field */ + if(po2 && present && aper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po2)) + return -1; + + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(*memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %zu not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s", td->name, elm->name); + er = elm->type->op->aper_encoder(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po); + if(er.encoded == -1) + return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(aper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_print.c new file mode 100644 index 000000000..30e04ee68 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_print.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t edx; + int ret; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) continue; + /* Print line */ + /* Fall through */ + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Indentation */ + _i_INDENT(1); + + /* Print the member's name and stuff */ + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + + /* Print the member itself */ + ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, + cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_rfill.c new file mode 100644 index 000000000..375cbf9aa --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_rfill.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + void *st = *sptr; + size_t edx; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + for(edx = 0; edx < td->elements_count; edx++) { + const asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + asn_random_fill_result_t tmpres; + + if(elm->optional && asn_random_between(0, 4) == 2) { + /* Sometimes decide not to fill the optional value */ + continue; + } + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + tmpres = elm->type->op->random_fill( + elm->type, memb_ptr2, &elm->encoding_constraints, + max_length > result_ok.length ? max_length - result_ok.length : 0); + switch(tmpres.code) { + case ARFILL_OK: + result_ok.length += tmpres.length; + continue; + case ARFILL_SKIPPED: + assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); + continue; + case ARFILL_FAILED: + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return tmpres; + } + } + + *sptr = st; + + return result_ok; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_uper.c new file mode 100644 index 000000000..7bdfec5d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SEQUENCE_uper.c @@ -0,0 +1,429 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +asn_dec_rval_t +SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; + edx < (specs->first_extension < 0 ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + assert(!IN_EXTENSION_GROUP(specs, edx)); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = uper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", + td->name, (long)bmlength, *epres); + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, + *memb_ptr2); + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: break; + case 0: continue; + default: + if(uper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + ASN_DEBUG("Skipped overflow extension"); + continue; + } + break; + } + + FREEMEM(epres); + } + + if(specs->first_extension >= 0) { + unsigned i; + /* Fill DEFAULT members in extensions */ + for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; + i++) { + asn_TYPE_member_t *elm; + void **memb_ptr2; /* Pointer to member pointer */ + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) { + return -1; + } + /* Encode as open type field */ + if(po2 && present + && uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po2)) + return -1; + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(*memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, + po); + if(er.encoded == -1) return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of extensions %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(uper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF.c new file mode 100644 index 000000000..63e01659b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF.c @@ -0,0 +1,429 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_TYPE_operation_t asn_OP_SET_OF = { + SET_OF_free, +#if !defined(ASN_DISABLE_PRINT_SUPPORT) + SET_OF_print, +#else + 0, +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + SET_OF_compare, + SET_OF_copy, +#if !defined(ASN_DISABLE_BER_SUPPORT) + SET_OF_decode_ber, + SET_OF_encode_der, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_XER_SUPPORT) + SET_OF_decode_xer, + SET_OF_encode_xer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + SET_OF_decode_jer, + SET_OF_encode_jer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) + SET_OF_decode_oer, + SET_OF_encode_oer, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + SET_OF_decode_uper, + SET_OF_encode_uper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + SET_OF_decode_aper, + SET_OF_encode_aper, +#else + 0, + 0, +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_RFILL_SUPPORT) + SET_OF_random_fill, +#else + 0, +#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */ + 0 /* Use generic outmost tag fetcher */ +}; + +/* Append bytes to the above structure */ +static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { + struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; + + if(el_buf->length + size > el_buf->allocated_size) { + size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; + void *p; + + do { + new_size <<= 2; + } while(el_buf->length + size > new_size); + + p = REALLOC(el_buf->buf, new_size); + if(p) { + el_buf->buf = p; + el_buf->allocated_size = new_size; + } else { + return -1; + } + } + + memcpy(el_buf->buf + el_buf->length, buffer, size); + + el_buf->length += size; + return 0; +} + +static void assert_unused_bits(const struct _el_buffer* p) { + if(p->length) { + assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); + } else { + assert(p->bits_unused == 0); + } +} + +static int _el_buf_cmp(const void *ap, const void *bp) { + const struct _el_buffer *a = (const struct _el_buffer *)ap; + const struct _el_buffer *b = (const struct _el_buffer *)bp; + size_t common_len; + int ret = 0; + + if(a->length < b->length) + common_len = a->length; + else + common_len = b->length; + + if (a->buf && b->buf) { + ret = memcmp(a->buf, b->buf, common_len); + } + if(ret == 0) { + if(a->length < b->length) + ret = -1; + else if(a->length > b->length) + ret = 1; + /* Ignore unused bits. */ + assert_unused_bits(a); + assert_unused_bits(b); + } + + return ret; +} + +void +SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { + size_t i; + + for(i = 0; i < count; i++) { + FREEMEM(el_buf[i].buf); + } + + FREEMEM(el_buf); +} + +struct _el_buffer * +SET_OF__encode_sorted(const asn_TYPE_member_t *elm, + const asn_anonymous_set_ *list, + enum SET_OF__encode_method method) { + struct _el_buffer *encoded_els; + int edx; + + encoded_els = + (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); + if(encoded_els == NULL) { + return NULL; + } + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + const void *memb_ptr = list->array[edx]; + struct _el_buffer *encoding_el = &encoded_els[edx]; + asn_enc_rval_t erval = {0,0,0}; + + if(!memb_ptr) break; + + /* + * Encode the member into the prepared space. + */ + switch(method) { +#if !defined(ASN_DISABLE_BER_SUPPORT) + case SOES_DER: + erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, + _el_addbytes, encoding_el); + break; +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) + case SOES_CUPER: + erval = uper_encode(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, _el_addbytes, encoding_el); + if(erval.encoded != -1) { + size_t extra_bits = erval.encoded % 8; + assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); + encoding_el->bits_unused = (8 - extra_bits) & 0x7; + } + break; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) + case SOES_CAPER: + erval = aper_encode(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, _el_addbytes, encoding_el); + if(erval.encoded != -1) { + size_t extra_bits = erval.encoded % 8; + assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); + encoding_el->bits_unused = (8 - extra_bits) & 0x7; + } + break; +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + + default: + assert(!"Unreachable"); + break; + } + if(erval.encoded < 0) break; + } + + if(edx == list->count) { + /* + * Sort the encoded elements according to their encoding. + */ + qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); + + return encoded_els; + } else { + SET_OF__encode_sorted_free(encoded_els, edx); + return NULL; + } +} + +void +SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + const asn_SET_OF_specifics_t *specs; + asn_TYPE_member_t *elm = td->elements; + asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); + asn_struct_ctx_t *ctx; /* Decoder context */ + int i; + + /* + * Could not use set_of_empty() because of (*free) + * incompatibility. + */ + for(i = 0; i < list->count; i++) { + void *memb_ptr = list->array[i]; + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } + list->count = 0; /* No meaningful elements left */ + + asn_set_empty(list); /* Remove (list->array) */ + + specs = (const asn_SET_OF_specifics_t *)td->specifics; + ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); + if(ctx->ptr) { + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } + } +} + +int +SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + asn_constr_check_f *constr; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int i; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + constr = elm->encoding_constraints.general_constraints; + if(!constr) constr = elm->type->encoding_constraints.general_constraints; + + /* + * Iterate over the members of an array. + * Validate each in turn, until one fails. + */ + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + int ret; + + if(!memb_ptr) continue; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; + } + + return 0; +} + +struct comparable_ptr { + const asn_TYPE_descriptor_t *td; + const void *sptr; +}; + +static int +SET_OF__compare_cb(const void *aptr, const void *bptr) { + const struct comparable_ptr *a = aptr; + const struct comparable_ptr *b = bptr; + assert(a->td == b->td); + return a->td->op->compare_struct(a->td, a->sptr, b->sptr); +} + +int +SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); + const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); + + if(a && b) { + struct comparable_ptr *asorted; + struct comparable_ptr *bsorted; + ssize_t common_length; + ssize_t idx; + + if(a->count == 0) { + if(b->count) return -1; + return 0; + } else if(b->count == 0) { + return 1; + } + + asorted = MALLOC(a->count * sizeof(asorted[0])); + bsorted = MALLOC(b->count * sizeof(bsorted[0])); + if(!asorted || !bsorted) { + FREEMEM(asorted); + FREEMEM(bsorted); + return -1; + } + + for(idx = 0; idx < a->count; idx++) { + asorted[idx].td = td->elements->type; + asorted[idx].sptr = a->array[idx]; + } + + for(idx = 0; idx < b->count; idx++) { + bsorted[idx].td = td->elements->type; + bsorted[idx].sptr = b->array[idx]; + } + + qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); + qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); + + common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); + if(ret) { + FREEMEM(asorted); + FREEMEM(bsorted); + return ret; + } + } + + FREEMEM(asorted); + FREEMEM(bsorted); + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} + +int +SET_OF_copy(const asn_TYPE_descriptor_t *td, void **aptr, + const void *bptr) { + if(!td) return -1; + + const asn_SET_OF_specifics_t *specs = + (const asn_SET_OF_specifics_t *)td->specifics; + void *st = *aptr; + + if(!bptr) { + if(*aptr) { + asn_set_empty(_A_SET_FROM_VOID(*aptr)); + *aptr = 0; + } + return 0; + } + + if(st == 0) { + st = *aptr = CALLOC(1, specs->struct_size); + if(st == 0) return -1; + } + + asn_anonymous_set_ *a = _A_SET_FROM_VOID(*aptr); + const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); + + if(b->size) { + void *_new_arr; + _new_arr = REALLOC(a->array, b->size * sizeof(b->array[0])); + if(_new_arr) { + a->array = (void **)_new_arr; + a->size = b->size; + } else { + return -1; + } + a->count = b->count; + + for(int i = 0; i < b->count; i++) { + void *bmemb = b->array[i]; + if(bmemb) { + void *amemb = 0; + int ret; + ret = td->elements->type->op->copy_struct( + td->elements->type, + &amemb, bmemb); + if(ret != 0) return ret; + a->array[i] = amemb; + } else { + a->array[i] = 0; + } + } + } + + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_aper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_aper.c new file mode 100644 index 000000000..29b29e013 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_aper.c @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_enc_rval_t +SET_OF_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + const asn_TYPE_member_t *elm = td->elements; + struct _el_buffer *encoded_els; + asn_enc_rval_t er = {0,0,0}; + int seq; + + if(!sptr) ASN__ENCODE_FAILED; + + list = _A_CSET_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SET OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %lld ub %lld %s", + (long long int)ct->lower_bound, + (long long int)ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + /*if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED;*/ + + if (aper_put_length(po, ct->lower_bound, ct->upper_bound, list->count - ct->lower_bound, 0) < 0) { + ASN__ENCODE_FAILED; + } + } + + /* + * Canonical PER #22.1 mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_CAPER); + + for(seq = 0; seq < list->count;) { + ssize_t may_encode; + int need_eom = 0; + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + aper_put_length(po, -1, -1, list->count - seq, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + while(may_encode--) { + const struct _el_buffer *el = &encoded_els[seq++]; + if(asn_put_many_bits(po, el->buf, + (8 * el->length) - el->bits_unused) < 0) { + break; + } + } + if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->upper_bound >= 1 && ct->upper_bound <= 65535 + && ct->upper_bound == ct->lower_bound) { + /* X.691, #19.5: No length determinant */ + nelems = ct->upper_bound; + ASN_DEBUG("Preparing to fetch %ld elements from %s", + (long)nelems, td->name); + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + if (ct) + nelems = aper_get_length(pd, ct->lower_bound, ct->upper_bound, + ct->effective_bits, &repeat); + else + nelems = aper_get_length(pd, -1, -1, -1, &repeat); + ASN_DEBUG("Got to decode %d elements (eff %d)", + (int)nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) + continue; + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_print.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_print.c new file mode 100644 index 000000000..d135888cb --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_print.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +int +SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int ret; + int i; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + _i_INDENT(1); + + ret = elm->type->op->print_struct(elm->type, memb_ptr, + ilevel + 1, cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_rfill.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_rfill.c new file mode 100644 index 000000000..7a288120c --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_rfill.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_random_fill_result_t +SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_SET_OF_specifics_t *specs = + (const asn_SET_OF_specifics_t *)td->specifics; + asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm = td->elements; + void *st = *sptr; + long max_elements = 5; + long slb = 0; /* Lower size bound */ + long sub = 0; /* Upper size bound */ + size_t rnd_len; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) { + return result_failed; + } + } + + switch(asn_random_between(0, 6)) { + case 0: max_elements = 0; break; + case 1: max_elements = 1; break; + case 2: max_elements = 5; break; + case 3: max_elements = max_length; break; + case 4: max_elements = max_length / 2; break; + case 5: max_elements = max_length / 4; break; + default: break; + } + sub = slb + max_elements; + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_SEMI_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->lower_bound + max_elements; + } else if(pc->flags & APC_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->upper_bound; + if(sub - slb > max_elements) sub = slb + max_elements; + } + } +#else + if(!constraints) constraints = &td->encoding_constraints; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + + /* Bias towards edges of allowed space */ + switch(asn_random_between(-1, 4)) { + default: + case -1: +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + /* Prepare lengths somewhat outside of constrained range. */ + if(constraints->per_constraints + && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { + switch(asn_random_between(0, 5)) { + default: + case 0: + rnd_len = 0; + break; + case 1: + if(slb > 0) { + rnd_len = slb - 1; + } else { + rnd_len = 0; + } + break; + case 2: + rnd_len = asn_random_between(0, slb); + break; + case 3: + if(sub < (ssize_t)max_length) { + rnd_len = sub + 1; + } else { + rnd_len = max_length; + } + break; + case 4: + if(sub < (ssize_t)max_length) { + rnd_len = asn_random_between(sub + 1, max_length); + } else { + rnd_len = max_length; + } + break; + case 5: + rnd_len = max_length; + break; + } + break; + } +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ + /* Fall through */ + case 0: + rnd_len = asn_random_between(slb, sub); + break; + case 1: + if(slb < sub) { + rnd_len = asn_random_between(slb + 1, sub); + break; + } + /* Fall through */ + case 2: + rnd_len = asn_random_between(slb, slb); + break; + case 3: + if(slb < sub) { + rnd_len = asn_random_between(slb, sub - 1); + break; + } + /* Fall through */ + case 4: + rnd_len = asn_random_between(sub, sub); + break; + } + + for(; rnd_len > 0; rnd_len--) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + void *ptr = 0; + asn_random_fill_result_t tmpres = elm->type->op->random_fill( + elm->type, &ptr, &elm->encoding_constraints, + (max_length > res_ok.length ? max_length - res_ok.length : 0) + / rnd_len); + switch(tmpres.code) { + case ARFILL_OK: + ASN_SET_ADD(list, ptr); + res_ok.length += tmpres.length; + break; + case ARFILL_SKIPPED: + break; + case ARFILL_FAILED: + assert(ptr == 0); + return tmpres; + } + } + + return res_ok; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_uper.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_uper.c new file mode 100644 index 000000000..803c54f12 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_SET_OF_uper.c @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +asn_dec_rval_t +SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = per_get_few_bits(pd, ct->effective_bits); + ASN_DEBUG("Preparing to fetch %ld+%"ASN_PRIdMAX" elements from %s", + (long)nelems, ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + nelems = uper_get_length(pd, -1, 0, &repeat); + ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", + nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) { + if(rv.consumed == 0 && nelems > 200) { + /* Protect from SET OF NULL compression bombs. */ + ASN__DECODE_FAILED; + } + continue; + } + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +asn_enc_rval_t +SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + const asn_TYPE_member_t *elm = td->elements; + struct _el_buffer *encoded_els; + asn_enc_rval_t er = {0,0,0}; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + + list = _A_CSET_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %"ASN_PRIdMAX" ub %"ASN_PRIdMAX" %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + + /* + * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + const struct _el_buffer *el = &encoded_els[edx]; + if(asn_put_many_bits(po, el->buf, + (8 * el->length) - el->bits_unused) < 0) { + break; + } + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if((ssize_t)encoded_edx == list->count) { + ASN__ENCODED_OK(er); + } else { + ASN__ENCODE_FAILED; + } +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_TYPE.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_TYPE.c new file mode 100644 index 000000000..26953193f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constr_TYPE.c @@ -0,0 +1,100 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Version of the ASN.1 infrastructure shipped with compiler. + */ +int get_asn1c_environment_version(void) { return ASN1C_ENVIRONMENT_VERSION; } + +static asn_app_consume_bytes_f _print2fp; + +/* + * Return the outmost tag of the type. + */ +ber_tlv_tag_t +asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { + + if(tag_mode) + return tag; + + if(type_descriptor->tags_count) + return type_descriptor->tags[0]; + + return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); +} + +/* + * Print the target language's structure in human readable form. + */ +int +asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, + const void *struct_ptr) { + if(!stream) stream = stdout; + if(!td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + /* Invoke type-specific printer */ + if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { + return -1; + } + + /* Terminate the output */ + if(_print2fp("\n", 1, stream)) { + return -1; + } + + return fflush(stream); +} + +/* + * Copy a structuture. + */ +int +asn_copy(const asn_TYPE_descriptor_t *td, + void **struct_dst, const void *struct_src) { + + if(!td || !struct_dst || !struct_src) { + errno = EINVAL; + return -1; + } + + if(!td->op) { + errno = ENOSYS; + return -1; + } + + return td->op->copy_struct(td, struct_dst, struct_src); +} + +/* Dump the data into the specified stdio stream */ +static int +_print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + + +/* + * Some compilers do not support variable args macros. + * This function is a replacement of ASN_DEBUG() macro. + */ +void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); +void ASN_DEBUG_f(const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + va_end(ap); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/constraints.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/constraints.c new file mode 100644 index 000000000..44894012a --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/constraints.c @@ -0,0 +1,94 @@ +#include +#include + +int +asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Nothing to check */ + return 0; +} + +int +asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Unknown how to check */ + return 0; +} + +struct errbufDesc { + const asn_TYPE_descriptor_t *failed_type; + const void *failed_struct_ptr; + char *errbuf; + size_t errlen; +}; + +static void +CC_PRINTFLIKE(4, 5) +_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, + const char *fmt, ...) { + struct errbufDesc *arg = key; + va_list ap; + ssize_t vlen; + ssize_t maxlen; + + arg->failed_type = td; + arg->failed_struct_ptr = sptr; + + maxlen = arg->errlen; + if(maxlen <= 0) + return; + + va_start(ap, fmt); + vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); + va_end(ap); + if(vlen >= maxlen) { + arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ + arg->errlen = maxlen - 1; /* Not counting termination */ + return; + } else if(vlen >= 0) { + arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ + arg->errlen = vlen; /* Not counting termination */ + } else { + /* + * The libc on this system is broken. + */ + vlen = sizeof("") - 1; + maxlen--; + arg->errlen = vlen < maxlen ? vlen : maxlen; + memcpy(arg->errbuf, "", arg->errlen); + arg->errbuf[arg->errlen] = 0; + } + + return; +} + +int +asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, char *errbuf, size_t *errlen) { + struct errbufDesc arg; + int ret; + + arg.failed_type = 0; + arg.failed_struct_ptr = 0; + arg.errbuf = errbuf; + arg.errlen = errlen ? *errlen : 0; + + ret = type_descriptor->encoding_constraints.general_constraints( + type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); + if(ret == -1 && errlen) *errlen = arg.errlen; + + return ret; +} + diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/per_decoder.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/per_decoder.c new file mode 100644 index 000000000..2e1ee6bc8 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/per_decoder.c @@ -0,0 +1,5 @@ +#include +#include +#include + +// Absolutely nothing diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/per_encoder.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/per_encoder.c new file mode 100644 index 000000000..7f7d2c11f --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/per_encoder.c @@ -0,0 +1,35 @@ +#include +#include + +int +ignore_output(const void *data, size_t size, void *app_key) { + (void)data; + (void)size; + (void)app_key; + return 0; +} + +int +encode_dyn_cb(const void *buffer, size_t size, void *key) { + enc_dyn_arg *arg = key; + if(arg->length + size >= arg->allocated) { + size_t new_size = arg->allocated ? arg->allocated : 8; + void *p; + + do { + new_size <<= 2; + } while(arg->length + size >= new_size); + + p = REALLOC(arg->buffer, new_size); + if(!p) { + FREEMEM(arg->buffer); + memset(arg, 0, sizeof(*arg)); + return -1; + } + arg->buffer = p; + arg->allocated = new_size; + } + memcpy(((char *)arg->buffer) + arg->length, buffer, size); + arg->length += size; + return 0; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/per_opentype.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/per_opentype.c new file mode 100644 index 000000000..cd0b32fcd --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/per_opentype.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include + +/* + * Internal functions. + */ + +asn_dec_rval_t +uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)ctx; + (void)td; + (void)constraints; + (void)sptr; + + while(per_get_few_bits(pd, 1) >= 0); + + rv.code = RC_OK; + rv.consumed = pd->moved; + + return rv; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/per_support.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/per_support.c new file mode 100644 index 000000000..6dfd9c5d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/per_support.c @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +// Absolutely nothing diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_decoder.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_decoder.c new file mode 100644 index 000000000..bd93b204b --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_decoder.c @@ -0,0 +1,96 @@ +#include +#include +#include + +/* + * Decode a "Production of a complete encoding", X.691#10.1. + * The complete encoding contains at least one byte, and is an integral + * multiple of 8 bytes. + */ +asn_dec_rval_t +uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +uper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->uper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %ld, counted %ld", + (long)rval.consumed, (long)pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_encoder.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_encoder.c new file mode 100644 index 000000000..14d2970e7 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_encoder.c @@ -0,0 +1,127 @@ +#include +#include +#include + +static int _uper_encode_flush_outp(asn_per_outp_t *po); + +asn_enc_rval_t +uper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er = {0,0,0}; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->uper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb ? cb : ignore_output; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->uper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; + } + + return er; +} + +/* + * Argument type and callback necessary for uper_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +asn_enc_rval_t +uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); + + return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +ssize_t +uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er = {0,0,0}; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +/* + * Internally useful functions. + */ + +/* Flush partially filled buffer */ +static int +_uper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_opentype.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_opentype.c new file mode 100644 index 000000000..ab65ae251 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_opentype.c @@ -0,0 +1,372 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +typedef struct uper_ugot_key { + asn_per_data_t oldpd; /* Old per data source */ + size_t unclaimed; + size_t ot_moved; /* Number of bits moved by OT processing */ + int repeat; +} uper_ugot_key; + +static int uper_ugot_refill(asn_per_data_t *pd); +static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); + +/* + * Encode an "open type field". + * #10.1, #10.2 + */ +int +uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, + size); + + bptr = buf; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE + " to %s and allowing to save %" ASN_PRI_SSIZE, + size, td->name, may_save); + if(may_save < 0) break; + if(per_put_many_bits(po, bptr, may_save * 8)) break; + bptr = (char *)bptr + may_save; + size -= may_save; + if(need_eom && uper_put_length(po, 0, 0)) { + FREEMEM(buf); + return -1; + } + } while(size); + + FREEMEM(buf); + if(size) return -1; + + return 0; +} + +static asn_dec_rval_t +uper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = uper_get_length(pd, -1, 0, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, (buf == NULL)? NULL : buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* No one would give us more */ + } + + return rv; +} + +static asn_dec_rval_t CC_NOTUSED +uper_open_type_get_complex(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + uper_ugot_key arg; + asn_dec_rval_t rv; + ssize_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s from %s", td->name, + asn_bit_data_string(pd)); + arg.oldpd = *pd; + arg.unclaimed = 0; + arg.ot_moved = 0; + arg.repeat = 1; + pd->refill = uper_ugot_refill; + pd->refill_key = &arg; + pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ + pd->moved = 0; /* This now counts the open type size in bits */ + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); + ASN_DEBUG_INDENT_ADD(-4); + +#define UPDRESTOREPD do { \ + /* buffer and nboff are valid, preserve them. */ \ + pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ + pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ + pd->refill = arg.oldpd.refill; \ + pd->refill_key = arg.oldpd.refill_key; \ + } while(0) + + if(rv.code != RC_OK) { + UPDRESTOREPD; + return rv; + } + + ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, + asn_bit_data_string(pd), + asn_bit_data_string(&arg.oldpd), + (int)arg.unclaimed, (int)arg.repeat); + + padding = pd->moved % 8; + if(padding) { + int32_t pvalue; + if(padding > 7) { + ASN_DEBUG("Too large padding %d in open type", + (int)padding); + rv.code = RC_FAIL; + UPDRESTOREPD; + return rv; + } + padding = 8 - padding; + ASN_DEBUG("Getting padding of %d bits", (int)padding); + pvalue = per_get_few_bits(pd, padding); + switch(pvalue) { + case -1: + ASN_DEBUG("Padding skip failed"); + UPDRESTOREPD; + ASN__DECODE_STARVED; + case 0: break; + default: + ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", + (int)padding, (int)pvalue); + UPDRESTOREPD; + ASN__DECODE_FAILED; + } + } + if(pd->nboff != pd->nbits) { + ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, + asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); + if(1) { + UPDRESTOREPD; + ASN__DECODE_FAILED; + } else { + arg.unclaimed += pd->nbits - pd->nboff; + } + } + + /* Adjust pd back so it points to original data */ + UPDRESTOREPD; + + /* Skip data not consumed by the decoder */ + if(arg.unclaimed) { + ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); + switch(per_skip_bits(pd, arg.unclaimed)) { + case -1: + ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); + ASN__DECODE_STARVED; + case 0: + ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); + break; + default: + /* Padding must be blank */ + ASN_DEBUG("Non-blank unconsumed padding"); + ASN__DECODE_FAILED; + } + arg.unclaimed = 0; + } + + if(arg.repeat) { + ASN_DEBUG("Not consumed the whole thing"); + rv.code = RC_FAIL; + return rv; + } + + return rv; +} + + +asn_dec_rval_t +uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_TYPE_operation_t s_op; + asn_dec_rval_t rv; + + s_td.name = ""; + s_td.op = &s_op; + s_op.uper_decoder = uper_sot_suck; + + rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} + +/* + * Internal functions. + */ + +static int +uper_ugot_refill(asn_per_data_t *pd) { + uper_ugot_key *arg = pd->refill_key; + ssize_t next_chunk_bytes, next_chunk_bits; + ssize_t avail; + + asn_per_data_t *oldpd = &arg->oldpd; + + ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", + (long)pd->moved, (long)oldpd->moved); + + /* Advance our position to where pd is */ + oldpd->buffer = pd->buffer; + oldpd->nboff = pd->nboff; + oldpd->nbits -= pd->moved - arg->ot_moved; + oldpd->moved += pd->moved - arg->ot_moved; + arg->ot_moved = pd->moved; + + if(arg->unclaimed) { + /* Refill the container */ + if(per_get_few_bits(oldpd, 1)) + return -1; + if(oldpd->nboff == 0) { + assert(0); + return -1; + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff - 1; + pd->nbits = oldpd->nbits; + ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", + (long)pd->moved); + return 0; + } + + if(!arg->repeat) { + ASN_DEBUG("Want more but refill doesn't have it"); + return -1; + } + + next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); + ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", + (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); + if(next_chunk_bytes < 0) return -1; + if(next_chunk_bytes == 0) { + pd->refill = 0; /* No more refills, naturally */ + assert(!arg->repeat); /* Implementation guarantee */ + } + next_chunk_bits = next_chunk_bytes << 3; + avail = oldpd->nbits - oldpd->nboff; + if(avail >= next_chunk_bits) { + pd->nbits = oldpd->nboff + next_chunk_bits; + arg->unclaimed = 0; + ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", + (long)next_chunk_bits, (long)oldpd->moved, + (long)oldpd->nboff, (long)oldpd->nbits, + (long)(oldpd->nbits - oldpd->nboff)); + } else { + pd->nbits = oldpd->nbits; + arg->unclaimed = next_chunk_bits - avail; + ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", + (long)avail, (long)next_chunk_bits, + (long)arg->unclaimed); + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff; + ASN_DEBUG("Refilled pd%s old%s", + asn_bit_data_string(pd), asn_bit_data_string(oldpd)); + return 0; +} + +static int +per_skip_bits(asn_per_data_t *pd, int skip_nbits) { + int hasNonZeroBits = 0; + while(skip_nbits > 0) { + int skip; + + /* per_get_few_bits() is more efficient when nbits <= 24 */ + if(skip_nbits < 24) + skip = skip_nbits; + else + skip = 24; + skip_nbits -= skip; + + switch(per_get_few_bits(pd, skip)) { + case -1: return -1; /* Starving */ + case 0: continue; /* Skipped empty space */ + default: hasNonZeroBits = 1; continue; + } + } + return hasNonZeroBits; +} diff --git a/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_support.c b/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_support.c new file mode 100644 index 000000000..b6677a837 --- /dev/null +++ b/etsi_its_coding/etsi_its_cam_ts_coding/src/uper_support.c @@ -0,0 +1,311 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * X.691-201508 #10.9 General rules for encoding a length determinant. + * Get the optionally constrained length "n" from the stream. + */ +ssize_t +uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, + int *repeat) { + ssize_t value; + + *repeat = 0; + + /* #11.9.4.1 Encoding if constrained (according to effective bits) */ + if(ebits >= 0 && ebits <= 16) { + value = per_get_few_bits(pd, ebits); + if(value >= 0) value += lower_bound; + return value; + } + + value = per_get_few_bits(pd, 8); + if((value & 0x80) == 0) { /* #11.9.3.6 */ + return (value & 0x7F); + } else if((value & 0x40) == 0) { /* #11.9.3.7 */ + /* bit 8 ... set to 1 and bit 7 ... set to zero */ + value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); + return value; /* potential -1 from per_get_few_bits passes through. */ + } else if(value < 0) { + ASN_DEBUG("END of stream reached for PER"); + return -1; + } + value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) { + return -1; /* Prohibited by #11.9.3.8 */ + } + *repeat = 1; + return (16384 * value); +} + +/* + * Get the normally small length "n". + * This procedure used to decode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +ssize_t +uper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%d", (int)length); + return length; + } else { + int repeat; + length = uper_get_length(pd, -1, 0, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +/* + * Get the normally small non-negative whole number. + * X.691, #10.6 + */ +ssize_t +uper_get_nsnnwn(asn_per_data_t *pd) { + ssize_t value; + + value = per_get_few_bits(pd, 7); + if(value & 64) { /* implicit (value < 0) */ + value &= 63; + value <<= 2; + value |= per_get_few_bits(pd, 2); + if(value & 128) /* implicit (value < 0) */ + return -1; + if(value == 0) + return 0; + if(value >= 3) + return -1; + value = per_get_few_bits(pd, 8 * value); + return value; + } + + return value; +} + +/* + * X.691-11/2008, #11.6 + * Encoding of a normally small non-negative whole number + */ +int +uper_put_nsnnwn(asn_per_outp_t *po, int n) { + int bytes; + + if(n <= 63) { + if(n < 0) return -1; + return per_put_few_bits(po, n, 7); + } + if(n < 256) + bytes = 1; + else if(n < 65536) + bytes = 2; + else if(n < 256 * 65536) + bytes = 3; + else + return -1; /* This is not a "normally small" value */ + if(per_put_few_bits(po, bytes, 8)) + return -1; + + return per_put_few_bits(po, n, 8 * bytes); +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, uintmax_t *out_value, int nbits) { + uintmax_t lhalf; /* Lower half of the number*/ + intmax_t half; + + if(nbits <= 31) { + half = per_get_few_bits(pd, nbits); + if(half < 0) return -1; + *out_value = half; + return 0; + } + + if((size_t)nbits > 8 * sizeof(*out_value)) + return -1; /* RANGE */ + + half = per_get_few_bits(pd, 31); + if(half < 0) return -1; + + if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) + return -1; + + *out_value = ((uintmax_t)half << (nbits - 31)) | lhalf; + return 0; +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int +uper_put_constrained_whole_number_u(asn_per_outp_t *po, uintmax_t v, + int nbits) { + if(nbits <= 31) { + return per_put_few_bits(po, v, nbits); + } else { + /* Put higher portion first, followed by lower 31-bit */ + if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) + return -1; + return per_put_few_bits(po, v, 31); + } +} + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" (or part of it) into the stream. + */ +ssize_t +uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + if(length <= 127) { /* #11.9.3.6 */ + *need_eom = 0; + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } else if(length < 16384) { /* #10.9.3.7 */ + *need_eom = 0; + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + } + + *need_eom = 0 == (length & 16383); + length >>= 14; + if(length > 4) { + *need_eom = 0; + length = 4; + } + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); + +} + + +/* + * Put the normally small length "n" into the stream. + * This procedure used to encode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +int +uper_put_nslength(asn_per_outp_t *po, size_t length) { + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length - 1, 7) ? -1 : 0; + } else { + int need_eom = 0; + if(uper_put_length(po, length, &need_eom) != (ssize_t)length + || need_eom) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +static int +per__imax_range(intmax_t lb, intmax_t ub, uintmax_t *range_r) { + uintmax_t bounds_range; + if((ub < 0) == (lb < 0)) { + bounds_range = ub - lb; + } else if(lb < 0) { + assert(ub >= 0); + bounds_range = 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return -1; + } + *range_r = bounds_range; + return 0; +} + +int +per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output) { + uintmax_t range; + + assert(lb <= ub); + + if(v < lb || v > ub || per__imax_range(lb, ub, &range) < 0) { + /* Range error. */ + return -1; + } + + /* + * Fundamentally what we're doing is returning (v-lb). + * However, this triggers undefined behavior when the word width + * of signed (v) is the same as the size of unsigned (*output). + * In practice, it triggers the UndefinedSanitizer. Therefore we shall + * compute the ranges accurately to avoid C's undefined behavior. + */ + if((v < 0) == (lb < 0)) { + *output = v-lb; + return 0; + } else if(v < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(v+1) + (uintmax_t)lb; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else if(lb < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(lb+1) + (uintmax_t)v; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else { + assert(!"Unreachable"); + return -1; + } +} + +int +per_long_range_rebase(long v, intmax_t lb, intmax_t ub, unsigned long *output) { + uintmax_t tmp = *output; + int rc = per_imax_range_rebase((intmax_t)v, lb, ub, &tmp); + *output = tmp; + return rc; +} + +int +per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp) { + uintmax_t range; + + if(per__imax_range(lb, ub, &range) != 0) { + return -1; + } + + if(inp > range) { + /* + * We can encode something in the given number of bits that technically + * exceeds the range. This is an avenue for security errors, + * so we don't allow that. + */ + return -1; + } + + if(inp <= INTMAX_MAX) { + *outp = (intmax_t)inp + lb; + } else { + *outp = (lb + INTMAX_MAX + 1) + (intmax_t)((inp - INTMAX_MAX) - 1); + } + + return 0; +} + +int +per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp) { + intmax_t tmp = *outp; + int rc = per_imax_range_unrebase((uintmax_t)inp, lb, ub, &tmp); + *outp = tmp; + return rc; +} diff --git a/etsi_its_coding/etsi_its_coding/package.xml b/etsi_its_coding/etsi_its_coding/package.xml index d5ab6b8d6..7921fef0c 100644 --- a/etsi_its_coding/etsi_its_coding/package.xml +++ b/etsi_its_coding/etsi_its_coding/package.xml @@ -16,6 +16,7 @@ MIT etsi_its_cam_coding + etsi_its_cam_ts_coding etsi_its_denm_coding etsi_its_cpm_ts_coding ros_environment diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/CMakeLists.txt b/etsi_its_conversion/etsi_its_cam_ts_conversion/CMakeLists.txt new file mode 100644 index 000000000..ec303f819 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/CMakeLists.txt @@ -0,0 +1,80 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_cam_ts_conversion) + +find_package(ros_environment REQUIRED QUIET) +set(ROS_VERSION $ENV{ROS_VERSION}) + +# === ROS 2 (AMENT) ============================================================ +if(${ROS_VERSION} EQUAL 2) + + add_compile_definitions(ROS2) + + find_package(ament_cmake REQUIRED) + find_package(etsi_its_cam_ts_coding REQUIRED) + find_package(etsi_its_cam_ts_msgs REQUIRED) + find_package(etsi_its_primitives_conversion REQUIRED) + + add_library(${PROJECT_NAME} INTERFACE) + + target_include_directories(${PROJECT_NAME} INTERFACE + $ + $ + ) + + target_link_libraries(${PROJECT_NAME} INTERFACE + ${etsi_its_cam_ts_coding_TARGETS} + ${etsi_its_cam_ts_msgs_TARGETS} + ${etsi_its_primitives_conversion_TARGETS} + ) + + ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) + ament_export_dependencies( + etsi_its_cam_ts_coding + etsi_its_cam_ts_msgs + etsi_its_primitives_conversion + ) + + install(DIRECTORY include/ + DESTINATION include/${PROJECT_NAME} + ) + + install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION lib + INCLUDES DESTINATION include + ) + + ament_package() + +# === ROS (CATKIN) ============================================================= +elseif(${ROS_VERSION} EQUAL 1) + + add_compile_definitions(ROS1) + + find_package(catkin REQUIRED COMPONENTS + etsi_its_cam_ts_coding + etsi_its_cam_ts_msgs + etsi_its_primitives_conversion + ) + + catkin_package( + INCLUDE_DIRS include + CATKIN_DEPENDS etsi_its_cam_ts_coding etsi_its_cam_ts_msgs etsi_its_primitives_conversion + ) + + include_directories( + include + ${catkin_INCLUDE_DIRS} + ) + + install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + ) + + install(FILES + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + ) + +endif() diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAcceleration3dWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAcceleration3dWithConfidence.h new file mode 100644 index 000000000..957d489ac --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAcceleration3dWithConfidence.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Acceleration3dWithConfidence(const cam_ts_Acceleration3dWithConfidence_t& in, cam_ts_msgs::Acceleration3dWithConfidence& out) { + switch (in.present) { + case cam_ts_Acceleration3dWithConfidence_PR_polarAcceleration: + toRos_AccelerationPolarWithZ(in.choice.polarAcceleration, out.polar_acceleration); + out.choice = cam_ts_msgs::Acceleration3dWithConfidence::CHOICE_POLAR_ACCELERATION; + break; + case cam_ts_Acceleration3dWithConfidence_PR_cartesianAcceleration: + toRos_AccelerationCartesian(in.choice.cartesianAcceleration, out.cartesian_acceleration); + out.choice = cam_ts_msgs::Acceleration3dWithConfidence::CHOICE_CARTESIAN_ACCELERATION; + break; + default: break; + } +} + +void toStruct_Acceleration3dWithConfidence(const cam_ts_msgs::Acceleration3dWithConfidence& in, cam_ts_Acceleration3dWithConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_Acceleration3dWithConfidence_t)); + + switch (in.choice) { + case cam_ts_msgs::Acceleration3dWithConfidence::CHOICE_POLAR_ACCELERATION: + toStruct_AccelerationPolarWithZ(in.polar_acceleration, out.choice.polarAcceleration); + out.present = cam_ts_Acceleration3dWithConfidence_PR::cam_ts_Acceleration3dWithConfidence_PR_polarAcceleration; + break; + case cam_ts_msgs::Acceleration3dWithConfidence::CHOICE_CARTESIAN_ACCELERATION: + toStruct_AccelerationCartesian(in.cartesian_acceleration, out.choice.cartesianAcceleration); + out.present = cam_ts_Acceleration3dWithConfidence_PR::cam_ts_Acceleration3dWithConfidence_PR_cartesianAcceleration; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationCartesian.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationCartesian.h new file mode 100644 index 000000000..bace7ca3d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationCartesian.h @@ -0,0 +1,63 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationCartesian(const cam_ts_AccelerationCartesian_t& in, cam_ts_msgs::AccelerationCartesian& out) { + toRos_AccelerationComponent(in.xAcceleration, out.x_acceleration); + toRos_AccelerationComponent(in.yAcceleration, out.y_acceleration); + if (in.zAcceleration) { + toRos_AccelerationComponent(*in.zAcceleration, out.z_acceleration); + out.z_acceleration_is_present = true; + } +} + +void toStruct_AccelerationCartesian(const cam_ts_msgs::AccelerationCartesian& in, cam_ts_AccelerationCartesian_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationCartesian_t)); + + toStruct_AccelerationComponent(in.x_acceleration, out.xAcceleration); + toStruct_AccelerationComponent(in.y_acceleration, out.yAcceleration); + if (in.z_acceleration_is_present) { + out.zAcceleration = (cam_ts_AccelerationComponent_t*) calloc(1, sizeof(cam_ts_AccelerationComponent_t)); + toStruct_AccelerationComponent(in.z_acceleration, *out.zAcceleration); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationChange.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationChange.h new file mode 100644 index 000000000..fab58d30d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationChange.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationChange(const cam_ts_AccelerationChange_t& in, cam_ts_msgs::AccelerationChange& out) { + out.value = in; +} + +void toStruct_AccelerationChange(const cam_ts_msgs::AccelerationChange& in, cam_ts_AccelerationChange_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationChange_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationChangeIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationChangeIndication.h new file mode 100644 index 000000000..9616b46c7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationChangeIndication.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationChangeIndication(const cam_ts_AccelerationChangeIndication_t& in, cam_ts_msgs::AccelerationChangeIndication& out) { + toRos_AccelerationChange(in.accelOrDecel, out.accel_or_decel); + toRos_DeltaTimeTenthOfSecond(in.actionDeltaTime, out.action_delta_time); +} + +void toStruct_AccelerationChangeIndication(const cam_ts_msgs::AccelerationChangeIndication& in, cam_ts_AccelerationChangeIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationChangeIndication_t)); + + toStruct_AccelerationChange(in.accel_or_decel, out.accelOrDecel); + toStruct_DeltaTimeTenthOfSecond(in.action_delta_time, out.actionDeltaTime); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationComponent.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationComponent.h new file mode 100644 index 000000000..2faef20bc --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationComponent.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationComponent(const cam_ts_AccelerationComponent_t& in, cam_ts_msgs::AccelerationComponent& out) { + toRos_AccelerationValue(in.value, out.value); + toRos_AccelerationConfidence(in.confidence, out.confidence); +} + +void toStruct_AccelerationComponent(const cam_ts_msgs::AccelerationComponent& in, cam_ts_AccelerationComponent_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationComponent_t)); + + toStruct_AccelerationValue(in.value, out.value); + toStruct_AccelerationConfidence(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationConfidence.h new file mode 100644 index 000000000..14b0f144a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationConfidence(const cam_ts_AccelerationConfidence_t& in, cam_ts_msgs::AccelerationConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AccelerationConfidence(const cam_ts_msgs::AccelerationConfidence& in, cam_ts_AccelerationConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationControl.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationControl.h new file mode 100644 index 000000000..dee7ad454 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationControl.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationControl(const cam_ts_AccelerationControl_t& in, cam_ts_msgs::AccelerationControl& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_AccelerationControl(const cam_ts_msgs::AccelerationControl& in, cam_ts_AccelerationControl_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationControl_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationMagnitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationMagnitude.h new file mode 100644 index 000000000..970f7a4a4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationMagnitude.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationMagnitude(const cam_ts_AccelerationMagnitude_t& in, cam_ts_msgs::AccelerationMagnitude& out) { + toRos_AccelerationMagnitudeValue(in.accelerationMagnitudeValue, out.acceleration_magnitude_value); + toRos_AccelerationConfidence(in.accelerationConfidence, out.acceleration_confidence); +} + +void toStruct_AccelerationMagnitude(const cam_ts_msgs::AccelerationMagnitude& in, cam_ts_AccelerationMagnitude_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationMagnitude_t)); + + toStruct_AccelerationMagnitudeValue(in.acceleration_magnitude_value, out.accelerationMagnitudeValue); + toStruct_AccelerationConfidence(in.acceleration_confidence, out.accelerationConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationMagnitudeValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationMagnitudeValue.h new file mode 100644 index 000000000..5050de4a0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationMagnitudeValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationMagnitudeValue(const cam_ts_AccelerationMagnitudeValue_t& in, cam_ts_msgs::AccelerationMagnitudeValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AccelerationMagnitudeValue(const cam_ts_msgs::AccelerationMagnitudeValue& in, cam_ts_AccelerationMagnitudeValue_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationMagnitudeValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationPolarWithZ.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationPolarWithZ.h new file mode 100644 index 000000000..e92b9f3b5 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationPolarWithZ.h @@ -0,0 +1,65 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationPolarWithZ(const cam_ts_AccelerationPolarWithZ_t& in, cam_ts_msgs::AccelerationPolarWithZ& out) { + toRos_AccelerationMagnitude(in.accelerationMagnitude, out.acceleration_magnitude); + toRos_CartesianAngle(in.accelerationDirection, out.acceleration_direction); + if (in.zAcceleration) { + toRos_AccelerationComponent(*in.zAcceleration, out.z_acceleration); + out.z_acceleration_is_present = true; + } +} + +void toStruct_AccelerationPolarWithZ(const cam_ts_msgs::AccelerationPolarWithZ& in, cam_ts_AccelerationPolarWithZ_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationPolarWithZ_t)); + + toStruct_AccelerationMagnitude(in.acceleration_magnitude, out.accelerationMagnitude); + toStruct_CartesianAngle(in.acceleration_direction, out.accelerationDirection); + if (in.z_acceleration_is_present) { + out.zAcceleration = (cam_ts_AccelerationComponent_t*) calloc(1, sizeof(cam_ts_AccelerationComponent_t)); + toStruct_AccelerationComponent(in.z_acceleration, *out.zAcceleration); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationValue.h new file mode 100644 index 000000000..eee4f7e13 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccelerationValue(const cam_ts_AccelerationValue_t& in, cam_ts_msgs::AccelerationValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AccelerationValue(const cam_ts_msgs::AccelerationValue& in, cam_ts_AccelerationValue_t& out) { + memset(&out, 0, sizeof(cam_ts_AccelerationValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccessTechnologyClass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccessTechnologyClass.h new file mode 100644 index 000000000..a9eb4f5b4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccessTechnologyClass.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccessTechnologyClass(const cam_ts_AccessTechnologyClass_t& in, cam_ts_msgs::AccessTechnologyClass& out) { + out.value = in; +} + +void toStruct_AccessTechnologyClass(const cam_ts_msgs::AccessTechnologyClass& in, cam_ts_AccessTechnologyClass_t& out) { + memset(&out, 0, sizeof(cam_ts_AccessTechnologyClass_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccidentSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccidentSubCauseCode.h new file mode 100644 index 000000000..906fb9de3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccidentSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AccidentSubCauseCode(const cam_ts_AccidentSubCauseCode_t& in, cam_ts_msgs::AccidentSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AccidentSubCauseCode(const cam_ts_msgs::AccidentSubCauseCode& in, cam_ts_AccidentSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_AccidentSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertActionId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertActionId.h new file mode 100644 index 000000000..8e9bf59fe --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertActionId.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ActionId(const cam_ts_ActionId_t& in, cam_ts_msgs::ActionId& out) { + toRos_StationId(in.originatingStationId, out.originating_station_id); + toRos_SequenceNumber(in.sequenceNumber, out.sequence_number); +} + +void toStruct_ActionId(const cam_ts_msgs::ActionId& in, cam_ts_ActionId_t& out) { + memset(&out, 0, sizeof(cam_ts_ActionId_t)); + + toStruct_StationId(in.originating_station_id, out.originatingStationId); + toStruct_SequenceNumber(in.sequence_number, out.sequenceNumber); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertActionIdList.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertActionIdList.h new file mode 100644 index 000000000..b34798271 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertActionIdList.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ActionIdList(const cam_ts_ActionIdList_t& in, cam_ts_msgs::ActionIdList& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::ActionId el; + toRos_ActionId(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_ActionIdList(const cam_ts_msgs::ActionIdList& in, cam_ts_ActionIdList_t& out) { + memset(&out, 0, sizeof(cam_ts_ActionIdList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_ActionId_t* el = (cam_ts_ActionId_t*) calloc(1, sizeof(cam_ts_ActionId_t)); + toStruct_ActionId(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionAdhesionSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionAdhesionSubCauseCode.h new file mode 100644 index 000000000..81923d8e3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionAdhesionSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AdverseWeatherConditionAdhesionSubCauseCode(const cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_t& in, cam_ts_msgs::AdverseWeatherConditionAdhesionSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AdverseWeatherConditionAdhesionSubCauseCode(const cam_ts_msgs::AdverseWeatherConditionAdhesionSubCauseCode& in, cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_AdverseWeatherCondition_AdhesionSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionExtremeWeatherConditionSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 000000000..c5153ed26 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AdverseWeatherConditionExtremeWeatherConditionSubCauseCode(const cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t& in, cam_ts_msgs::AdverseWeatherConditionExtremeWeatherConditionSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AdverseWeatherConditionExtremeWeatherConditionSubCauseCode(const cam_ts_msgs::AdverseWeatherConditionExtremeWeatherConditionSubCauseCode& in, cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionPrecipitationSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionPrecipitationSubCauseCode.h new file mode 100644 index 000000000..3f5e6b093 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionPrecipitationSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AdverseWeatherConditionPrecipitationSubCauseCode(const cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_t& in, cam_ts_msgs::AdverseWeatherConditionPrecipitationSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AdverseWeatherConditionPrecipitationSubCauseCode(const cam_ts_msgs::AdverseWeatherConditionPrecipitationSubCauseCode& in, cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionVisibilitySubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionVisibilitySubCauseCode.h new file mode 100644 index 000000000..a6592406c --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionVisibilitySubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AdverseWeatherConditionVisibilitySubCauseCode(const cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_t& in, cam_ts_msgs::AdverseWeatherConditionVisibilitySubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AdverseWeatherConditionVisibilitySubCauseCode(const cam_ts_msgs::AdverseWeatherConditionVisibilitySubCauseCode& in, cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_AdverseWeatherCondition_VisibilitySubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAirHumidity.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAirHumidity.h new file mode 100644 index 000000000..342e6dddc --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAirHumidity.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AirHumidity(const cam_ts_AirHumidity_t& in, cam_ts_msgs::AirHumidity& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AirHumidity(const cam_ts_msgs::AirHumidity& in, cam_ts_AirHumidity_t& out) { + memset(&out, 0, sizeof(cam_ts_AirHumidity_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitude.h new file mode 100644 index 000000000..1fc6b3bf7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitude.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Altitude(const cam_ts_Altitude_t& in, cam_ts_msgs::Altitude& out) { + toRos_AltitudeValue(in.altitudeValue, out.altitude_value); + toRos_AltitudeConfidence(in.altitudeConfidence, out.altitude_confidence); +} + +void toStruct_Altitude(const cam_ts_msgs::Altitude& in, cam_ts_Altitude_t& out) { + memset(&out, 0, sizeof(cam_ts_Altitude_t)); + + toStruct_AltitudeValue(in.altitude_value, out.altitudeValue); + toStruct_AltitudeConfidence(in.altitude_confidence, out.altitudeConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeConfidence.h new file mode 100644 index 000000000..76c6b513e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeConfidence.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AltitudeConfidence(const cam_ts_AltitudeConfidence_t& in, cam_ts_msgs::AltitudeConfidence& out) { + out.value = in; +} + +void toStruct_AltitudeConfidence(const cam_ts_msgs::AltitudeConfidence& in, cam_ts_AltitudeConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_AltitudeConfidence_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeValue.h new file mode 100644 index 000000000..fcd4f28bc --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AltitudeValue(const cam_ts_AltitudeValue_t& in, cam_ts_msgs::AltitudeValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AltitudeValue(const cam_ts_msgs::AltitudeValue& in, cam_ts_AltitudeValue_t& out) { + memset(&out, 0, sizeof(cam_ts_AltitudeValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngleConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngleConfidence.h new file mode 100644 index 000000000..2ac5aff3d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngleConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AngleConfidence(const cam_ts_AngleConfidence_t& in, cam_ts_msgs::AngleConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AngleConfidence(const cam_ts_msgs::AngleConfidence& in, cam_ts_AngleConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_AngleConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngularAccelerationConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngularAccelerationConfidence.h new file mode 100644 index 000000000..2046327bd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngularAccelerationConfidence.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AngularAccelerationConfidence(const cam_ts_AngularAccelerationConfidence_t& in, cam_ts_msgs::AngularAccelerationConfidence& out) { + out.value = in; +} + +void toStruct_AngularAccelerationConfidence(const cam_ts_msgs::AngularAccelerationConfidence& in, cam_ts_AngularAccelerationConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_AngularAccelerationConfidence_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngularSpeedConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngularSpeedConfidence.h new file mode 100644 index 000000000..1775ec59b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAngularSpeedConfidence.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AngularSpeedConfidence(const cam_ts_AngularSpeedConfidence_t& in, cam_ts_msgs::AngularSpeedConfidence& out) { + out.value = in; +} + +void toStruct_AngularSpeedConfidence(const cam_ts_msgs::AngularSpeedConfidence& in, cam_ts_AngularSpeedConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_AngularSpeedConfidence_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAxlesCount.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAxlesCount.h new file mode 100644 index 000000000..9b3a4a9e6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAxlesCount.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_AxlesCount(const cam_ts_AxlesCount_t& in, cam_ts_msgs::AxlesCount& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_AxlesCount(const cam_ts_msgs::AxlesCount& in, cam_ts_AxlesCount_t& out) { + memset(&out, 0, sizeof(cam_ts_AxlesCount_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBarometricPressure.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBarometricPressure.h new file mode 100644 index 000000000..00a49e876 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBarometricPressure.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_BarometricPressure(const cam_ts_BarometricPressure_t& in, cam_ts_msgs::BarometricPressure& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_BarometricPressure(const cam_ts_msgs::BarometricPressure& in, cam_ts_BarometricPressure_t& out) { + memset(&out, 0, sizeof(cam_ts_BarometricPressure_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicContainer.h new file mode 100644 index 000000000..dc683fff4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicContainer.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_BasicContainer(const cam_ts_BasicContainer_t& in, cam_ts_msgs::BasicContainer& out) { + toRos_TrafficParticipantType(in.stationType, out.station_type); + toRos_ReferencePositionWithConfidence(in.referencePosition, out.reference_position); +} + +void toStruct_BasicContainer(const cam_ts_msgs::BasicContainer& in, cam_ts_BasicContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_BasicContainer_t)); + + toStruct_TrafficParticipantType(in.station_type, out.stationType); + toStruct_ReferencePositionWithConfidence(in.reference_position, out.referencePosition); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicLaneConfiguration.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicLaneConfiguration.h new file mode 100644 index 000000000..4feb3f1ab --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicLaneConfiguration.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_BasicLaneConfiguration(const cam_ts_BasicLaneConfiguration_t& in, cam_ts_msgs::BasicLaneConfiguration& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::BasicLaneInformation el; + toRos_BasicLaneInformation(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_BasicLaneConfiguration(const cam_ts_msgs::BasicLaneConfiguration& in, cam_ts_BasicLaneConfiguration_t& out) { + memset(&out, 0, sizeof(cam_ts_BasicLaneConfiguration_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_BasicLaneInformation_t* el = (cam_ts_BasicLaneInformation_t*) calloc(1, sizeof(cam_ts_BasicLaneInformation_t)); + toStruct_BasicLaneInformation(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicLaneInformation.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicLaneInformation.h new file mode 100644 index 000000000..8ee5045ed --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicLaneInformation.h @@ -0,0 +1,82 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_BasicLaneInformation(const cam_ts_BasicLaneInformation_t& in, cam_ts_msgs::BasicLaneInformation& out) { + toRos_LanePosition(in.laneNumber, out.lane_number); + toRos_Direction(in.direction, out.direction); + if (in.laneWidth) { + toRos_LaneWidth(*in.laneWidth, out.lane_width); + out.lane_width_is_present = true; + } + if (in.connectingLane) { + toRos_LanePosition(*in.connectingLane, out.connecting_lane); + out.connecting_lane_is_present = true; + } + if (in.connectingRoadSection) { + toRos_RoadSectionId(*in.connectingRoadSection, out.connecting_road_section); + out.connecting_road_section_is_present = true; + } +} + +void toStruct_BasicLaneInformation(const cam_ts_msgs::BasicLaneInformation& in, cam_ts_BasicLaneInformation_t& out) { + memset(&out, 0, sizeof(cam_ts_BasicLaneInformation_t)); + + toStruct_LanePosition(in.lane_number, out.laneNumber); + toStruct_Direction(in.direction, out.direction); + if (in.lane_width_is_present) { + out.laneWidth = (cam_ts_LaneWidth_t*) calloc(1, sizeof(cam_ts_LaneWidth_t)); + toStruct_LaneWidth(in.lane_width, *out.laneWidth); + } + if (in.connecting_lane_is_present) { + out.connectingLane = (cam_ts_LanePosition_t*) calloc(1, sizeof(cam_ts_LanePosition_t)); + toStruct_LanePosition(in.connecting_lane, *out.connectingLane); + } + if (in.connecting_road_section_is_present) { + out.connectingRoadSection = (cam_ts_RoadSectionId_t*) calloc(1, sizeof(cam_ts_RoadSectionId_t)); + toStruct_RoadSectionId(in.connecting_road_section, *out.connectingRoadSection); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerHighFrequency.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerHighFrequency.h new file mode 100644 index 000000000..bcd782fcf --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerHighFrequency.h @@ -0,0 +1,138 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_BasicVehicleContainerHighFrequency(const cam_ts_BasicVehicleContainerHighFrequency_t& in, cam_ts_msgs::BasicVehicleContainerHighFrequency& out) { + toRos_Heading(in.heading, out.heading); + toRos_Speed(in.speed, out.speed); + toRos_DriveDirection(in.driveDirection, out.drive_direction); + toRos_VehicleLength(in.vehicleLength, out.vehicle_length); + toRos_VehicleWidth(in.vehicleWidth, out.vehicle_width); + toRos_AccelerationComponent(in.longitudinalAcceleration, out.longitudinal_acceleration); + toRos_Curvature(in.curvature, out.curvature); + toRos_CurvatureCalculationMode(in.curvatureCalculationMode, out.curvature_calculation_mode); + toRos_YawRate(in.yawRate, out.yaw_rate); + if (in.accelerationControl) { + toRos_AccelerationControl(*in.accelerationControl, out.acceleration_control); + out.acceleration_control_is_present = true; + } + if (in.lanePosition) { + toRos_LanePosition(*in.lanePosition, out.lane_position); + out.lane_position_is_present = true; + } + if (in.steeringWheelAngle) { + toRos_SteeringWheelAngle(*in.steeringWheelAngle, out.steering_wheel_angle); + out.steering_wheel_angle_is_present = true; + } + if (in.lateralAcceleration) { + toRos_AccelerationComponent(*in.lateralAcceleration, out.lateral_acceleration); + out.lateral_acceleration_is_present = true; + } + if (in.verticalAcceleration) { + toRos_AccelerationComponent(*in.verticalAcceleration, out.vertical_acceleration); + out.vertical_acceleration_is_present = true; + } + if (in.performanceClass) { + toRos_PerformanceClass(*in.performanceClass, out.performance_class); + out.performance_class_is_present = true; + } + if (in.cenDsrcTollingZone) { + toRos_CenDsrcTollingZone(*in.cenDsrcTollingZone, out.cen_dsrc_tolling_zone); + out.cen_dsrc_tolling_zone_is_present = true; + } +} + +void toStruct_BasicVehicleContainerHighFrequency(const cam_ts_msgs::BasicVehicleContainerHighFrequency& in, cam_ts_BasicVehicleContainerHighFrequency_t& out) { + memset(&out, 0, sizeof(cam_ts_BasicVehicleContainerHighFrequency_t)); + + toStruct_Heading(in.heading, out.heading); + toStruct_Speed(in.speed, out.speed); + toStruct_DriveDirection(in.drive_direction, out.driveDirection); + toStruct_VehicleLength(in.vehicle_length, out.vehicleLength); + toStruct_VehicleWidth(in.vehicle_width, out.vehicleWidth); + toStruct_AccelerationComponent(in.longitudinal_acceleration, out.longitudinalAcceleration); + toStruct_Curvature(in.curvature, out.curvature); + toStruct_CurvatureCalculationMode(in.curvature_calculation_mode, out.curvatureCalculationMode); + toStruct_YawRate(in.yaw_rate, out.yawRate); + if (in.acceleration_control_is_present) { + out.accelerationControl = (cam_ts_AccelerationControl_t*) calloc(1, sizeof(cam_ts_AccelerationControl_t)); + toStruct_AccelerationControl(in.acceleration_control, *out.accelerationControl); + } + if (in.lane_position_is_present) { + out.lanePosition = (cam_ts_LanePosition_t*) calloc(1, sizeof(cam_ts_LanePosition_t)); + toStruct_LanePosition(in.lane_position, *out.lanePosition); + } + if (in.steering_wheel_angle_is_present) { + out.steeringWheelAngle = (cam_ts_SteeringWheelAngle_t*) calloc(1, sizeof(cam_ts_SteeringWheelAngle_t)); + toStruct_SteeringWheelAngle(in.steering_wheel_angle, *out.steeringWheelAngle); + } + if (in.lateral_acceleration_is_present) { + out.lateralAcceleration = (cam_ts_AccelerationComponent_t*) calloc(1, sizeof(cam_ts_AccelerationComponent_t)); + toStruct_AccelerationComponent(in.lateral_acceleration, *out.lateralAcceleration); + } + if (in.vertical_acceleration_is_present) { + out.verticalAcceleration = (cam_ts_AccelerationComponent_t*) calloc(1, sizeof(cam_ts_AccelerationComponent_t)); + toStruct_AccelerationComponent(in.vertical_acceleration, *out.verticalAcceleration); + } + if (in.performance_class_is_present) { + out.performanceClass = (cam_ts_PerformanceClass_t*) calloc(1, sizeof(cam_ts_PerformanceClass_t)); + toStruct_PerformanceClass(in.performance_class, *out.performanceClass); + } + if (in.cen_dsrc_tolling_zone_is_present) { + out.cenDsrcTollingZone = (cam_ts_CenDsrcTollingZone_t*) calloc(1, sizeof(cam_ts_CenDsrcTollingZone_t)); + toStruct_CenDsrcTollingZone(in.cen_dsrc_tolling_zone, *out.cenDsrcTollingZone); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerLowFrequency.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerLowFrequency.h new file mode 100644 index 000000000..fd5bc0e98 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerLowFrequency.h @@ -0,0 +1,59 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_BasicVehicleContainerLowFrequency(const cam_ts_BasicVehicleContainerLowFrequency_t& in, cam_ts_msgs::BasicVehicleContainerLowFrequency& out) { + toRos_VehicleRole(in.vehicleRole, out.vehicle_role); + toRos_ExteriorLights(in.exteriorLights, out.exterior_lights); + toRos_Path(in.pathHistory, out.path_history); +} + +void toStruct_BasicVehicleContainerLowFrequency(const cam_ts_msgs::BasicVehicleContainerLowFrequency& in, cam_ts_BasicVehicleContainerLowFrequency_t& out) { + memset(&out, 0, sizeof(cam_ts_BasicVehicleContainerLowFrequency_t)); + + toStruct_VehicleRole(in.vehicle_role, out.vehicleRole); + toStruct_ExteriorLights(in.exterior_lights, out.exteriorLights); + toStruct_Path(in.path_history, out.pathHistory); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBogiesCount.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBogiesCount.h new file mode 100644 index 000000000..8f05d47db --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBogiesCount.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_BogiesCount(const cam_ts_BogiesCount_t& in, cam_ts_msgs::BogiesCount& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_BogiesCount(const cam_ts_msgs::BogiesCount& in, cam_ts_BogiesCount_t& out) { + memset(&out, 0, sizeof(cam_ts_BogiesCount_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCAM.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCAM.h new file mode 100644 index 000000000..923c61028 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCAM.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CAM(const cam_ts_CAM_t& in, cam_ts_msgs::CAM& out) { + toRos_ItsPduHeader(in.header, out.header); + toRos_CamPayload(in.cam, out.cam); +} + +void toStruct_CAM(const cam_ts_msgs::CAM& in, cam_ts_CAM_t& out) { + memset(&out, 0, sizeof(cam_ts_CAM_t)); + + toStruct_ItsPduHeader(in.header, out.header); + toStruct_CamPayload(in.cam, out.cam); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamParameters.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamParameters.h new file mode 100644 index 000000000..0929060f5 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamParameters.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CamParameters(const cam_ts_CamParameters_t& in, cam_ts_msgs::CamParameters& out) { + toRos_BasicContainer(in.basicContainer, out.basic_container); + toRos_HighFrequencyContainer(in.highFrequencyContainer, out.high_frequency_container); + if (in.lowFrequencyContainer) { + toRos_LowFrequencyContainer(*in.lowFrequencyContainer, out.low_frequency_container); + out.low_frequency_container_is_present = true; + } + if (in.specialVehicleContainer) { + toRos_SpecialVehicleContainer(*in.specialVehicleContainer, out.special_vehicle_container); + out.special_vehicle_container_is_present = true; + } +} + +void toStruct_CamParameters(const cam_ts_msgs::CamParameters& in, cam_ts_CamParameters_t& out) { + memset(&out, 0, sizeof(cam_ts_CamParameters_t)); + + toStruct_BasicContainer(in.basic_container, out.basicContainer); + toStruct_HighFrequencyContainer(in.high_frequency_container, out.highFrequencyContainer); + if (in.low_frequency_container_is_present) { + out.lowFrequencyContainer = (cam_ts_LowFrequencyContainer_t*) calloc(1, sizeof(cam_ts_LowFrequencyContainer_t)); + toStruct_LowFrequencyContainer(in.low_frequency_container, *out.lowFrequencyContainer); + } + if (in.special_vehicle_container_is_present) { + out.specialVehicleContainer = (cam_ts_SpecialVehicleContainer_t*) calloc(1, sizeof(cam_ts_SpecialVehicleContainer_t)); + toStruct_SpecialVehicleContainer(in.special_vehicle_container, *out.specialVehicleContainer); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamPayload.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamPayload.h new file mode 100644 index 000000000..2c47fa400 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamPayload.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CamPayload(const cam_ts_CamPayload_t& in, cam_ts_msgs::CamPayload& out) { + toRos_GenerationDeltaTime(in.generationDeltaTime, out.generation_delta_time); + toRos_CamParameters(in.camParameters, out.cam_parameters); +} + +void toStruct_CamPayload(const cam_ts_msgs::CamPayload& in, cam_ts_CamPayload_t& out) { + memset(&out, 0, sizeof(cam_ts_CamPayload_t)); + + toStruct_GenerationDeltaTime(in.generation_delta_time, out.generationDeltaTime); + toStruct_CamParameters(in.cam_parameters, out.camParameters); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCardinalNumber1B.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCardinalNumber1B.h new file mode 100644 index 000000000..31f525f69 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCardinalNumber1B.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CardinalNumber1B(const cam_ts_CardinalNumber1B_t& in, cam_ts_msgs::CardinalNumber1B& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CardinalNumber1B(const cam_ts_msgs::CardinalNumber1B& in, cam_ts_CardinalNumber1B_t& out) { + memset(&out, 0, sizeof(cam_ts_CardinalNumber1B_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCardinalNumber3b.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCardinalNumber3b.h new file mode 100644 index 000000000..62d72df07 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCardinalNumber3b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CardinalNumber3b(const cam_ts_CardinalNumber3b_t& in, cam_ts_msgs::CardinalNumber3b& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CardinalNumber3b(const cam_ts_msgs::CardinalNumber3b& in, cam_ts_CardinalNumber3b_t& out) { + memset(&out, 0, sizeof(cam_ts_CardinalNumber3b_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngle.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngle.h new file mode 100644 index 000000000..fa705509d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngle.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianAngle(const cam_ts_CartesianAngle_t& in, cam_ts_msgs::CartesianAngle& out) { + toRos_CartesianAngleValue(in.value, out.value); + toRos_AngleConfidence(in.confidence, out.confidence); +} + +void toStruct_CartesianAngle(const cam_ts_msgs::CartesianAngle& in, cam_ts_CartesianAngle_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianAngle_t)); + + toStruct_CartesianAngleValue(in.value, out.value); + toStruct_AngleConfidence(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngleValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngleValue.h new file mode 100644 index 000000000..af50bb452 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngleValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianAngleValue(const cam_ts_CartesianAngleValue_t& in, cam_ts_msgs::CartesianAngleValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CartesianAngleValue(const cam_ts_msgs::CartesianAngleValue& in, cam_ts_CartesianAngleValue_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianAngleValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularAccelerationComponent.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularAccelerationComponent.h new file mode 100644 index 000000000..f450acbc2 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularAccelerationComponent.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianAngularAccelerationComponent(const cam_ts_CartesianAngularAccelerationComponent_t& in, cam_ts_msgs::CartesianAngularAccelerationComponent& out) { + toRos_CartesianAngularAccelerationComponentValue(in.value, out.value); + toRos_AngularAccelerationConfidence(in.confidence, out.confidence); +} + +void toStruct_CartesianAngularAccelerationComponent(const cam_ts_msgs::CartesianAngularAccelerationComponent& in, cam_ts_CartesianAngularAccelerationComponent_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianAngularAccelerationComponent_t)); + + toStruct_CartesianAngularAccelerationComponentValue(in.value, out.value); + toStruct_AngularAccelerationConfidence(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularAccelerationComponentValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularAccelerationComponentValue.h new file mode 100644 index 000000000..83d7cfba6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularAccelerationComponentValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianAngularAccelerationComponentValue(const cam_ts_CartesianAngularAccelerationComponentValue_t& in, cam_ts_msgs::CartesianAngularAccelerationComponentValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CartesianAngularAccelerationComponentValue(const cam_ts_msgs::CartesianAngularAccelerationComponentValue& in, cam_ts_CartesianAngularAccelerationComponentValue_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianAngularAccelerationComponentValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularVelocityComponent.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularVelocityComponent.h new file mode 100644 index 000000000..b31380ed9 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularVelocityComponent.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianAngularVelocityComponent(const cam_ts_CartesianAngularVelocityComponent_t& in, cam_ts_msgs::CartesianAngularVelocityComponent& out) { + toRos_CartesianAngularVelocityComponentValue(in.value, out.value); + toRos_AngularSpeedConfidence(in.confidence, out.confidence); +} + +void toStruct_CartesianAngularVelocityComponent(const cam_ts_msgs::CartesianAngularVelocityComponent& in, cam_ts_CartesianAngularVelocityComponent_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianAngularVelocityComponent_t)); + + toStruct_CartesianAngularVelocityComponentValue(in.value, out.value); + toStruct_AngularSpeedConfidence(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularVelocityComponentValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularVelocityComponentValue.h new file mode 100644 index 000000000..ffd298e53 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianAngularVelocityComponentValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianAngularVelocityComponentValue(const cam_ts_CartesianAngularVelocityComponentValue_t& in, cam_ts_msgs::CartesianAngularVelocityComponentValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CartesianAngularVelocityComponentValue(const cam_ts_msgs::CartesianAngularVelocityComponentValue& in, cam_ts_CartesianAngularVelocityComponentValue_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianAngularVelocityComponentValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinate.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinate.h new file mode 100644 index 000000000..57e60b2bf --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinate.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianCoordinate(const cam_ts_CartesianCoordinate_t& in, cam_ts_msgs::CartesianCoordinate& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CartesianCoordinate(const cam_ts_msgs::CartesianCoordinate& in, cam_ts_CartesianCoordinate_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianCoordinate_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateLarge.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateLarge.h new file mode 100644 index 000000000..06abad278 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateLarge.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianCoordinateLarge(const cam_ts_CartesianCoordinateLarge_t& in, cam_ts_msgs::CartesianCoordinateLarge& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CartesianCoordinateLarge(const cam_ts_msgs::CartesianCoordinateLarge& in, cam_ts_CartesianCoordinateLarge_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianCoordinateLarge_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateSmall.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateSmall.h new file mode 100644 index 000000000..13f6b711d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateSmall.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianCoordinateSmall(const cam_ts_CartesianCoordinateSmall_t& in, cam_ts_msgs::CartesianCoordinateSmall& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CartesianCoordinateSmall(const cam_ts_msgs::CartesianCoordinateSmall& in, cam_ts_CartesianCoordinateSmall_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianCoordinateSmall_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateWithConfidence.h new file mode 100644 index 000000000..0b482d404 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianCoordinateWithConfidence.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianCoordinateWithConfidence(const cam_ts_CartesianCoordinateWithConfidence_t& in, cam_ts_msgs::CartesianCoordinateWithConfidence& out) { + toRos_CartesianCoordinateLarge(in.value, out.value); + toRos_CoordinateConfidence(in.confidence, out.confidence); +} + +void toStruct_CartesianCoordinateWithConfidence(const cam_ts_msgs::CartesianCoordinateWithConfidence& in, cam_ts_CartesianCoordinateWithConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianCoordinateWithConfidence_t)); + + toStruct_CartesianCoordinateLarge(in.value, out.value); + toStruct_CoordinateConfidence(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianPosition3d.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianPosition3d.h new file mode 100644 index 000000000..2edf0deb3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianPosition3d.h @@ -0,0 +1,63 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianPosition3d(const cam_ts_CartesianPosition3d_t& in, cam_ts_msgs::CartesianPosition3d& out) { + toRos_CartesianCoordinate(in.xCoordinate, out.x_coordinate); + toRos_CartesianCoordinate(in.yCoordinate, out.y_coordinate); + if (in.zCoordinate) { + toRos_CartesianCoordinate(*in.zCoordinate, out.z_coordinate); + out.z_coordinate_is_present = true; + } +} + +void toStruct_CartesianPosition3d(const cam_ts_msgs::CartesianPosition3d& in, cam_ts_CartesianPosition3d_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianPosition3d_t)); + + toStruct_CartesianCoordinate(in.x_coordinate, out.xCoordinate); + toStruct_CartesianCoordinate(in.y_coordinate, out.yCoordinate); + if (in.z_coordinate_is_present) { + out.zCoordinate = (cam_ts_CartesianCoordinate_t*) calloc(1, sizeof(cam_ts_CartesianCoordinate_t)); + toStruct_CartesianCoordinate(in.z_coordinate, *out.zCoordinate); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianPosition3dWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianPosition3dWithConfidence.h new file mode 100644 index 000000000..e5e777565 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCartesianPosition3dWithConfidence.h @@ -0,0 +1,63 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CartesianPosition3dWithConfidence(const cam_ts_CartesianPosition3dWithConfidence_t& in, cam_ts_msgs::CartesianPosition3dWithConfidence& out) { + toRos_CartesianCoordinateWithConfidence(in.xCoordinate, out.x_coordinate); + toRos_CartesianCoordinateWithConfidence(in.yCoordinate, out.y_coordinate); + if (in.zCoordinate) { + toRos_CartesianCoordinateWithConfidence(*in.zCoordinate, out.z_coordinate); + out.z_coordinate_is_present = true; + } +} + +void toStruct_CartesianPosition3dWithConfidence(const cam_ts_msgs::CartesianPosition3dWithConfidence& in, cam_ts_CartesianPosition3dWithConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_CartesianPosition3dWithConfidence_t)); + + toStruct_CartesianCoordinateWithConfidence(in.x_coordinate, out.xCoordinate); + toStruct_CartesianCoordinateWithConfidence(in.y_coordinate, out.yCoordinate); + if (in.z_coordinate_is_present) { + out.zCoordinate = (cam_ts_CartesianCoordinateWithConfidence_t*) calloc(1, sizeof(cam_ts_CartesianCoordinateWithConfidence_t)); + toStruct_CartesianCoordinateWithConfidence(in.z_coordinate, *out.zCoordinate); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCode.h new file mode 100644 index 000000000..a89434c65 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCode.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CauseCode(const cam_ts_CauseCode_t& in, cam_ts_msgs::CauseCode& out) { + toRos_CauseCodeType(in.causeCode, out.cause_code); + toRos_SubCauseCodeType(in.subCauseCode, out.sub_cause_code); +} + +void toStruct_CauseCode(const cam_ts_msgs::CauseCode& in, cam_ts_CauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_CauseCode_t)); + + toStruct_CauseCodeType(in.cause_code, out.causeCode); + toStruct_SubCauseCodeType(in.sub_cause_code, out.subCauseCode); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeChoice.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeChoice.h new file mode 100644 index 000000000..136c503a4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeChoice.h @@ -0,0 +1,1115 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CauseCodeChoice(const cam_ts_CauseCodeChoice_t& in, cam_ts_msgs::CauseCodeChoice& out) { + switch (in.present) { + case cam_ts_CauseCodeChoice_PR_reserved0: + toRos_SubCauseCodeType(in.choice.reserved0, out.reserved0); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED0; + break; + case cam_ts_CauseCodeChoice_PR_trafficCondition1: + toRos_TrafficConditionSubCauseCode(in.choice.trafficCondition1, out.traffic_condition1); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_TRAFFIC_CONDITION1; + break; + case cam_ts_CauseCodeChoice_PR_accident2: + toRos_AccidentSubCauseCode(in.choice.accident2, out.accident2); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_ACCIDENT2; + break; + case cam_ts_CauseCodeChoice_PR_roadworks3: + toRos_RoadworksSubCauseCode(in.choice.roadworks3, out.roadworks3); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_ROADWORKS3; + break; + case cam_ts_CauseCodeChoice_PR_reserved4: + toRos_SubCauseCodeType(in.choice.reserved4, out.reserved4); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED4; + break; + case cam_ts_CauseCodeChoice_PR_impassability5: + toRos_ImpassabilitySubCauseCode(in.choice.impassability5, out.impassability5); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_IMPASSABILITY5; + break; + case cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Adhesion6: + toRos_AdverseWeatherConditionAdhesionSubCauseCode(in.choice.adverseWeatherCondition_Adhesion6, out.adverse_weather_condition_adhesion6); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_ADVERSE_WEATHER_CONDITION_ADHESION6; + break; + case cam_ts_CauseCodeChoice_PR_aquaplaning7: + toRos_SubCauseCodeType(in.choice.aquaplaning7, out.aquaplaning7); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_AQUAPLANING7; + break; + case cam_ts_CauseCodeChoice_PR_reserved8: + toRos_SubCauseCodeType(in.choice.reserved8, out.reserved8); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED8; + break; + case cam_ts_CauseCodeChoice_PR_hazardousLocation_SurfaceCondition9: + toRos_HazardousLocationSurfaceConditionSubCauseCode(in.choice.hazardousLocation_SurfaceCondition9, out.hazardous_location_surface_condition9); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_HAZARDOUS_LOCATION_SURFACE_CONDITION9; + break; + case cam_ts_CauseCodeChoice_PR_hazardousLocation_ObstacleOnTheRoad10: + toRos_HazardousLocationObstacleOnTheRoadSubCauseCode(in.choice.hazardousLocation_ObstacleOnTheRoad10, out.hazardous_location_obstacle_on_the_road10); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_HAZARDOUS_LOCATION_OBSTACLE_ON_THE_ROAD10; + break; + case cam_ts_CauseCodeChoice_PR_hazardousLocation_AnimalOnTheRoad11: + toRos_HazardousLocationAnimalOnTheRoadSubCauseCode(in.choice.hazardousLocation_AnimalOnTheRoad11, out.hazardous_location_animal_on_the_road11); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_HAZARDOUS_LOCATION_ANIMAL_ON_THE_ROAD11; + break; + case cam_ts_CauseCodeChoice_PR_humanPresenceOnTheRoad12: + toRos_HumanPresenceOnTheRoadSubCauseCode(in.choice.humanPresenceOnTheRoad12, out.human_presence_on_the_road12); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_HUMAN_PRESENCE_ON_THE_ROAD12; + break; + case cam_ts_CauseCodeChoice_PR_reserved13: + toRos_SubCauseCodeType(in.choice.reserved13, out.reserved13); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED13; + break; + case cam_ts_CauseCodeChoice_PR_wrongWayDriving14: + toRos_WrongWayDrivingSubCauseCode(in.choice.wrongWayDriving14, out.wrong_way_driving14); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_WRONG_WAY_DRIVING14; + break; + case cam_ts_CauseCodeChoice_PR_rescueAndRecoveryWorkInProgress15: + toRos_RescueAndRecoveryWorkInProgressSubCauseCode(in.choice.rescueAndRecoveryWorkInProgress15, out.rescue_and_recovery_work_in_progress15); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESCUE_AND_RECOVERY_WORK_IN_PROGRESS15; + break; + case cam_ts_CauseCodeChoice_PR_reserved16: + toRos_SubCauseCodeType(in.choice.reserved16, out.reserved16); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED16; + break; + case cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_ExtremeWeatherCondition17: + toRos_AdverseWeatherConditionExtremeWeatherConditionSubCauseCode(in.choice.adverseWeatherCondition_ExtremeWeatherCondition17, out.adverse_weather_condition_extreme_weather_condition17); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_ADVERSE_WEATHER_CONDITION_EXTREME_WEATHER_CONDITION17; + break; + case cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Visibility18: + toRos_AdverseWeatherConditionVisibilitySubCauseCode(in.choice.adverseWeatherCondition_Visibility18, out.adverse_weather_condition_visibility18); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_ADVERSE_WEATHER_CONDITION_VISIBILITY18; + break; + case cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Precipitation19: + toRos_AdverseWeatherConditionPrecipitationSubCauseCode(in.choice.adverseWeatherCondition_Precipitation19, out.adverse_weather_condition_precipitation19); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_ADVERSE_WEATHER_CONDITION_PRECIPITATION19; + break; + case cam_ts_CauseCodeChoice_PR_violence20: + toRos_SubCauseCodeType(in.choice.violence20, out.violence20); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_VIOLENCE20; + break; + case cam_ts_CauseCodeChoice_PR_reserved21: + toRos_SubCauseCodeType(in.choice.reserved21, out.reserved21); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED21; + break; + case cam_ts_CauseCodeChoice_PR_reserved22: + toRos_SubCauseCodeType(in.choice.reserved22, out.reserved22); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED22; + break; + case cam_ts_CauseCodeChoice_PR_reserved23: + toRos_SubCauseCodeType(in.choice.reserved23, out.reserved23); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED23; + break; + case cam_ts_CauseCodeChoice_PR_reserved24: + toRos_SubCauseCodeType(in.choice.reserved24, out.reserved24); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED24; + break; + case cam_ts_CauseCodeChoice_PR_reserved25: + toRos_SubCauseCodeType(in.choice.reserved25, out.reserved25); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED25; + break; + case cam_ts_CauseCodeChoice_PR_slowVehicle26: + toRos_SlowVehicleSubCauseCode(in.choice.slowVehicle26, out.slow_vehicle26); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_SLOW_VEHICLE26; + break; + case cam_ts_CauseCodeChoice_PR_dangerousEndOfQueue27: + toRos_DangerousEndOfQueueSubCauseCode(in.choice.dangerousEndOfQueue27, out.dangerous_end_of_queue27); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_DANGEROUS_END_OF_QUEUE27; + break; + case cam_ts_CauseCodeChoice_PR_publicTransportVehicleApproaching28: + toRos_SubCauseCodeType(in.choice.publicTransportVehicleApproaching28, out.public_transport_vehicle_approaching28); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_PUBLIC_TRANSPORT_VEHICLE_APPROACHING28; + break; + case cam_ts_CauseCodeChoice_PR_reserved29: + toRos_SubCauseCodeType(in.choice.reserved29, out.reserved29); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED29; + break; + case cam_ts_CauseCodeChoice_PR_reserved30: + toRos_SubCauseCodeType(in.choice.reserved30, out.reserved30); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED30; + break; + case cam_ts_CauseCodeChoice_PR_reserved31: + toRos_SubCauseCodeType(in.choice.reserved31, out.reserved31); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED31; + break; + case cam_ts_CauseCodeChoice_PR_reserved32: + toRos_SubCauseCodeType(in.choice.reserved32, out.reserved32); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED32; + break; + case cam_ts_CauseCodeChoice_PR_reserved33: + toRos_SubCauseCodeType(in.choice.reserved33, out.reserved33); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED33; + break; + case cam_ts_CauseCodeChoice_PR_reserved34: + toRos_SubCauseCodeType(in.choice.reserved34, out.reserved34); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED34; + break; + case cam_ts_CauseCodeChoice_PR_reserved35: + toRos_SubCauseCodeType(in.choice.reserved35, out.reserved35); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED35; + break; + case cam_ts_CauseCodeChoice_PR_reserved36: + toRos_SubCauseCodeType(in.choice.reserved36, out.reserved36); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED36; + break; + case cam_ts_CauseCodeChoice_PR_reserved37: + toRos_SubCauseCodeType(in.choice.reserved37, out.reserved37); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED37; + break; + case cam_ts_CauseCodeChoice_PR_reserved38: + toRos_SubCauseCodeType(in.choice.reserved38, out.reserved38); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED38; + break; + case cam_ts_CauseCodeChoice_PR_reserved39: + toRos_SubCauseCodeType(in.choice.reserved39, out.reserved39); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED39; + break; + case cam_ts_CauseCodeChoice_PR_reserved40: + toRos_SubCauseCodeType(in.choice.reserved40, out.reserved40); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED40; + break; + case cam_ts_CauseCodeChoice_PR_reserved41: + toRos_SubCauseCodeType(in.choice.reserved41, out.reserved41); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED41; + break; + case cam_ts_CauseCodeChoice_PR_reserved42: + toRos_SubCauseCodeType(in.choice.reserved42, out.reserved42); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED42; + break; + case cam_ts_CauseCodeChoice_PR_reserved43: + toRos_SubCauseCodeType(in.choice.reserved43, out.reserved43); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED43; + break; + case cam_ts_CauseCodeChoice_PR_reserved44: + toRos_SubCauseCodeType(in.choice.reserved44, out.reserved44); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED44; + break; + case cam_ts_CauseCodeChoice_PR_reserved45: + toRos_SubCauseCodeType(in.choice.reserved45, out.reserved45); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED45; + break; + case cam_ts_CauseCodeChoice_PR_reserved46: + toRos_SubCauseCodeType(in.choice.reserved46, out.reserved46); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED46; + break; + case cam_ts_CauseCodeChoice_PR_reserved47: + toRos_SubCauseCodeType(in.choice.reserved47, out.reserved47); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED47; + break; + case cam_ts_CauseCodeChoice_PR_reserved48: + toRos_SubCauseCodeType(in.choice.reserved48, out.reserved48); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED48; + break; + case cam_ts_CauseCodeChoice_PR_reserved49: + toRos_SubCauseCodeType(in.choice.reserved49, out.reserved49); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED49; + break; + case cam_ts_CauseCodeChoice_PR_reserved50: + toRos_SubCauseCodeType(in.choice.reserved50, out.reserved50); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED50; + break; + case cam_ts_CauseCodeChoice_PR_reserved51: + toRos_SubCauseCodeType(in.choice.reserved51, out.reserved51); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED51; + break; + case cam_ts_CauseCodeChoice_PR_reserved52: + toRos_SubCauseCodeType(in.choice.reserved52, out.reserved52); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED52; + break; + case cam_ts_CauseCodeChoice_PR_reserved53: + toRos_SubCauseCodeType(in.choice.reserved53, out.reserved53); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED53; + break; + case cam_ts_CauseCodeChoice_PR_reserved54: + toRos_SubCauseCodeType(in.choice.reserved54, out.reserved54); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED54; + break; + case cam_ts_CauseCodeChoice_PR_reserved55: + toRos_SubCauseCodeType(in.choice.reserved55, out.reserved55); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED55; + break; + case cam_ts_CauseCodeChoice_PR_reserved56: + toRos_SubCauseCodeType(in.choice.reserved56, out.reserved56); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED56; + break; + case cam_ts_CauseCodeChoice_PR_reserved57: + toRos_SubCauseCodeType(in.choice.reserved57, out.reserved57); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED57; + break; + case cam_ts_CauseCodeChoice_PR_reserved58: + toRos_SubCauseCodeType(in.choice.reserved58, out.reserved58); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED58; + break; + case cam_ts_CauseCodeChoice_PR_reserved59: + toRos_SubCauseCodeType(in.choice.reserved59, out.reserved59); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED59; + break; + case cam_ts_CauseCodeChoice_PR_reserved60: + toRos_SubCauseCodeType(in.choice.reserved60, out.reserved60); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED60; + break; + case cam_ts_CauseCodeChoice_PR_reserved61: + toRos_SubCauseCodeType(in.choice.reserved61, out.reserved61); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED61; + break; + case cam_ts_CauseCodeChoice_PR_reserved62: + toRos_SubCauseCodeType(in.choice.reserved62, out.reserved62); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED62; + break; + case cam_ts_CauseCodeChoice_PR_reserved63: + toRos_SubCauseCodeType(in.choice.reserved63, out.reserved63); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED63; + break; + case cam_ts_CauseCodeChoice_PR_reserved64: + toRos_SubCauseCodeType(in.choice.reserved64, out.reserved64); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED64; + break; + case cam_ts_CauseCodeChoice_PR_reserved65: + toRos_SubCauseCodeType(in.choice.reserved65, out.reserved65); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED65; + break; + case cam_ts_CauseCodeChoice_PR_reserved66: + toRos_SubCauseCodeType(in.choice.reserved66, out.reserved66); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED66; + break; + case cam_ts_CauseCodeChoice_PR_reserved67: + toRos_SubCauseCodeType(in.choice.reserved67, out.reserved67); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED67; + break; + case cam_ts_CauseCodeChoice_PR_reserved68: + toRos_SubCauseCodeType(in.choice.reserved68, out.reserved68); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED68; + break; + case cam_ts_CauseCodeChoice_PR_reserved69: + toRos_SubCauseCodeType(in.choice.reserved69, out.reserved69); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED69; + break; + case cam_ts_CauseCodeChoice_PR_reserved70: + toRos_SubCauseCodeType(in.choice.reserved70, out.reserved70); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED70; + break; + case cam_ts_CauseCodeChoice_PR_reserved71: + toRos_SubCauseCodeType(in.choice.reserved71, out.reserved71); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED71; + break; + case cam_ts_CauseCodeChoice_PR_reserved72: + toRos_SubCauseCodeType(in.choice.reserved72, out.reserved72); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED72; + break; + case cam_ts_CauseCodeChoice_PR_reserved73: + toRos_SubCauseCodeType(in.choice.reserved73, out.reserved73); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED73; + break; + case cam_ts_CauseCodeChoice_PR_reserved74: + toRos_SubCauseCodeType(in.choice.reserved74, out.reserved74); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED74; + break; + case cam_ts_CauseCodeChoice_PR_reserved75: + toRos_SubCauseCodeType(in.choice.reserved75, out.reserved75); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED75; + break; + case cam_ts_CauseCodeChoice_PR_reserved76: + toRos_SubCauseCodeType(in.choice.reserved76, out.reserved76); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED76; + break; + case cam_ts_CauseCodeChoice_PR_reserved77: + toRos_SubCauseCodeType(in.choice.reserved77, out.reserved77); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED77; + break; + case cam_ts_CauseCodeChoice_PR_reserved78: + toRos_SubCauseCodeType(in.choice.reserved78, out.reserved78); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED78; + break; + case cam_ts_CauseCodeChoice_PR_reserved79: + toRos_SubCauseCodeType(in.choice.reserved79, out.reserved79); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED79; + break; + case cam_ts_CauseCodeChoice_PR_reserved80: + toRos_SubCauseCodeType(in.choice.reserved80, out.reserved80); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED80; + break; + case cam_ts_CauseCodeChoice_PR_reserved81: + toRos_SubCauseCodeType(in.choice.reserved81, out.reserved81); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED81; + break; + case cam_ts_CauseCodeChoice_PR_reserved82: + toRos_SubCauseCodeType(in.choice.reserved82, out.reserved82); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED82; + break; + case cam_ts_CauseCodeChoice_PR_reserved83: + toRos_SubCauseCodeType(in.choice.reserved83, out.reserved83); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED83; + break; + case cam_ts_CauseCodeChoice_PR_reserved84: + toRos_SubCauseCodeType(in.choice.reserved84, out.reserved84); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED84; + break; + case cam_ts_CauseCodeChoice_PR_reserved85: + toRos_SubCauseCodeType(in.choice.reserved85, out.reserved85); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED85; + break; + case cam_ts_CauseCodeChoice_PR_reserved86: + toRos_SubCauseCodeType(in.choice.reserved86, out.reserved86); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED86; + break; + case cam_ts_CauseCodeChoice_PR_reserved87: + toRos_SubCauseCodeType(in.choice.reserved87, out.reserved87); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED87; + break; + case cam_ts_CauseCodeChoice_PR_reserved88: + toRos_SubCauseCodeType(in.choice.reserved88, out.reserved88); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED88; + break; + case cam_ts_CauseCodeChoice_PR_reserved89: + toRos_SubCauseCodeType(in.choice.reserved89, out.reserved89); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED89; + break; + case cam_ts_CauseCodeChoice_PR_reserved90: + toRos_SubCauseCodeType(in.choice.reserved90, out.reserved90); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED90; + break; + case cam_ts_CauseCodeChoice_PR_vehicleBreakdown91: + toRos_VehicleBreakdownSubCauseCode(in.choice.vehicleBreakdown91, out.vehicle_breakdown91); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_VEHICLE_BREAKDOWN91; + break; + case cam_ts_CauseCodeChoice_PR_postCrash92: + toRos_PostCrashSubCauseCode(in.choice.postCrash92, out.post_crash92); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_POST_CRASH92; + break; + case cam_ts_CauseCodeChoice_PR_humanProblem93: + toRos_HumanProblemSubCauseCode(in.choice.humanProblem93, out.human_problem93); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_HUMAN_PROBLEM93; + break; + case cam_ts_CauseCodeChoice_PR_stationaryVehicle94: + toRos_StationaryVehicleSubCauseCode(in.choice.stationaryVehicle94, out.stationary_vehicle94); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_STATIONARY_VEHICLE94; + break; + case cam_ts_CauseCodeChoice_PR_emergencyVehicleApproaching95: + toRos_EmergencyVehicleApproachingSubCauseCode(in.choice.emergencyVehicleApproaching95, out.emergency_vehicle_approaching95); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_EMERGENCY_VEHICLE_APPROACHING95; + break; + case cam_ts_CauseCodeChoice_PR_hazardousLocation_DangerousCurve96: + toRos_HazardousLocationDangerousCurveSubCauseCode(in.choice.hazardousLocation_DangerousCurve96, out.hazardous_location_dangerous_curve96); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_HAZARDOUS_LOCATION_DANGEROUS_CURVE96; + break; + case cam_ts_CauseCodeChoice_PR_collisionRisk97: + toRos_CollisionRiskSubCauseCode(in.choice.collisionRisk97, out.collision_risk97); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_COLLISION_RISK97; + break; + case cam_ts_CauseCodeChoice_PR_signalViolation98: + toRos_SignalViolationSubCauseCode(in.choice.signalViolation98, out.signal_violation98); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_SIGNAL_VIOLATION98; + break; + case cam_ts_CauseCodeChoice_PR_dangerousSituation99: + toRos_DangerousSituationSubCauseCode(in.choice.dangerousSituation99, out.dangerous_situation99); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_DANGEROUS_SITUATION99; + break; + case cam_ts_CauseCodeChoice_PR_railwayLevelCrossing100: + toRos_RailwayLevelCrossingSubCauseCode(in.choice.railwayLevelCrossing100, out.railway_level_crossing100); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RAILWAY_LEVEL_CROSSING100; + break; + case cam_ts_CauseCodeChoice_PR_reserved101: + toRos_SubCauseCodeType(in.choice.reserved101, out.reserved101); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED101; + break; + case cam_ts_CauseCodeChoice_PR_reserved102: + toRos_SubCauseCodeType(in.choice.reserved102, out.reserved102); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED102; + break; + case cam_ts_CauseCodeChoice_PR_reserved103: + toRos_SubCauseCodeType(in.choice.reserved103, out.reserved103); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED103; + break; + case cam_ts_CauseCodeChoice_PR_reserved104: + toRos_SubCauseCodeType(in.choice.reserved104, out.reserved104); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED104; + break; + case cam_ts_CauseCodeChoice_PR_reserved105: + toRos_SubCauseCodeType(in.choice.reserved105, out.reserved105); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED105; + break; + case cam_ts_CauseCodeChoice_PR_reserved106: + toRos_SubCauseCodeType(in.choice.reserved106, out.reserved106); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED106; + break; + case cam_ts_CauseCodeChoice_PR_reserved107: + toRos_SubCauseCodeType(in.choice.reserved107, out.reserved107); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED107; + break; + case cam_ts_CauseCodeChoice_PR_reserved108: + toRos_SubCauseCodeType(in.choice.reserved108, out.reserved108); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED108; + break; + case cam_ts_CauseCodeChoice_PR_reserved109: + toRos_SubCauseCodeType(in.choice.reserved109, out.reserved109); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED109; + break; + case cam_ts_CauseCodeChoice_PR_reserved110: + toRos_SubCauseCodeType(in.choice.reserved110, out.reserved110); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED110; + break; + case cam_ts_CauseCodeChoice_PR_reserved111: + toRos_SubCauseCodeType(in.choice.reserved111, out.reserved111); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED111; + break; + case cam_ts_CauseCodeChoice_PR_reserved112: + toRos_SubCauseCodeType(in.choice.reserved112, out.reserved112); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED112; + break; + case cam_ts_CauseCodeChoice_PR_reserved113: + toRos_SubCauseCodeType(in.choice.reserved113, out.reserved113); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED113; + break; + case cam_ts_CauseCodeChoice_PR_reserved114: + toRos_SubCauseCodeType(in.choice.reserved114, out.reserved114); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED114; + break; + case cam_ts_CauseCodeChoice_PR_reserved115: + toRos_SubCauseCodeType(in.choice.reserved115, out.reserved115); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED115; + break; + case cam_ts_CauseCodeChoice_PR_reserved116: + toRos_SubCauseCodeType(in.choice.reserved116, out.reserved116); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED116; + break; + case cam_ts_CauseCodeChoice_PR_reserved117: + toRos_SubCauseCodeType(in.choice.reserved117, out.reserved117); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED117; + break; + case cam_ts_CauseCodeChoice_PR_reserved118: + toRos_SubCauseCodeType(in.choice.reserved118, out.reserved118); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED118; + break; + case cam_ts_CauseCodeChoice_PR_reserved119: + toRos_SubCauseCodeType(in.choice.reserved119, out.reserved119); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED119; + break; + case cam_ts_CauseCodeChoice_PR_reserved120: + toRos_SubCauseCodeType(in.choice.reserved120, out.reserved120); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED120; + break; + case cam_ts_CauseCodeChoice_PR_reserved121: + toRos_SubCauseCodeType(in.choice.reserved121, out.reserved121); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED121; + break; + case cam_ts_CauseCodeChoice_PR_reserved122: + toRos_SubCauseCodeType(in.choice.reserved122, out.reserved122); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED122; + break; + case cam_ts_CauseCodeChoice_PR_reserved123: + toRos_SubCauseCodeType(in.choice.reserved123, out.reserved123); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED123; + break; + case cam_ts_CauseCodeChoice_PR_reserved124: + toRos_SubCauseCodeType(in.choice.reserved124, out.reserved124); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED124; + break; + case cam_ts_CauseCodeChoice_PR_reserved125: + toRos_SubCauseCodeType(in.choice.reserved125, out.reserved125); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED125; + break; + case cam_ts_CauseCodeChoice_PR_reserved126: + toRos_SubCauseCodeType(in.choice.reserved126, out.reserved126); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED126; + break; + case cam_ts_CauseCodeChoice_PR_reserved127: + toRos_SubCauseCodeType(in.choice.reserved127, out.reserved127); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED127; + break; + case cam_ts_CauseCodeChoice_PR_reserved128: + toRos_SubCauseCodeType(in.choice.reserved128, out.reserved128); + out.choice = cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED128; + break; + default: break; + } +} + +void toStruct_CauseCodeChoice(const cam_ts_msgs::CauseCodeChoice& in, cam_ts_CauseCodeChoice_t& out) { + memset(&out, 0, sizeof(cam_ts_CauseCodeChoice_t)); + + switch (in.choice) { + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED0: + toStruct_SubCauseCodeType(in.reserved0, out.choice.reserved0); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved0; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_TRAFFIC_CONDITION1: + toStruct_TrafficConditionSubCauseCode(in.traffic_condition1, out.choice.trafficCondition1); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_trafficCondition1; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_ACCIDENT2: + toStruct_AccidentSubCauseCode(in.accident2, out.choice.accident2); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_accident2; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_ROADWORKS3: + toStruct_RoadworksSubCauseCode(in.roadworks3, out.choice.roadworks3); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_roadworks3; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED4: + toStruct_SubCauseCodeType(in.reserved4, out.choice.reserved4); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved4; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_IMPASSABILITY5: + toStruct_ImpassabilitySubCauseCode(in.impassability5, out.choice.impassability5); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_impassability5; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_ADVERSE_WEATHER_CONDITION_ADHESION6: + toStruct_AdverseWeatherConditionAdhesionSubCauseCode(in.adverse_weather_condition_adhesion6, out.choice.adverseWeatherCondition_Adhesion6); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Adhesion6; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_AQUAPLANING7: + toStruct_SubCauseCodeType(in.aquaplaning7, out.choice.aquaplaning7); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_aquaplaning7; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED8: + toStruct_SubCauseCodeType(in.reserved8, out.choice.reserved8); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved8; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_HAZARDOUS_LOCATION_SURFACE_CONDITION9: + toStruct_HazardousLocationSurfaceConditionSubCauseCode(in.hazardous_location_surface_condition9, out.choice.hazardousLocation_SurfaceCondition9); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_hazardousLocation_SurfaceCondition9; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_HAZARDOUS_LOCATION_OBSTACLE_ON_THE_ROAD10: + toStruct_HazardousLocationObstacleOnTheRoadSubCauseCode(in.hazardous_location_obstacle_on_the_road10, out.choice.hazardousLocation_ObstacleOnTheRoad10); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_hazardousLocation_ObstacleOnTheRoad10; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_HAZARDOUS_LOCATION_ANIMAL_ON_THE_ROAD11: + toStruct_HazardousLocationAnimalOnTheRoadSubCauseCode(in.hazardous_location_animal_on_the_road11, out.choice.hazardousLocation_AnimalOnTheRoad11); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_hazardousLocation_AnimalOnTheRoad11; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_HUMAN_PRESENCE_ON_THE_ROAD12: + toStruct_HumanPresenceOnTheRoadSubCauseCode(in.human_presence_on_the_road12, out.choice.humanPresenceOnTheRoad12); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_humanPresenceOnTheRoad12; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED13: + toStruct_SubCauseCodeType(in.reserved13, out.choice.reserved13); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved13; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_WRONG_WAY_DRIVING14: + toStruct_WrongWayDrivingSubCauseCode(in.wrong_way_driving14, out.choice.wrongWayDriving14); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_wrongWayDriving14; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESCUE_AND_RECOVERY_WORK_IN_PROGRESS15: + toStruct_RescueAndRecoveryWorkInProgressSubCauseCode(in.rescue_and_recovery_work_in_progress15, out.choice.rescueAndRecoveryWorkInProgress15); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_rescueAndRecoveryWorkInProgress15; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED16: + toStruct_SubCauseCodeType(in.reserved16, out.choice.reserved16); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved16; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_ADVERSE_WEATHER_CONDITION_EXTREME_WEATHER_CONDITION17: + toStruct_AdverseWeatherConditionExtremeWeatherConditionSubCauseCode(in.adverse_weather_condition_extreme_weather_condition17, out.choice.adverseWeatherCondition_ExtremeWeatherCondition17); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_ExtremeWeatherCondition17; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_ADVERSE_WEATHER_CONDITION_VISIBILITY18: + toStruct_AdverseWeatherConditionVisibilitySubCauseCode(in.adverse_weather_condition_visibility18, out.choice.adverseWeatherCondition_Visibility18); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Visibility18; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_ADVERSE_WEATHER_CONDITION_PRECIPITATION19: + toStruct_AdverseWeatherConditionPrecipitationSubCauseCode(in.adverse_weather_condition_precipitation19, out.choice.adverseWeatherCondition_Precipitation19); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_adverseWeatherCondition_Precipitation19; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_VIOLENCE20: + toStruct_SubCauseCodeType(in.violence20, out.choice.violence20); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_violence20; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED21: + toStruct_SubCauseCodeType(in.reserved21, out.choice.reserved21); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved21; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED22: + toStruct_SubCauseCodeType(in.reserved22, out.choice.reserved22); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved22; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED23: + toStruct_SubCauseCodeType(in.reserved23, out.choice.reserved23); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved23; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED24: + toStruct_SubCauseCodeType(in.reserved24, out.choice.reserved24); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved24; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED25: + toStruct_SubCauseCodeType(in.reserved25, out.choice.reserved25); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved25; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_SLOW_VEHICLE26: + toStruct_SlowVehicleSubCauseCode(in.slow_vehicle26, out.choice.slowVehicle26); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_slowVehicle26; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_DANGEROUS_END_OF_QUEUE27: + toStruct_DangerousEndOfQueueSubCauseCode(in.dangerous_end_of_queue27, out.choice.dangerousEndOfQueue27); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_dangerousEndOfQueue27; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_PUBLIC_TRANSPORT_VEHICLE_APPROACHING28: + toStruct_SubCauseCodeType(in.public_transport_vehicle_approaching28, out.choice.publicTransportVehicleApproaching28); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_publicTransportVehicleApproaching28; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED29: + toStruct_SubCauseCodeType(in.reserved29, out.choice.reserved29); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved29; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED30: + toStruct_SubCauseCodeType(in.reserved30, out.choice.reserved30); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved30; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED31: + toStruct_SubCauseCodeType(in.reserved31, out.choice.reserved31); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved31; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED32: + toStruct_SubCauseCodeType(in.reserved32, out.choice.reserved32); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved32; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED33: + toStruct_SubCauseCodeType(in.reserved33, out.choice.reserved33); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved33; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED34: + toStruct_SubCauseCodeType(in.reserved34, out.choice.reserved34); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved34; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED35: + toStruct_SubCauseCodeType(in.reserved35, out.choice.reserved35); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved35; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED36: + toStruct_SubCauseCodeType(in.reserved36, out.choice.reserved36); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved36; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED37: + toStruct_SubCauseCodeType(in.reserved37, out.choice.reserved37); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved37; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED38: + toStruct_SubCauseCodeType(in.reserved38, out.choice.reserved38); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved38; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED39: + toStruct_SubCauseCodeType(in.reserved39, out.choice.reserved39); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved39; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED40: + toStruct_SubCauseCodeType(in.reserved40, out.choice.reserved40); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved40; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED41: + toStruct_SubCauseCodeType(in.reserved41, out.choice.reserved41); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved41; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED42: + toStruct_SubCauseCodeType(in.reserved42, out.choice.reserved42); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved42; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED43: + toStruct_SubCauseCodeType(in.reserved43, out.choice.reserved43); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved43; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED44: + toStruct_SubCauseCodeType(in.reserved44, out.choice.reserved44); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved44; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED45: + toStruct_SubCauseCodeType(in.reserved45, out.choice.reserved45); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved45; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED46: + toStruct_SubCauseCodeType(in.reserved46, out.choice.reserved46); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved46; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED47: + toStruct_SubCauseCodeType(in.reserved47, out.choice.reserved47); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved47; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED48: + toStruct_SubCauseCodeType(in.reserved48, out.choice.reserved48); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved48; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED49: + toStruct_SubCauseCodeType(in.reserved49, out.choice.reserved49); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved49; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED50: + toStruct_SubCauseCodeType(in.reserved50, out.choice.reserved50); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved50; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED51: + toStruct_SubCauseCodeType(in.reserved51, out.choice.reserved51); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved51; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED52: + toStruct_SubCauseCodeType(in.reserved52, out.choice.reserved52); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved52; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED53: + toStruct_SubCauseCodeType(in.reserved53, out.choice.reserved53); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved53; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED54: + toStruct_SubCauseCodeType(in.reserved54, out.choice.reserved54); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved54; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED55: + toStruct_SubCauseCodeType(in.reserved55, out.choice.reserved55); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved55; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED56: + toStruct_SubCauseCodeType(in.reserved56, out.choice.reserved56); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved56; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED57: + toStruct_SubCauseCodeType(in.reserved57, out.choice.reserved57); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved57; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED58: + toStruct_SubCauseCodeType(in.reserved58, out.choice.reserved58); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved58; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED59: + toStruct_SubCauseCodeType(in.reserved59, out.choice.reserved59); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved59; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED60: + toStruct_SubCauseCodeType(in.reserved60, out.choice.reserved60); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved60; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED61: + toStruct_SubCauseCodeType(in.reserved61, out.choice.reserved61); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved61; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED62: + toStruct_SubCauseCodeType(in.reserved62, out.choice.reserved62); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved62; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED63: + toStruct_SubCauseCodeType(in.reserved63, out.choice.reserved63); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved63; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED64: + toStruct_SubCauseCodeType(in.reserved64, out.choice.reserved64); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved64; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED65: + toStruct_SubCauseCodeType(in.reserved65, out.choice.reserved65); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved65; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED66: + toStruct_SubCauseCodeType(in.reserved66, out.choice.reserved66); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved66; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED67: + toStruct_SubCauseCodeType(in.reserved67, out.choice.reserved67); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved67; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED68: + toStruct_SubCauseCodeType(in.reserved68, out.choice.reserved68); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved68; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED69: + toStruct_SubCauseCodeType(in.reserved69, out.choice.reserved69); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved69; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED70: + toStruct_SubCauseCodeType(in.reserved70, out.choice.reserved70); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved70; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED71: + toStruct_SubCauseCodeType(in.reserved71, out.choice.reserved71); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved71; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED72: + toStruct_SubCauseCodeType(in.reserved72, out.choice.reserved72); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved72; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED73: + toStruct_SubCauseCodeType(in.reserved73, out.choice.reserved73); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved73; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED74: + toStruct_SubCauseCodeType(in.reserved74, out.choice.reserved74); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved74; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED75: + toStruct_SubCauseCodeType(in.reserved75, out.choice.reserved75); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved75; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED76: + toStruct_SubCauseCodeType(in.reserved76, out.choice.reserved76); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved76; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED77: + toStruct_SubCauseCodeType(in.reserved77, out.choice.reserved77); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved77; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED78: + toStruct_SubCauseCodeType(in.reserved78, out.choice.reserved78); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved78; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED79: + toStruct_SubCauseCodeType(in.reserved79, out.choice.reserved79); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved79; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED80: + toStruct_SubCauseCodeType(in.reserved80, out.choice.reserved80); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved80; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED81: + toStruct_SubCauseCodeType(in.reserved81, out.choice.reserved81); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved81; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED82: + toStruct_SubCauseCodeType(in.reserved82, out.choice.reserved82); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved82; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED83: + toStruct_SubCauseCodeType(in.reserved83, out.choice.reserved83); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved83; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED84: + toStruct_SubCauseCodeType(in.reserved84, out.choice.reserved84); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved84; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED85: + toStruct_SubCauseCodeType(in.reserved85, out.choice.reserved85); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved85; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED86: + toStruct_SubCauseCodeType(in.reserved86, out.choice.reserved86); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved86; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED87: + toStruct_SubCauseCodeType(in.reserved87, out.choice.reserved87); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved87; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED88: + toStruct_SubCauseCodeType(in.reserved88, out.choice.reserved88); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved88; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED89: + toStruct_SubCauseCodeType(in.reserved89, out.choice.reserved89); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved89; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED90: + toStruct_SubCauseCodeType(in.reserved90, out.choice.reserved90); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved90; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_VEHICLE_BREAKDOWN91: + toStruct_VehicleBreakdownSubCauseCode(in.vehicle_breakdown91, out.choice.vehicleBreakdown91); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_vehicleBreakdown91; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_POST_CRASH92: + toStruct_PostCrashSubCauseCode(in.post_crash92, out.choice.postCrash92); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_postCrash92; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_HUMAN_PROBLEM93: + toStruct_HumanProblemSubCauseCode(in.human_problem93, out.choice.humanProblem93); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_humanProblem93; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_STATIONARY_VEHICLE94: + toStruct_StationaryVehicleSubCauseCode(in.stationary_vehicle94, out.choice.stationaryVehicle94); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_stationaryVehicle94; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_EMERGENCY_VEHICLE_APPROACHING95: + toStruct_EmergencyVehicleApproachingSubCauseCode(in.emergency_vehicle_approaching95, out.choice.emergencyVehicleApproaching95); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_emergencyVehicleApproaching95; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_HAZARDOUS_LOCATION_DANGEROUS_CURVE96: + toStruct_HazardousLocationDangerousCurveSubCauseCode(in.hazardous_location_dangerous_curve96, out.choice.hazardousLocation_DangerousCurve96); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_hazardousLocation_DangerousCurve96; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_COLLISION_RISK97: + toStruct_CollisionRiskSubCauseCode(in.collision_risk97, out.choice.collisionRisk97); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_collisionRisk97; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_SIGNAL_VIOLATION98: + toStruct_SignalViolationSubCauseCode(in.signal_violation98, out.choice.signalViolation98); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_signalViolation98; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_DANGEROUS_SITUATION99: + toStruct_DangerousSituationSubCauseCode(in.dangerous_situation99, out.choice.dangerousSituation99); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_dangerousSituation99; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RAILWAY_LEVEL_CROSSING100: + toStruct_RailwayLevelCrossingSubCauseCode(in.railway_level_crossing100, out.choice.railwayLevelCrossing100); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_railwayLevelCrossing100; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED101: + toStruct_SubCauseCodeType(in.reserved101, out.choice.reserved101); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved101; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED102: + toStruct_SubCauseCodeType(in.reserved102, out.choice.reserved102); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved102; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED103: + toStruct_SubCauseCodeType(in.reserved103, out.choice.reserved103); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved103; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED104: + toStruct_SubCauseCodeType(in.reserved104, out.choice.reserved104); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved104; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED105: + toStruct_SubCauseCodeType(in.reserved105, out.choice.reserved105); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved105; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED106: + toStruct_SubCauseCodeType(in.reserved106, out.choice.reserved106); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved106; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED107: + toStruct_SubCauseCodeType(in.reserved107, out.choice.reserved107); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved107; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED108: + toStruct_SubCauseCodeType(in.reserved108, out.choice.reserved108); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved108; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED109: + toStruct_SubCauseCodeType(in.reserved109, out.choice.reserved109); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved109; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED110: + toStruct_SubCauseCodeType(in.reserved110, out.choice.reserved110); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved110; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED111: + toStruct_SubCauseCodeType(in.reserved111, out.choice.reserved111); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved111; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED112: + toStruct_SubCauseCodeType(in.reserved112, out.choice.reserved112); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved112; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED113: + toStruct_SubCauseCodeType(in.reserved113, out.choice.reserved113); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved113; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED114: + toStruct_SubCauseCodeType(in.reserved114, out.choice.reserved114); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved114; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED115: + toStruct_SubCauseCodeType(in.reserved115, out.choice.reserved115); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved115; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED116: + toStruct_SubCauseCodeType(in.reserved116, out.choice.reserved116); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved116; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED117: + toStruct_SubCauseCodeType(in.reserved117, out.choice.reserved117); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved117; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED118: + toStruct_SubCauseCodeType(in.reserved118, out.choice.reserved118); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved118; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED119: + toStruct_SubCauseCodeType(in.reserved119, out.choice.reserved119); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved119; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED120: + toStruct_SubCauseCodeType(in.reserved120, out.choice.reserved120); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved120; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED121: + toStruct_SubCauseCodeType(in.reserved121, out.choice.reserved121); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved121; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED122: + toStruct_SubCauseCodeType(in.reserved122, out.choice.reserved122); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved122; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED123: + toStruct_SubCauseCodeType(in.reserved123, out.choice.reserved123); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved123; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED124: + toStruct_SubCauseCodeType(in.reserved124, out.choice.reserved124); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved124; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED125: + toStruct_SubCauseCodeType(in.reserved125, out.choice.reserved125); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved125; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED126: + toStruct_SubCauseCodeType(in.reserved126, out.choice.reserved126); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved126; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED127: + toStruct_SubCauseCodeType(in.reserved127, out.choice.reserved127); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved127; + break; + case cam_ts_msgs::CauseCodeChoice::CHOICE_RESERVED128: + toStruct_SubCauseCodeType(in.reserved128, out.choice.reserved128); + out.present = cam_ts_CauseCodeChoice_PR::cam_ts_CauseCodeChoice_PR_reserved128; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeType.h new file mode 100644 index 000000000..7456ad0cf --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeType.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CauseCodeType(const cam_ts_CauseCodeType_t& in, cam_ts_msgs::CauseCodeType& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CauseCodeType(const cam_ts_msgs::CauseCodeType& in, cam_ts_CauseCodeType_t& out) { + memset(&out, 0, sizeof(cam_ts_CauseCodeType_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeV2.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeV2.h new file mode 100644 index 000000000..5d1474d7f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeV2.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CauseCodeV2(const cam_ts_CauseCodeV2_t& in, cam_ts_msgs::CauseCodeV2& out) { + toRos_CauseCodeChoice(in.ccAndScc, out.cc_and_scc); +} + +void toStruct_CauseCodeV2(const cam_ts_msgs::CauseCodeV2& in, cam_ts_CauseCodeV2_t& out) { + memset(&out, 0, sizeof(cam_ts_CauseCodeV2_t)); + + toStruct_CauseCodeChoice(in.cc_and_scc, out.ccAndScc); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZone.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZone.h new file mode 100644 index 000000000..65c705e5c --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZone.h @@ -0,0 +1,65 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CenDsrcTollingZone(const cam_ts_CenDsrcTollingZone_t& in, cam_ts_msgs::CenDsrcTollingZone& out) { + toRos_Latitude(in.protectedZoneLatitude, out.protected_zone_latitude); + toRos_Longitude(in.protectedZoneLongitude, out.protected_zone_longitude); + if (in.cenDsrcTollingZoneId) { + toRos_ProtectedZoneId(*in.cenDsrcTollingZoneId, out.cen_dsrc_tolling_zone_id); + out.cen_dsrc_tolling_zone_id_is_present = true; + } +} + +void toStruct_CenDsrcTollingZone(const cam_ts_msgs::CenDsrcTollingZone& in, cam_ts_CenDsrcTollingZone_t& out) { + memset(&out, 0, sizeof(cam_ts_CenDsrcTollingZone_t)); + + toStruct_Latitude(in.protected_zone_latitude, out.protectedZoneLatitude); + toStruct_Longitude(in.protected_zone_longitude, out.protectedZoneLongitude); + if (in.cen_dsrc_tolling_zone_id_is_present) { + out.cenDsrcTollingZoneId = (cam_ts_ProtectedZoneId_t*) calloc(1, sizeof(cam_ts_ProtectedZoneId_t)); + toStruct_ProtectedZoneId(in.cen_dsrc_tolling_zone_id, *out.cenDsrcTollingZoneId); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZoneID.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZoneID.h new file mode 100644 index 000000000..c2deeb198 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZoneID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CenDsrcTollingZoneID(const cam_ts_CenDsrcTollingZoneID_t& in, cam_ts_msgs::CenDsrcTollingZoneID& out) { + toRos_ProtectedZoneId(in, out.value); +} + +void toStruct_CenDsrcTollingZoneID(const cam_ts_msgs::CenDsrcTollingZoneID& in, cam_ts_CenDsrcTollingZoneID_t& out) { + memset(&out, 0, sizeof(cam_ts_CenDsrcTollingZoneID_t)); + + toStruct_ProtectedZoneId(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCircularShape.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCircularShape.h new file mode 100644 index 000000000..5f49fc751 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCircularShape.h @@ -0,0 +1,70 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CircularShape(const cam_ts_CircularShape_t& in, cam_ts_msgs::CircularShape& out) { + if (in.shapeReferencePoint) { + toRos_CartesianPosition3d(*in.shapeReferencePoint, out.shape_reference_point); + out.shape_reference_point_is_present = true; + } + toRos_StandardLength12b(in.radius, out.radius); + if (in.height) { + toRos_StandardLength12b(*in.height, out.height); + out.height_is_present = true; + } +} + +void toStruct_CircularShape(const cam_ts_msgs::CircularShape& in, cam_ts_CircularShape_t& out) { + memset(&out, 0, sizeof(cam_ts_CircularShape_t)); + + if (in.shape_reference_point_is_present) { + out.shapeReferencePoint = (cam_ts_CartesianPosition3d_t*) calloc(1, sizeof(cam_ts_CartesianPosition3d_t)); + toStruct_CartesianPosition3d(in.shape_reference_point, *out.shapeReferencePoint); + } + toStruct_StandardLength12b(in.radius, out.radius); + if (in.height_is_present) { + out.height = (cam_ts_StandardLength12b_t*) calloc(1, sizeof(cam_ts_StandardLength12b_t)); + toStruct_StandardLength12b(in.height, *out.height); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClosedLanes.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClosedLanes.h new file mode 100644 index 000000000..861fc6c20 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClosedLanes.h @@ -0,0 +1,76 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ClosedLanes(const cam_ts_ClosedLanes_t& in, cam_ts_msgs::ClosedLanes& out) { + if (in.innerhardShoulderStatus) { + toRos_HardShoulderStatus(*in.innerhardShoulderStatus, out.innerhard_shoulder_status); + out.innerhard_shoulder_status_is_present = true; + } + if (in.outerhardShoulderStatus) { + toRos_HardShoulderStatus(*in.outerhardShoulderStatus, out.outerhard_shoulder_status); + out.outerhard_shoulder_status_is_present = true; + } + if (in.drivingLaneStatus) { + toRos_DrivingLaneStatus(*in.drivingLaneStatus, out.driving_lane_status); + out.driving_lane_status_is_present = true; + } +} + +void toStruct_ClosedLanes(const cam_ts_msgs::ClosedLanes& in, cam_ts_ClosedLanes_t& out) { + memset(&out, 0, sizeof(cam_ts_ClosedLanes_t)); + + if (in.innerhard_shoulder_status_is_present) { + out.innerhardShoulderStatus = (cam_ts_HardShoulderStatus_t*) calloc(1, sizeof(cam_ts_HardShoulderStatus_t)); + toStruct_HardShoulderStatus(in.innerhard_shoulder_status, *out.innerhardShoulderStatus); + } + if (in.outerhard_shoulder_status_is_present) { + out.outerhardShoulderStatus = (cam_ts_HardShoulderStatus_t*) calloc(1, sizeof(cam_ts_HardShoulderStatus_t)); + toStruct_HardShoulderStatus(in.outerhard_shoulder_status, *out.outerhardShoulderStatus); + } + if (in.driving_lane_status_is_present) { + out.drivingLaneStatus = (cam_ts_DrivingLaneStatus_t*) calloc(1, sizeof(cam_ts_DrivingLaneStatus_t)); + toStruct_DrivingLaneStatus(in.driving_lane_status, *out.drivingLaneStatus); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterBreakupInfo.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterBreakupInfo.h new file mode 100644 index 000000000..41c249291 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterBreakupInfo.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ClusterBreakupInfo(const cam_ts_ClusterBreakupInfo_t& in, cam_ts_msgs::ClusterBreakupInfo& out) { + toRos_ClusterBreakupReason(in.clusterBreakupReason, out.cluster_breakup_reason); + toRos_DeltaTimeQuarterSecond(in.breakupTime, out.breakup_time); +} + +void toStruct_ClusterBreakupInfo(const cam_ts_msgs::ClusterBreakupInfo& in, cam_ts_ClusterBreakupInfo_t& out) { + memset(&out, 0, sizeof(cam_ts_ClusterBreakupInfo_t)); + + toStruct_ClusterBreakupReason(in.cluster_breakup_reason, out.clusterBreakupReason); + toStruct_DeltaTimeQuarterSecond(in.breakup_time, out.breakupTime); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterBreakupReason.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterBreakupReason.h new file mode 100644 index 000000000..c6d48c695 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterBreakupReason.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ClusterBreakupReason(const cam_ts_ClusterBreakupReason_t& in, cam_ts_msgs::ClusterBreakupReason& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ClusterBreakupReason(const cam_ts_msgs::ClusterBreakupReason& in, cam_ts_ClusterBreakupReason_t& out) { + memset(&out, 0, sizeof(cam_ts_ClusterBreakupReason_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterJoinInfo.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterJoinInfo.h new file mode 100644 index 000000000..f55004644 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterJoinInfo.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ClusterJoinInfo(const cam_ts_ClusterJoinInfo_t& in, cam_ts_msgs::ClusterJoinInfo& out) { + toRos_Identifier1B(in.clusterId, out.cluster_id); + toRos_DeltaTimeQuarterSecond(in.joinTime, out.join_time); +} + +void toStruct_ClusterJoinInfo(const cam_ts_msgs::ClusterJoinInfo& in, cam_ts_ClusterJoinInfo_t& out) { + memset(&out, 0, sizeof(cam_ts_ClusterJoinInfo_t)); + + toStruct_Identifier1B(in.cluster_id, out.clusterId); + toStruct_DeltaTimeQuarterSecond(in.join_time, out.joinTime); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterLeaveInfo.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterLeaveInfo.h new file mode 100644 index 000000000..5cd1bb3ee --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterLeaveInfo.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ClusterLeaveInfo(const cam_ts_ClusterLeaveInfo_t& in, cam_ts_msgs::ClusterLeaveInfo& out) { + toRos_Identifier1B(in.clusterId, out.cluster_id); + toRos_ClusterLeaveReason(in.clusterLeaveReason, out.cluster_leave_reason); +} + +void toStruct_ClusterLeaveInfo(const cam_ts_msgs::ClusterLeaveInfo& in, cam_ts_ClusterLeaveInfo_t& out) { + memset(&out, 0, sizeof(cam_ts_ClusterLeaveInfo_t)); + + toStruct_Identifier1B(in.cluster_id, out.clusterId); + toStruct_ClusterLeaveReason(in.cluster_leave_reason, out.clusterLeaveReason); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterLeaveReason.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterLeaveReason.h new file mode 100644 index 000000000..eb7e0854f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClusterLeaveReason.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ClusterLeaveReason(const cam_ts_ClusterLeaveReason_t& in, cam_ts_msgs::ClusterLeaveReason& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ClusterLeaveReason(const cam_ts_msgs::ClusterLeaveReason& in, cam_ts_ClusterLeaveReason_t& out) { + memset(&out, 0, sizeof(cam_ts_ClusterLeaveReason_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCollisionRiskSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCollisionRiskSubCauseCode.h new file mode 100644 index 000000000..54f9f317b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCollisionRiskSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CollisionRiskSubCauseCode(const cam_ts_CollisionRiskSubCauseCode_t& in, cam_ts_msgs::CollisionRiskSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CollisionRiskSubCauseCode(const cam_ts_msgs::CollisionRiskSubCauseCode& in, cam_ts_CollisionRiskSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_CollisionRiskSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertConfidenceLevel.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertConfidenceLevel.h new file mode 100644 index 000000000..781f07348 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertConfidenceLevel.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ConfidenceLevel(const cam_ts_ConfidenceLevel_t& in, cam_ts_msgs::ConfidenceLevel& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ConfidenceLevel(const cam_ts_msgs::ConfidenceLevel& in, cam_ts_ConfidenceLevel_t& out) { + memset(&out, 0, sizeof(cam_ts_ConfidenceLevel_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCoordinateConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCoordinateConfidence.h new file mode 100644 index 000000000..5e0c8b44e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCoordinateConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CoordinateConfidence(const cam_ts_CoordinateConfidence_t& in, cam_ts_msgs::CoordinateConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CoordinateConfidence(const cam_ts_msgs::CoordinateConfidence& in, cam_ts_CoordinateConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_CoordinateConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCorrelationCellValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCorrelationCellValue.h new file mode 100644 index 000000000..c5e796688 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCorrelationCellValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CorrelationCellValue(const cam_ts_CorrelationCellValue_t& in, cam_ts_msgs::CorrelationCellValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CorrelationCellValue(const cam_ts_msgs::CorrelationCellValue& in, cam_ts_CorrelationCellValue_t& out) { + memset(&out, 0, sizeof(cam_ts_CorrelationCellValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCorrelationColumn.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCorrelationColumn.h new file mode 100644 index 000000000..e4f8f6247 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCorrelationColumn.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CorrelationColumn(const cam_ts_CorrelationColumn_t& in, cam_ts_msgs::CorrelationColumn& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::CorrelationCellValue el; + toRos_CorrelationCellValue(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_CorrelationColumn(const cam_ts_msgs::CorrelationColumn& in, cam_ts_CorrelationColumn_t& out) { + memset(&out, 0, sizeof(cam_ts_CorrelationColumn_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_CorrelationCellValue_t* el = (cam_ts_CorrelationCellValue_t*) calloc(1, sizeof(cam_ts_CorrelationCellValue_t)); + toStruct_CorrelationCellValue(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCountryCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCountryCode.h new file mode 100644 index 000000000..4b53c5d9c --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCountryCode.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CountryCode(const cam_ts_CountryCode_t& in, cam_ts_msgs::CountryCode& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_CountryCode(const cam_ts_msgs::CountryCode& in, cam_ts_CountryCode_t& out) { + memset(&out, 0, sizeof(cam_ts_CountryCode_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvature.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvature.h new file mode 100644 index 000000000..316716fea --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvature.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Curvature(const cam_ts_Curvature_t& in, cam_ts_msgs::Curvature& out) { + toRos_CurvatureValue(in.curvatureValue, out.curvature_value); + toRos_CurvatureConfidence(in.curvatureConfidence, out.curvature_confidence); +} + +void toStruct_Curvature(const cam_ts_msgs::Curvature& in, cam_ts_Curvature_t& out) { + memset(&out, 0, sizeof(cam_ts_Curvature_t)); + + toStruct_CurvatureValue(in.curvature_value, out.curvatureValue); + toStruct_CurvatureConfidence(in.curvature_confidence, out.curvatureConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureCalculationMode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureCalculationMode.h new file mode 100644 index 000000000..7378bc1d4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureCalculationMode.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CurvatureCalculationMode(const cam_ts_CurvatureCalculationMode_t& in, cam_ts_msgs::CurvatureCalculationMode& out) { + out.value = in; +} + +void toStruct_CurvatureCalculationMode(const cam_ts_msgs::CurvatureCalculationMode& in, cam_ts_CurvatureCalculationMode_t& out) { + memset(&out, 0, sizeof(cam_ts_CurvatureCalculationMode_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureConfidence.h new file mode 100644 index 000000000..4c7a38a74 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureConfidence.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CurvatureConfidence(const cam_ts_CurvatureConfidence_t& in, cam_ts_msgs::CurvatureConfidence& out) { + out.value = in; +} + +void toStruct_CurvatureConfidence(const cam_ts_msgs::CurvatureConfidence& in, cam_ts_CurvatureConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_CurvatureConfidence_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureValue.h new file mode 100644 index 000000000..e3473eb5f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_CurvatureValue(const cam_ts_CurvatureValue_t& in, cam_ts_msgs::CurvatureValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_CurvatureValue(const cam_ts_msgs::CurvatureValue& in, cam_ts_CurvatureValue_t& out) { + memset(&out, 0, sizeof(cam_ts_CurvatureValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousEndOfQueueSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousEndOfQueueSubCauseCode.h new file mode 100644 index 000000000..84b703044 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DangerousEndOfQueueSubCauseCode(const cam_ts_DangerousEndOfQueueSubCauseCode_t& in, cam_ts_msgs::DangerousEndOfQueueSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DangerousEndOfQueueSubCauseCode(const cam_ts_msgs::DangerousEndOfQueueSubCauseCode& in, cam_ts_DangerousEndOfQueueSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_DangerousEndOfQueueSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsBasic.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsBasic.h new file mode 100644 index 000000000..256accf11 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsBasic.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DangerousGoodsBasic(const cam_ts_DangerousGoodsBasic_t& in, cam_ts_msgs::DangerousGoodsBasic& out) { + out.value = in; +} + +void toStruct_DangerousGoodsBasic(const cam_ts_msgs::DangerousGoodsBasic& in, cam_ts_DangerousGoodsBasic_t& out) { + memset(&out, 0, sizeof(cam_ts_DangerousGoodsBasic_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsContainer.h new file mode 100644 index 000000000..d34c68297 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsContainer.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DangerousGoodsContainer(const cam_ts_DangerousGoodsContainer_t& in, cam_ts_msgs::DangerousGoodsContainer& out) { + toRos_DangerousGoodsBasic(in.dangerousGoodsBasic, out.dangerous_goods_basic); +} + +void toStruct_DangerousGoodsContainer(const cam_ts_msgs::DangerousGoodsContainer& in, cam_ts_DangerousGoodsContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_DangerousGoodsContainer_t)); + + toStruct_DangerousGoodsBasic(in.dangerous_goods_basic, out.dangerousGoodsBasic); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsExtended.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsExtended.h new file mode 100644 index 000000000..26146315d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsExtended.h @@ -0,0 +1,94 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DangerousGoodsExtended(const cam_ts_DangerousGoodsExtended_t& in, cam_ts_msgs::DangerousGoodsExtended& out) { + toRos_DangerousGoodsBasic(in.dangerousGoodsType, out.dangerous_goods_type); + etsi_its_primitives_conversion::toRos_INTEGER(in.unNumber, out.un_number); + etsi_its_primitives_conversion::toRos_BOOLEAN(in.elevatedTemperature, out.elevated_temperature); + etsi_its_primitives_conversion::toRos_BOOLEAN(in.tunnelsRestricted, out.tunnels_restricted); + etsi_its_primitives_conversion::toRos_BOOLEAN(in.limitedQuantity, out.limited_quantity); + if (in.emergencyActionCode) { + etsi_its_primitives_conversion::toRos_IA5String(*in.emergencyActionCode, out.emergency_action_code); + out.emergency_action_code_is_present = true; + } + if (in.phoneNumber) { + toRos_PhoneNumber(*in.phoneNumber, out.phone_number); + out.phone_number_is_present = true; + } + if (in.companyName) { + etsi_its_primitives_conversion::toRos_UTF8String(*in.companyName, out.company_name); + out.company_name_is_present = true; + } +} + +void toStruct_DangerousGoodsExtended(const cam_ts_msgs::DangerousGoodsExtended& in, cam_ts_DangerousGoodsExtended_t& out) { + memset(&out, 0, sizeof(cam_ts_DangerousGoodsExtended_t)); + + toStruct_DangerousGoodsBasic(in.dangerous_goods_type, out.dangerousGoodsType); + etsi_its_primitives_conversion::toStruct_INTEGER(in.un_number, out.unNumber); + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.elevated_temperature, out.elevatedTemperature); + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.tunnels_restricted, out.tunnelsRestricted); + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.limited_quantity, out.limitedQuantity); + if (in.emergency_action_code_is_present) { + out.emergencyActionCode = (IA5String_t*) calloc(1, sizeof(IA5String_t)); + etsi_its_primitives_conversion::toStruct_IA5String(in.emergency_action_code, *out.emergencyActionCode); + } + if (in.phone_number_is_present) { + out.phoneNumber = (cam_ts_PhoneNumber_t*) calloc(1, sizeof(cam_ts_PhoneNumber_t)); + toStruct_PhoneNumber(in.phone_number, *out.phoneNumber); + } + if (in.company_name_is_present) { + out.companyName = (UTF8String_t*) calloc(1, sizeof(UTF8String_t)); + etsi_its_primitives_conversion::toStruct_UTF8String(in.company_name, *out.companyName); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousSituationSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousSituationSubCauseCode.h new file mode 100644 index 000000000..19517fc63 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousSituationSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DangerousSituationSubCauseCode(const cam_ts_DangerousSituationSubCauseCode_t& in, cam_ts_msgs::DangerousSituationSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DangerousSituationSubCauseCode(const cam_ts_msgs::DangerousSituationSubCauseCode& in, cam_ts_DangerousSituationSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_DangerousSituationSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaAltitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaAltitude.h new file mode 100644 index 000000000..5a1193898 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaAltitude.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaAltitude(const cam_ts_DeltaAltitude_t& in, cam_ts_msgs::DeltaAltitude& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaAltitude(const cam_ts_msgs::DeltaAltitude& in, cam_ts_DeltaAltitude_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaAltitude_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLatitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLatitude.h new file mode 100644 index 000000000..fde83fbc2 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLatitude.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaLatitude(const cam_ts_DeltaLatitude_t& in, cam_ts_msgs::DeltaLatitude& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaLatitude(const cam_ts_msgs::DeltaLatitude& in, cam_ts_DeltaLatitude_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaLatitude_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLongitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLongitude.h new file mode 100644 index 000000000..af1d4a92e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLongitude.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaLongitude(const cam_ts_DeltaLongitude_t& in, cam_ts_msgs::DeltaLongitude& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaLongitude(const cam_ts_msgs::DeltaLongitude& in, cam_ts_DeltaLongitude_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaLongitude_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaReferencePosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaReferencePosition.h new file mode 100644 index 000000000..68d99495f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaReferencePosition.h @@ -0,0 +1,59 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaReferencePosition(const cam_ts_DeltaReferencePosition_t& in, cam_ts_msgs::DeltaReferencePosition& out) { + toRos_DeltaLatitude(in.deltaLatitude, out.delta_latitude); + toRos_DeltaLongitude(in.deltaLongitude, out.delta_longitude); + toRos_DeltaAltitude(in.deltaAltitude, out.delta_altitude); +} + +void toStruct_DeltaReferencePosition(const cam_ts_msgs::DeltaReferencePosition& in, cam_ts_DeltaReferencePosition_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaReferencePosition_t)); + + toStruct_DeltaLatitude(in.delta_latitude, out.deltaLatitude); + toStruct_DeltaLongitude(in.delta_longitude, out.deltaLongitude); + toStruct_DeltaAltitude(in.delta_altitude, out.deltaAltitude); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeMilliSecondPositive.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeMilliSecondPositive.h new file mode 100644 index 000000000..12b602995 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeMilliSecondPositive.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaTimeMilliSecondPositive(const cam_ts_DeltaTimeMilliSecondPositive_t& in, cam_ts_msgs::DeltaTimeMilliSecondPositive& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaTimeMilliSecondPositive(const cam_ts_msgs::DeltaTimeMilliSecondPositive& in, cam_ts_DeltaTimeMilliSecondPositive_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaTimeMilliSecondPositive_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeMilliSecondSigned.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeMilliSecondSigned.h new file mode 100644 index 000000000..64b0ec666 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeMilliSecondSigned.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaTimeMilliSecondSigned(const cam_ts_DeltaTimeMilliSecondSigned_t& in, cam_ts_msgs::DeltaTimeMilliSecondSigned& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaTimeMilliSecondSigned(const cam_ts_msgs::DeltaTimeMilliSecondSigned& in, cam_ts_DeltaTimeMilliSecondSigned_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaTimeMilliSecondSigned_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeQuarterSecond.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeQuarterSecond.h new file mode 100644 index 000000000..1f404d932 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeQuarterSecond.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaTimeQuarterSecond(const cam_ts_DeltaTimeQuarterSecond_t& in, cam_ts_msgs::DeltaTimeQuarterSecond& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaTimeQuarterSecond(const cam_ts_msgs::DeltaTimeQuarterSecond& in, cam_ts_DeltaTimeQuarterSecond_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaTimeQuarterSecond_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeSecond.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeSecond.h new file mode 100644 index 000000000..e62242f96 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeSecond.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaTimeSecond(const cam_ts_DeltaTimeSecond_t& in, cam_ts_msgs::DeltaTimeSecond& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaTimeSecond(const cam_ts_msgs::DeltaTimeSecond& in, cam_ts_DeltaTimeSecond_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaTimeSecond_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeTenSeconds.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeTenSeconds.h new file mode 100644 index 000000000..1593a686a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeTenSeconds.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaTimeTenSeconds(const cam_ts_DeltaTimeTenSeconds_t& in, cam_ts_msgs::DeltaTimeTenSeconds& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaTimeTenSeconds(const cam_ts_msgs::DeltaTimeTenSeconds& in, cam_ts_DeltaTimeTenSeconds_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaTimeTenSeconds_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeTenthOfSecond.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeTenthOfSecond.h new file mode 100644 index 000000000..84fd0edd6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaTimeTenthOfSecond.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DeltaTimeTenthOfSecond(const cam_ts_DeltaTimeTenthOfSecond_t& in, cam_ts_msgs::DeltaTimeTenthOfSecond& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaTimeTenthOfSecond(const cam_ts_msgs::DeltaTimeTenthOfSecond& in, cam_ts_DeltaTimeTenthOfSecond_t& out) { + memset(&out, 0, sizeof(cam_ts_DeltaTimeTenthOfSecond_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDigitalMap.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDigitalMap.h new file mode 100644 index 000000000..ec16e7335 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDigitalMap.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DigitalMap(const cam_ts_DigitalMap_t& in, cam_ts_msgs::DigitalMap& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::ReferencePosition el; + toRos_ReferencePosition(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_DigitalMap(const cam_ts_msgs::DigitalMap& in, cam_ts_DigitalMap_t& out) { + memset(&out, 0, sizeof(cam_ts_DigitalMap_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_ReferencePosition_t* el = (cam_ts_ReferencePosition_t*) calloc(1, sizeof(cam_ts_ReferencePosition_t)); + toStruct_ReferencePosition(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDirection.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDirection.h new file mode 100644 index 000000000..981897ce6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDirection.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Direction(const cam_ts_Direction_t& in, cam_ts_msgs::Direction& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Direction(const cam_ts_msgs::Direction& in, cam_ts_Direction_t& out) { + memset(&out, 0, sizeof(cam_ts_Direction_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDriveDirection.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDriveDirection.h new file mode 100644 index 000000000..6a3d29359 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDriveDirection.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DriveDirection(const cam_ts_DriveDirection_t& in, cam_ts_msgs::DriveDirection& out) { + out.value = in; +} + +void toStruct_DriveDirection(const cam_ts_msgs::DriveDirection& in, cam_ts_DriveDirection_t& out) { + memset(&out, 0, sizeof(cam_ts_DriveDirection_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDrivingLaneStatus.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDrivingLaneStatus.h new file mode 100644 index 000000000..4ac6347b1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDrivingLaneStatus.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_DrivingLaneStatus(const cam_ts_DrivingLaneStatus_t& in, cam_ts_msgs::DrivingLaneStatus& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_DrivingLaneStatus(const cam_ts_msgs::DrivingLaneStatus& in, cam_ts_DrivingLaneStatus_t& out) { + memset(&out, 0, sizeof(cam_ts_DrivingLaneStatus_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEllipticalShape.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEllipticalShape.h new file mode 100644 index 000000000..c2eca1236 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEllipticalShape.h @@ -0,0 +1,81 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EllipticalShape(const cam_ts_EllipticalShape_t& in, cam_ts_msgs::EllipticalShape& out) { + if (in.shapeReferencePoint) { + toRos_CartesianPosition3d(*in.shapeReferencePoint, out.shape_reference_point); + out.shape_reference_point_is_present = true; + } + toRos_StandardLength12b(in.semiMajorAxisLength, out.semi_major_axis_length); + toRos_StandardLength12b(in.semiMinorAxisLength, out.semi_minor_axis_length); + if (in.orientation) { + toRos_CartesianAngleValue(*in.orientation, out.orientation); + out.orientation_is_present = true; + } + if (in.height) { + toRos_StandardLength12b(*in.height, out.height); + out.height_is_present = true; + } +} + +void toStruct_EllipticalShape(const cam_ts_msgs::EllipticalShape& in, cam_ts_EllipticalShape_t& out) { + memset(&out, 0, sizeof(cam_ts_EllipticalShape_t)); + + if (in.shape_reference_point_is_present) { + out.shapeReferencePoint = (cam_ts_CartesianPosition3d_t*) calloc(1, sizeof(cam_ts_CartesianPosition3d_t)); + toStruct_CartesianPosition3d(in.shape_reference_point, *out.shapeReferencePoint); + } + toStruct_StandardLength12b(in.semi_major_axis_length, out.semiMajorAxisLength); + toStruct_StandardLength12b(in.semi_minor_axis_length, out.semiMinorAxisLength); + if (in.orientation_is_present) { + out.orientation = (cam_ts_CartesianAngleValue_t*) calloc(1, sizeof(cam_ts_CartesianAngleValue_t)); + toStruct_CartesianAngleValue(in.orientation, *out.orientation); + } + if (in.height_is_present) { + out.height = (cam_ts_StandardLength12b_t*) calloc(1, sizeof(cam_ts_StandardLength12b_t)); + toStruct_StandardLength12b(in.height, *out.height); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmbarkationStatus.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmbarkationStatus.h new file mode 100644 index 000000000..51095fb9f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmbarkationStatus.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EmbarkationStatus(const cam_ts_EmbarkationStatus_t& in, cam_ts_msgs::EmbarkationStatus& out) { + etsi_its_primitives_conversion::toRos_BOOLEAN(in, out.value); +} + +void toStruct_EmbarkationStatus(const cam_ts_msgs::EmbarkationStatus& in, cam_ts_EmbarkationStatus_t& out) { + memset(&out, 0, sizeof(cam_ts_EmbarkationStatus_t)); + + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyContainer.h new file mode 100644 index 000000000..49bd43175 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyContainer.h @@ -0,0 +1,71 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EmergencyContainer(const cam_ts_EmergencyContainer_t& in, cam_ts_msgs::EmergencyContainer& out) { + toRos_LightBarSirenInUse(in.lightBarSirenInUse, out.light_bar_siren_in_use); + if (in.incidentIndication) { + toRos_CauseCodeV2(*in.incidentIndication, out.incident_indication); + out.incident_indication_is_present = true; + } + if (in.emergencyPriority) { + toRos_EmergencyPriority(*in.emergencyPriority, out.emergency_priority); + out.emergency_priority_is_present = true; + } +} + +void toStruct_EmergencyContainer(const cam_ts_msgs::EmergencyContainer& in, cam_ts_EmergencyContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_EmergencyContainer_t)); + + toStruct_LightBarSirenInUse(in.light_bar_siren_in_use, out.lightBarSirenInUse); + if (in.incident_indication_is_present) { + out.incidentIndication = (cam_ts_CauseCodeV2_t*) calloc(1, sizeof(cam_ts_CauseCodeV2_t)); + toStruct_CauseCodeV2(in.incident_indication, *out.incidentIndication); + } + if (in.emergency_priority_is_present) { + out.emergencyPriority = (cam_ts_EmergencyPriority_t*) calloc(1, sizeof(cam_ts_EmergencyPriority_t)); + toStruct_EmergencyPriority(in.emergency_priority, *out.emergencyPriority); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyPriority.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyPriority.h new file mode 100644 index 000000000..d399d4c38 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyPriority.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EmergencyPriority(const cam_ts_EmergencyPriority_t& in, cam_ts_msgs::EmergencyPriority& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_EmergencyPriority(const cam_ts_msgs::EmergencyPriority& in, cam_ts_EmergencyPriority_t& out) { + memset(&out, 0, sizeof(cam_ts_EmergencyPriority_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyVehicleApproachingSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 000000000..a4a6b0228 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EmergencyVehicleApproachingSubCauseCode(const cam_ts_EmergencyVehicleApproachingSubCauseCode_t& in, cam_ts_msgs::EmergencyVehicleApproachingSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_EmergencyVehicleApproachingSubCauseCode(const cam_ts_msgs::EmergencyVehicleApproachingSubCauseCode& in, cam_ts_EmergencyVehicleApproachingSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_EmergencyVehicleApproachingSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEnergyStorageType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEnergyStorageType.h new file mode 100644 index 000000000..f08613b0a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEnergyStorageType.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EnergyStorageType(const cam_ts_EnergyStorageType_t& in, cam_ts_msgs::EnergyStorageType& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_EnergyStorageType(const cam_ts_msgs::EnergyStorageType& in, cam_ts_EnergyStorageType_t& out) { + memset(&out, 0, sizeof(cam_ts_EnergyStorageType_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryCode.h new file mode 100644 index 000000000..9ec090e52 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryCode.h @@ -0,0 +1,102 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EuVehicleCategoryCode(const cam_ts_EuVehicleCategoryCode_t& in, cam_ts_msgs::EuVehicleCategoryCode& out) { + switch (in.present) { + case cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryL: + toRos_EuVehicleCategoryL(in.choice.euVehicleCategoryL, out.eu_vehicle_category_l); + out.choice = cam_ts_msgs::EuVehicleCategoryCode::CHOICE_EU_VEHICLE_CATEGORY_L; + break; + case cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryM: + toRos_EuVehicleCategoryM(in.choice.euVehicleCategoryM, out.eu_vehicle_category_m); + out.choice = cam_ts_msgs::EuVehicleCategoryCode::CHOICE_EU_VEHICLE_CATEGORY_M; + break; + case cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryN: + toRos_EuVehicleCategoryN(in.choice.euVehicleCategoryN, out.eu_vehicle_category_n); + out.choice = cam_ts_msgs::EuVehicleCategoryCode::CHOICE_EU_VEHICLE_CATEGORY_N; + break; + case cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryO: + toRos_EuVehicleCategoryO(in.choice.euVehicleCategoryO, out.eu_vehicle_category_o); + out.choice = cam_ts_msgs::EuVehicleCategoryCode::CHOICE_EU_VEHICLE_CATEGORY_O; + break; +etsi_its_primitives_conversion::toRos_byte(in, out.value); + break; +etsi_its_primitives_conversion::toRos_byte(in, out.value); + break; + default: break; + } +} + +void toStruct_EuVehicleCategoryCode(const cam_ts_msgs::EuVehicleCategoryCode& in, cam_ts_EuVehicleCategoryCode_t& out) { + memset(&out, 0, sizeof(cam_ts_EuVehicleCategoryCode_t)); + + switch (in.choice) { + case cam_ts_msgs::EuVehicleCategoryCode::CHOICE_EU_VEHICLE_CATEGORY_L: + toStruct_EuVehicleCategoryL(in.eu_vehicle_category_l, out.choice.euVehicleCategoryL); + out.present = cam_ts_EuVehicleCategoryCode_PR::cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryL; + break; + case cam_ts_msgs::EuVehicleCategoryCode::CHOICE_EU_VEHICLE_CATEGORY_M: + toStruct_EuVehicleCategoryM(in.eu_vehicle_category_m, out.choice.euVehicleCategoryM); + out.present = cam_ts_EuVehicleCategoryCode_PR::cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryM; + break; + case cam_ts_msgs::EuVehicleCategoryCode::CHOICE_EU_VEHICLE_CATEGORY_N: + toStruct_EuVehicleCategoryN(in.eu_vehicle_category_n, out.choice.euVehicleCategoryN); + out.present = cam_ts_EuVehicleCategoryCode_PR::cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryN; + break; + case cam_ts_msgs::EuVehicleCategoryCode::CHOICE_EU_VEHICLE_CATEGORY_O: + toStruct_EuVehicleCategoryO(in.eu_vehicle_category_o, out.choice.euVehicleCategoryO); + out.present = cam_ts_EuVehicleCategoryCode_PR::cam_ts_EuVehicleCategoryCode_PR_euVehicleCategoryO; + break; +etsi_its_primitives_conversion::toStruct_byte(in, out.value); + break; +etsi_its_primitives_conversion::toStruct_byte(in, out.value); + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryL.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryL.h new file mode 100644 index 000000000..d2ca8b3e4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryL.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EuVehicleCategoryL(const cam_ts_EuVehicleCategoryL_t& in, cam_ts_msgs::EuVehicleCategoryL& out) { + out.value = in; +} + +void toStruct_EuVehicleCategoryL(const cam_ts_msgs::EuVehicleCategoryL& in, cam_ts_EuVehicleCategoryL_t& out) { + memset(&out, 0, sizeof(cam_ts_EuVehicleCategoryL_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryM.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryM.h new file mode 100644 index 000000000..e04248fc3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryM.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EuVehicleCategoryM(const cam_ts_EuVehicleCategoryM_t& in, cam_ts_msgs::EuVehicleCategoryM& out) { + out.value = in; +} + +void toStruct_EuVehicleCategoryM(const cam_ts_msgs::EuVehicleCategoryM& in, cam_ts_EuVehicleCategoryM_t& out) { + memset(&out, 0, sizeof(cam_ts_EuVehicleCategoryM_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryN.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryN.h new file mode 100644 index 000000000..2332872b4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryN.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EuVehicleCategoryN(const cam_ts_EuVehicleCategoryN_t& in, cam_ts_msgs::EuVehicleCategoryN& out) { + out.value = in; +} + +void toStruct_EuVehicleCategoryN(const cam_ts_msgs::EuVehicleCategoryN& in, cam_ts_EuVehicleCategoryN_t& out) { + memset(&out, 0, sizeof(cam_ts_EuVehicleCategoryN_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryO.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryO.h new file mode 100644 index 000000000..f90075599 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEuVehicleCategoryO.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EuVehicleCategoryO(const cam_ts_EuVehicleCategoryO_t& in, cam_ts_msgs::EuVehicleCategoryO& out) { + out.value = in; +} + +void toStruct_EuVehicleCategoryO(const cam_ts_msgs::EuVehicleCategoryO& in, cam_ts_EuVehicleCategoryO_t& out) { + memset(&out, 0, sizeof(cam_ts_EuVehicleCategoryO_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEulerAnglesWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEulerAnglesWithConfidence.h new file mode 100644 index 000000000..15b24054d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEulerAnglesWithConfidence.h @@ -0,0 +1,69 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EulerAnglesWithConfidence(const cam_ts_EulerAnglesWithConfidence_t& in, cam_ts_msgs::EulerAnglesWithConfidence& out) { + toRos_CartesianAngle(in.zAngle, out.z_angle); + if (in.yAngle) { + toRos_CartesianAngle(*in.yAngle, out.y_angle); + out.y_angle_is_present = true; + } + if (in.xAngle) { + toRos_CartesianAngle(*in.xAngle, out.x_angle); + out.x_angle_is_present = true; + } +} + +void toStruct_EulerAnglesWithConfidence(const cam_ts_msgs::EulerAnglesWithConfidence& in, cam_ts_EulerAnglesWithConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_EulerAnglesWithConfidence_t)); + + toStruct_CartesianAngle(in.z_angle, out.zAngle); + if (in.y_angle_is_present) { + out.yAngle = (cam_ts_CartesianAngle_t*) calloc(1, sizeof(cam_ts_CartesianAngle_t)); + toStruct_CartesianAngle(in.y_angle, *out.yAngle); + } + if (in.x_angle_is_present) { + out.xAngle = (cam_ts_CartesianAngle_t*) calloc(1, sizeof(cam_ts_CartesianAngle_t)); + toStruct_CartesianAngle(in.x_angle, *out.xAngle); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventHistory.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventHistory.h new file mode 100644 index 000000000..0386fe853 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventHistory.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EventHistory(const cam_ts_EventHistory_t& in, cam_ts_msgs::EventHistory& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::EventPoint el; + toRos_EventPoint(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_EventHistory(const cam_ts_msgs::EventHistory& in, cam_ts_EventHistory_t& out) { + memset(&out, 0, sizeof(cam_ts_EventHistory_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_EventPoint_t* el = (cam_ts_EventPoint_t*) calloc(1, sizeof(cam_ts_EventPoint_t)); + toStruct_EventPoint(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventPoint.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventPoint.h new file mode 100644 index 000000000..9dc520bdd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventPoint.h @@ -0,0 +1,65 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EventPoint(const cam_ts_EventPoint_t& in, cam_ts_msgs::EventPoint& out) { + toRos_DeltaReferencePosition(in.eventPosition, out.event_position); + if (in.eventDeltaTime) { + toRos_PathDeltaTime(*in.eventDeltaTime, out.event_delta_time); + out.event_delta_time_is_present = true; + } + toRos_InformationQuality(in.informationQuality, out.information_quality); +} + +void toStruct_EventPoint(const cam_ts_msgs::EventPoint& in, cam_ts_EventPoint_t& out) { + memset(&out, 0, sizeof(cam_ts_EventPoint_t)); + + toStruct_DeltaReferencePosition(in.event_position, out.eventPosition); + if (in.event_delta_time_is_present) { + out.eventDeltaTime = (cam_ts_PathDeltaTime_t*) calloc(1, sizeof(cam_ts_PathDeltaTime_t)); + toStruct_PathDeltaTime(in.event_delta_time, *out.eventDeltaTime); + } + toStruct_InformationQuality(in.information_quality, out.informationQuality); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventZone.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventZone.h new file mode 100644 index 000000000..17b9eb816 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEventZone.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_EventZone(const cam_ts_EventZone_t& in, cam_ts_msgs::EventZone& out) { + toRos_EventHistory(in, out.value); +} + +void toStruct_EventZone(const cam_ts_msgs::EventZone& in, cam_ts_EventZone_t& out) { + memset(&out, 0, sizeof(cam_ts_EventZone_t)); + + toStruct_EventHistory(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt1.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt1.h new file mode 100644 index 000000000..83a87eddd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt1.h @@ -0,0 +1,71 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Ext1(const cam_ts_Ext1_t& in, cam_ts_msgs::Ext1& out) { + switch (in.present) { +etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); + break; + case cam_ts_Ext1_PR_extension: + toRos_Ext2(in.choice.extension, out.extension); + out.choice = cam_ts_msgs::Ext1::CHOICE_EXTENSION; + break; + default: break; + } +} + +void toStruct_Ext1(const cam_ts_msgs::Ext1& in, cam_ts_Ext1_t& out) { + memset(&out, 0, sizeof(cam_ts_Ext1_t)); + + switch (in.choice) { +etsi_its_primitives_conversion::toStruct_INTEGER(in, out.value); + break; + case cam_ts_msgs::Ext1::CHOICE_EXTENSION: + toStruct_Ext2(in.extension, out.choice.extension); + out.present = cam_ts_Ext1_PR::cam_ts_Ext1_PR_extension; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt2.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt2.h new file mode 100644 index 000000000..bb74835a2 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt2.h @@ -0,0 +1,71 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Ext2(const cam_ts_Ext2_t& in, cam_ts_msgs::Ext2& out) { + switch (in.present) { +etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); + break; + case cam_ts_Ext2_PR_extension: + toRos_Ext3(in.choice.extension, out.extension); + out.choice = cam_ts_msgs::Ext2::CHOICE_EXTENSION; + break; + default: break; + } +} + +void toStruct_Ext2(const cam_ts_msgs::Ext2& in, cam_ts_Ext2_t& out) { + memset(&out, 0, sizeof(cam_ts_Ext2_t)); + + switch (in.choice) { +etsi_its_primitives_conversion::toStruct_INTEGER(in, out.value); + break; + case cam_ts_msgs::Ext2::CHOICE_EXTENSION: + toStruct_Ext3(in.extension, out.choice.extension); + out.present = cam_ts_Ext2_PR::cam_ts_Ext2_PR_extension; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt3.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt3.h new file mode 100644 index 000000000..8c4384bb7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExt3.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Ext3(const cam_ts_Ext3_t& in, cam_ts_msgs::Ext3& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Ext3(const cam_ts_msgs::Ext3& in, cam_ts_Ext3_t& out) { + memset(&out, 0, sizeof(cam_ts_Ext3_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExteriorLights.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExteriorLights.h new file mode 100644 index 000000000..0b1363f75 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExteriorLights.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ExteriorLights(const cam_ts_ExteriorLights_t& in, cam_ts_msgs::ExteriorLights& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_ExteriorLights(const cam_ts_msgs::ExteriorLights& in, cam_ts_ExteriorLights_t& out) { + memset(&out, 0, sizeof(cam_ts_ExteriorLights_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeneralizedLanePosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeneralizedLanePosition.h new file mode 100644 index 000000000..53c27d1d8 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeneralizedLanePosition.h @@ -0,0 +1,65 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_GeneralizedLanePosition(const cam_ts_GeneralizedLanePosition_t& in, cam_ts_msgs::GeneralizedLanePosition& out) { + toRos_LanePositionOptions(in.lanePositionBased, out.lane_position_based); + if (in.mapBased) { + toRos_MapPosition(*in.mapBased, out.map_based); + out.map_based_is_present = true; + } + toRos_MetaInformation(in.confidence, out.confidence); +} + +void toStruct_GeneralizedLanePosition(const cam_ts_msgs::GeneralizedLanePosition& in, cam_ts_GeneralizedLanePosition_t& out) { + memset(&out, 0, sizeof(cam_ts_GeneralizedLanePosition_t)); + + toStruct_LanePositionOptions(in.lane_position_based, out.lanePositionBased); + if (in.map_based_is_present) { + out.mapBased = (cam_ts_MapPosition_t*) calloc(1, sizeof(cam_ts_MapPosition_t)); + toStruct_MapPosition(in.map_based, *out.mapBased); + } + toStruct_MetaInformation(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeneralizedLanePositions.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeneralizedLanePositions.h new file mode 100644 index 000000000..9b6a4cc78 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeneralizedLanePositions.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_GeneralizedLanePositions(const cam_ts_GeneralizedLanePositions_t& in, cam_ts_msgs::GeneralizedLanePositions& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::GeneralizedLanePosition el; + toRos_GeneralizedLanePosition(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_GeneralizedLanePositions(const cam_ts_msgs::GeneralizedLanePositions& in, cam_ts_GeneralizedLanePositions_t& out) { + memset(&out, 0, sizeof(cam_ts_GeneralizedLanePositions_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_GeneralizedLanePosition_t* el = (cam_ts_GeneralizedLanePosition_t*) calloc(1, sizeof(cam_ts_GeneralizedLanePosition_t)); + toStruct_GeneralizedLanePosition(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGenerationDeltaTime.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGenerationDeltaTime.h new file mode 100644 index 000000000..a05bb838c --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGenerationDeltaTime.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_GenerationDeltaTime(const cam_ts_GenerationDeltaTime_t& in, cam_ts_msgs::GenerationDeltaTime& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_GenerationDeltaTime(const cam_ts_msgs::GenerationDeltaTime& in, cam_ts_GenerationDeltaTime_t& out) { + memset(&out, 0, sizeof(cam_ts_GenerationDeltaTime_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeoPosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeoPosition.h new file mode 100644 index 000000000..8f8ef9055 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGeoPosition.h @@ -0,0 +1,62 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_GeoPosition(const cam_ts_GeoPosition_t& in, cam_ts_msgs::GeoPosition& out) { + toRos_Latitude(in.latitude, out.latitude); + toRos_Longitude(in.longitude, out.longitude); + if (in.altitude) { + toRos_AltitudeValue(*in.altitude, out.altitude); + } +} + +void toStruct_GeoPosition(const cam_ts_msgs::GeoPosition& in, cam_ts_GeoPosition_t& out) { + memset(&out, 0, sizeof(cam_ts_GeoPosition_t)); + + toStruct_Latitude(in.latitude, out.latitude); + toStruct_Longitude(in.longitude, out.longitude); + out.altitude = (cam_ts_AltitudeValue_t*) calloc(1, sizeof(cam_ts_AltitudeValue_t)); + toStruct_AltitudeValue(in.altitude, *out.altitude); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHardShoulderStatus.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHardShoulderStatus.h new file mode 100644 index 000000000..7bb86bd7a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHardShoulderStatus.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HardShoulderStatus(const cam_ts_HardShoulderStatus_t& in, cam_ts_msgs::HardShoulderStatus& out) { + out.value = in; +} + +void toStruct_HardShoulderStatus(const cam_ts_msgs::HardShoulderStatus& in, cam_ts_HardShoulderStatus_t& out) { + memset(&out, 0, sizeof(cam_ts_HardShoulderStatus_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationAnimalOnTheRoadSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationAnimalOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..f8ea00f7e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationAnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HazardousLocationAnimalOnTheRoadSubCauseCode(const cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_t& in, cam_ts_msgs::HazardousLocationAnimalOnTheRoadSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HazardousLocationAnimalOnTheRoadSubCauseCode(const cam_ts_msgs::HazardousLocationAnimalOnTheRoadSubCauseCode& in, cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationDangerousCurveSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationDangerousCurveSubCauseCode.h new file mode 100644 index 000000000..3c91fdb8a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationDangerousCurveSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HazardousLocationDangerousCurveSubCauseCode(const cam_ts_HazardousLocation_DangerousCurveSubCauseCode_t& in, cam_ts_msgs::HazardousLocationDangerousCurveSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HazardousLocationDangerousCurveSubCauseCode(const cam_ts_msgs::HazardousLocationDangerousCurveSubCauseCode& in, cam_ts_HazardousLocation_DangerousCurveSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_HazardousLocation_DangerousCurveSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationObstacleOnTheRoadSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..5d6ef4f64 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HazardousLocationObstacleOnTheRoadSubCauseCode(const cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t& in, cam_ts_msgs::HazardousLocationObstacleOnTheRoadSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HazardousLocationObstacleOnTheRoadSubCauseCode(const cam_ts_msgs::HazardousLocationObstacleOnTheRoadSubCauseCode& in, cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationSurfaceConditionSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationSurfaceConditionSubCauseCode.h new file mode 100644 index 000000000..8a00151c6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationSurfaceConditionSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HazardousLocationSurfaceConditionSubCauseCode(const cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_t& in, cam_ts_msgs::HazardousLocationSurfaceConditionSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HazardousLocationSurfaceConditionSubCauseCode(const cam_ts_msgs::HazardousLocationSurfaceConditionSubCauseCode& in, cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_HazardousLocation_SurfaceConditionSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeading.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeading.h new file mode 100644 index 000000000..afcac696a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeading.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Heading(const cam_ts_Heading_t& in, cam_ts_msgs::Heading& out) { + toRos_HeadingValue(in.headingValue, out.heading_value); + toRos_HeadingConfidence(in.headingConfidence, out.heading_confidence); +} + +void toStruct_Heading(const cam_ts_msgs::Heading& in, cam_ts_Heading_t& out) { + memset(&out, 0, sizeof(cam_ts_Heading_t)); + + toStruct_HeadingValue(in.heading_value, out.headingValue); + toStruct_HeadingConfidence(in.heading_confidence, out.headingConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingChangeIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingChangeIndication.h new file mode 100644 index 000000000..f0316c333 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingChangeIndication.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HeadingChangeIndication(const cam_ts_HeadingChangeIndication_t& in, cam_ts_msgs::HeadingChangeIndication& out) { + toRos_TurningDirection(in.direction, out.direction); + toRos_DeltaTimeTenthOfSecond(in.actionDeltaTime, out.action_delta_time); +} + +void toStruct_HeadingChangeIndication(const cam_ts_msgs::HeadingChangeIndication& in, cam_ts_HeadingChangeIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_HeadingChangeIndication_t)); + + toStruct_TurningDirection(in.direction, out.direction); + toStruct_DeltaTimeTenthOfSecond(in.action_delta_time, out.actionDeltaTime); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingConfidence.h new file mode 100644 index 000000000..7fda6c9e7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HeadingConfidence(const cam_ts_HeadingConfidence_t& in, cam_ts_msgs::HeadingConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HeadingConfidence(const cam_ts_msgs::HeadingConfidence& in, cam_ts_HeadingConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_HeadingConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingValue.h new file mode 100644 index 000000000..e69bb9033 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HeadingValue(const cam_ts_HeadingValue_t& in, cam_ts_msgs::HeadingValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HeadingValue(const cam_ts_msgs::HeadingValue& in, cam_ts_HeadingValue_t& out) { + memset(&out, 0, sizeof(cam_ts_HeadingValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeightLonCarr.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeightLonCarr.h new file mode 100644 index 000000000..12dc1b86d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeightLonCarr.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HeightLonCarr(const cam_ts_HeightLonCarr_t& in, cam_ts_msgs::HeightLonCarr& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HeightLonCarr(const cam_ts_msgs::HeightLonCarr& in, cam_ts_HeightLonCarr_t& out) { + memset(&out, 0, sizeof(cam_ts_HeightLonCarr_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHighFrequencyContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHighFrequencyContainer.h new file mode 100644 index 000000000..f764a0e74 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHighFrequencyContainer.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HighFrequencyContainer(const cam_ts_HighFrequencyContainer_t& in, cam_ts_msgs::HighFrequencyContainer& out) { + switch (in.present) { + case cam_ts_HighFrequencyContainer_PR_basicVehicleContainerHighFrequency: + toRos_BasicVehicleContainerHighFrequency(in.choice.basicVehicleContainerHighFrequency, out.basic_vehicle_container_high_frequency); + out.choice = cam_ts_msgs::HighFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_HIGH_FREQUENCY; + break; + case cam_ts_HighFrequencyContainer_PR_rsuContainerHighFrequency: + toRos_RSUContainerHighFrequency(in.choice.rsuContainerHighFrequency, out.rsu_container_high_frequency); + out.choice = cam_ts_msgs::HighFrequencyContainer::CHOICE_RSU_CONTAINER_HIGH_FREQUENCY; + break; + default: break; + } +} + +void toStruct_HighFrequencyContainer(const cam_ts_msgs::HighFrequencyContainer& in, cam_ts_HighFrequencyContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_HighFrequencyContainer_t)); + + switch (in.choice) { + case cam_ts_msgs::HighFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_HIGH_FREQUENCY: + toStruct_BasicVehicleContainerHighFrequency(in.basic_vehicle_container_high_frequency, out.choice.basicVehicleContainerHighFrequency); + out.present = cam_ts_HighFrequencyContainer_PR::cam_ts_HighFrequencyContainer_PR_basicVehicleContainerHighFrequency; + break; + case cam_ts_msgs::HighFrequencyContainer::CHOICE_RSU_CONTAINER_HIGH_FREQUENCY: + toStruct_RSUContainerHighFrequency(in.rsu_container_high_frequency, out.choice.rsuContainerHighFrequency); + out.present = cam_ts_HighFrequencyContainer_PR::cam_ts_HighFrequencyContainer_PR_rsuContainerHighFrequency; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanPresenceOnTheRoadSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..07f7ebdc1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HumanPresenceOnTheRoadSubCauseCode(const cam_ts_HumanPresenceOnTheRoadSubCauseCode_t& in, cam_ts_msgs::HumanPresenceOnTheRoadSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HumanPresenceOnTheRoadSubCauseCode(const cam_ts_msgs::HumanPresenceOnTheRoadSubCauseCode& in, cam_ts_HumanPresenceOnTheRoadSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_HumanPresenceOnTheRoadSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanProblemSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanProblemSubCauseCode.h new file mode 100644 index 000000000..931ee34ac --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanProblemSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_HumanProblemSubCauseCode(const cam_ts_HumanProblemSubCauseCode_t& in, cam_ts_msgs::HumanProblemSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_HumanProblemSubCauseCode(const cam_ts_msgs::HumanProblemSubCauseCode& in, cam_ts_HumanProblemSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_HumanProblemSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIdentifier1B.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIdentifier1B.h new file mode 100644 index 000000000..613e78896 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIdentifier1B.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Identifier1B(const cam_ts_Identifier1B_t& in, cam_ts_msgs::Identifier1B& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Identifier1B(const cam_ts_msgs::Identifier1B& in, cam_ts_Identifier1B_t& out) { + memset(&out, 0, sizeof(cam_ts_Identifier1B_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIdentifier2B.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIdentifier2B.h new file mode 100644 index 000000000..0b20eebf2 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIdentifier2B.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Identifier2B(const cam_ts_Identifier2B_t& in, cam_ts_msgs::Identifier2B& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Identifier2B(const cam_ts_msgs::Identifier2B& in, cam_ts_Identifier2B_t& out) { + memset(&out, 0, sizeof(cam_ts_Identifier2B_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertImpassabilitySubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertImpassabilitySubCauseCode.h new file mode 100644 index 000000000..9f8f51369 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertImpassabilitySubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ImpassabilitySubCauseCode(const cam_ts_ImpassabilitySubCauseCode_t& in, cam_ts_msgs::ImpassabilitySubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ImpassabilitySubCauseCode(const cam_ts_msgs::ImpassabilitySubCauseCode& in, cam_ts_ImpassabilitySubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_ImpassabilitySubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInformationQuality.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInformationQuality.h new file mode 100644 index 000000000..9091a38a3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInformationQuality.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_InformationQuality(const cam_ts_InformationQuality_t& in, cam_ts_msgs::InformationQuality& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_InformationQuality(const cam_ts_msgs::InformationQuality& in, cam_ts_InformationQuality_t& out) { + memset(&out, 0, sizeof(cam_ts_InformationQuality_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementChannel.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementChannel.h new file mode 100644 index 000000000..40ac5e9f6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementChannel.h @@ -0,0 +1,58 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_InterferenceManagementChannel(const cam_ts_InterferenceManagementChannel_t& in, cam_ts_msgs::InterferenceManagementChannel& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in.centreFrequency, out.centre_frequency); + etsi_its_primitives_conversion::toRos_INTEGER(in.channelWidth, out.channel_width); + etsi_its_primitives_conversion::toRos_INTEGER(in.exponent, out.exponent); +} + +void toStruct_InterferenceManagementChannel(const cam_ts_msgs::InterferenceManagementChannel& in, cam_ts_InterferenceManagementChannel_t& out) { + memset(&out, 0, sizeof(cam_ts_InterferenceManagementChannel_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.centre_frequency, out.centreFrequency); + etsi_its_primitives_conversion::toStruct_INTEGER(in.channel_width, out.channelWidth); + etsi_its_primitives_conversion::toStruct_INTEGER(in.exponent, out.exponent); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementInfo.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementInfo.h new file mode 100644 index 000000000..d8a99caed --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementInfo.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_InterferenceManagementInfo(const cam_ts_InterferenceManagementInfo_t& in, cam_ts_msgs::InterferenceManagementInfo& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::InterferenceManagementInfoPerChannel el; + toRos_InterferenceManagementInfoPerChannel(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_InterferenceManagementInfo(const cam_ts_msgs::InterferenceManagementInfo& in, cam_ts_InterferenceManagementInfo_t& out) { + memset(&out, 0, sizeof(cam_ts_InterferenceManagementInfo_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_InterferenceManagementInfoPerChannel_t* el = (cam_ts_InterferenceManagementInfoPerChannel_t*) calloc(1, sizeof(cam_ts_InterferenceManagementInfoPerChannel_t)); + toStruct_InterferenceManagementInfoPerChannel(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementInfoPerChannel.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementInfoPerChannel.h new file mode 100644 index 000000000..aa56a0ac7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementInfoPerChannel.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_InterferenceManagementInfoPerChannel(const cam_ts_InterferenceManagementInfoPerChannel_t& in, cam_ts_msgs::InterferenceManagementInfoPerChannel& out) { + toRos_InterferenceManagementChannel(in.interferenceManagementChannel, out.interference_management_channel); + toRos_InterferenceManagementZoneType(in.interferenceManagementZoneType, out.interference_management_zone_type); + if (in.interferenceManagementMitigationType) { + toRos_MitigationForTechnologies(*in.interferenceManagementMitigationType, out.interference_management_mitigation_type); + out.interference_management_mitigation_type_is_present = true; + } + if (in.expiryTime) { + toRos_TimestampIts(*in.expiryTime, out.expiry_time); + out.expiry_time_is_present = true; + } +} + +void toStruct_InterferenceManagementInfoPerChannel(const cam_ts_msgs::InterferenceManagementInfoPerChannel& in, cam_ts_InterferenceManagementInfoPerChannel_t& out) { + memset(&out, 0, sizeof(cam_ts_InterferenceManagementInfoPerChannel_t)); + + toStruct_InterferenceManagementChannel(in.interference_management_channel, out.interferenceManagementChannel); + toStruct_InterferenceManagementZoneType(in.interference_management_zone_type, out.interferenceManagementZoneType); + if (in.interference_management_mitigation_type_is_present) { + out.interferenceManagementMitigationType = (cam_ts_MitigationForTechnologies_t*) calloc(1, sizeof(cam_ts_MitigationForTechnologies_t)); + toStruct_MitigationForTechnologies(in.interference_management_mitigation_type, *out.interferenceManagementMitigationType); + } + if (in.expiry_time_is_present) { + out.expiryTime = (cam_ts_TimestampIts_t*) calloc(1, sizeof(cam_ts_TimestampIts_t)); + toStruct_TimestampIts(in.expiry_time, *out.expiryTime); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZone.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZone.h new file mode 100644 index 000000000..500e4b050 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZone.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_InterferenceManagementZone(const cam_ts_InterferenceManagementZone_t& in, cam_ts_msgs::InterferenceManagementZone& out) { + toRos_InterferenceManagementZoneDefinition(in.zoneDefinition, out.zone_definition); + toRos_InterferenceManagementInfo(in.managementInfo, out.management_info); +} + +void toStruct_InterferenceManagementZone(const cam_ts_msgs::InterferenceManagementZone& in, cam_ts_InterferenceManagementZone_t& out) { + memset(&out, 0, sizeof(cam_ts_InterferenceManagementZone_t)); + + toStruct_InterferenceManagementZoneDefinition(in.zone_definition, out.zoneDefinition); + toStruct_InterferenceManagementInfo(in.management_info, out.managementInfo); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZoneDefinition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZoneDefinition.h new file mode 100644 index 000000000..246020f15 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZoneDefinition.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_InterferenceManagementZoneDefinition(const cam_ts_InterferenceManagementZoneDefinition_t& in, cam_ts_msgs::InterferenceManagementZoneDefinition& out) { + toRos_Latitude(in.interferenceManagementZoneLatitude, out.interference_management_zone_latitude); + toRos_Longitude(in.interferenceManagementZoneLongitude, out.interference_management_zone_longitude); + if (in.interferenceManagementZoneId) { + toRos_ProtectedZoneId(*in.interferenceManagementZoneId, out.interference_management_zone_id); + out.interference_management_zone_id_is_present = true; + } + if (in.interferenceManagementZoneShape) { + toRos_Shape(*in.interferenceManagementZoneShape, out.interference_management_zone_shape); + out.interference_management_zone_shape_is_present = true; + } +} + +void toStruct_InterferenceManagementZoneDefinition(const cam_ts_msgs::InterferenceManagementZoneDefinition& in, cam_ts_InterferenceManagementZoneDefinition_t& out) { + memset(&out, 0, sizeof(cam_ts_InterferenceManagementZoneDefinition_t)); + + toStruct_Latitude(in.interference_management_zone_latitude, out.interferenceManagementZoneLatitude); + toStruct_Longitude(in.interference_management_zone_longitude, out.interferenceManagementZoneLongitude); + if (in.interference_management_zone_id_is_present) { + out.interferenceManagementZoneId = (cam_ts_ProtectedZoneId_t*) calloc(1, sizeof(cam_ts_ProtectedZoneId_t)); + toStruct_ProtectedZoneId(in.interference_management_zone_id, *out.interferenceManagementZoneId); + } + if (in.interference_management_zone_shape_is_present) { + out.interferenceManagementZoneShape = (cam_ts_Shape_t*) calloc(1, sizeof(cam_ts_Shape_t)); + toStruct_Shape(in.interference_management_zone_shape, *out.interferenceManagementZoneShape); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZoneType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZoneType.h new file mode 100644 index 000000000..60d2c5002 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZoneType.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_InterferenceManagementZoneType(const cam_ts_InterferenceManagementZoneType_t& in, cam_ts_msgs::InterferenceManagementZoneType& out) { + out.value = in; +} + +void toStruct_InterferenceManagementZoneType(const cam_ts_msgs::InterferenceManagementZoneType& in, cam_ts_InterferenceManagementZoneType_t& out) { + memset(&out, 0, sizeof(cam_ts_InterferenceManagementZoneType_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZones.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZones.h new file mode 100644 index 000000000..fea1a46df --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertInterferenceManagementZones.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_InterferenceManagementZones(const cam_ts_InterferenceManagementZones_t& in, cam_ts_msgs::InterferenceManagementZones& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::InterferenceManagementZone el; + toRos_InterferenceManagementZone(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_InterferenceManagementZones(const cam_ts_msgs::InterferenceManagementZones& in, cam_ts_InterferenceManagementZones_t& out) { + memset(&out, 0, sizeof(cam_ts_InterferenceManagementZones_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_InterferenceManagementZone_t* el = (cam_ts_InterferenceManagementZone_t*) calloc(1, sizeof(cam_ts_InterferenceManagementZone_t)); + toStruct_InterferenceManagementZone(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIntersectionReferenceId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIntersectionReferenceId.h new file mode 100644 index 000000000..82973313f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIntersectionReferenceId.h @@ -0,0 +1,61 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_IntersectionReferenceId(const cam_ts_IntersectionReferenceId_t& in, cam_ts_msgs::IntersectionReferenceId& out) { + if (in.region) { + toRos_Identifier2B(*in.region, out.region); + out.region_is_present = true; + } + toRos_Identifier2B(in.id, out.id); +} + +void toStruct_IntersectionReferenceId(const cam_ts_msgs::IntersectionReferenceId& in, cam_ts_IntersectionReferenceId_t& out) { + memset(&out, 0, sizeof(cam_ts_IntersectionReferenceId_t)); + + if (in.region_is_present) { + out.region = (cam_ts_Identifier2B_t*) calloc(1, sizeof(cam_ts_Identifier2B_t)); + toStruct_Identifier2B(in.region, *out.region); + } + toStruct_Identifier2B(in.id, out.id); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIso3833VehicleType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIso3833VehicleType.h new file mode 100644 index 000000000..d1f70454d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIso3833VehicleType.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Iso3833VehicleType(const cam_ts_Iso3833VehicleType_t& in, cam_ts_msgs::Iso3833VehicleType& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Iso3833VehicleType(const cam_ts_msgs::Iso3833VehicleType& in, cam_ts_Iso3833VehicleType_t& out) { + memset(&out, 0, sizeof(cam_ts_Iso3833VehicleType_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIssuerIdentifier.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIssuerIdentifier.h new file mode 100644 index 000000000..a242b85e0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIssuerIdentifier.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_IssuerIdentifier(const cam_ts_IssuerIdentifier_t& in, cam_ts_msgs::IssuerIdentifier& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_IssuerIdentifier(const cam_ts_msgs::IssuerIdentifier& in, cam_ts_IssuerIdentifier_t& out) { + memset(&out, 0, sizeof(cam_ts_IssuerIdentifier_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItineraryPath.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItineraryPath.h new file mode 100644 index 000000000..6ef4f205f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItineraryPath.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ItineraryPath(const cam_ts_ItineraryPath_t& in, cam_ts_msgs::ItineraryPath& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::ReferencePosition el; + toRos_ReferencePosition(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_ItineraryPath(const cam_ts_msgs::ItineraryPath& in, cam_ts_ItineraryPath_t& out) { + memset(&out, 0, sizeof(cam_ts_ItineraryPath_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_ReferencePosition_t* el = (cam_ts_ReferencePosition_t*) calloc(1, sizeof(cam_ts_ReferencePosition_t)); + toStruct_ReferencePosition(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItsPduHeader.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItsPduHeader.h new file mode 100644 index 000000000..1c9efc660 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItsPduHeader.h @@ -0,0 +1,59 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ItsPduHeader(const cam_ts_ItsPduHeader_t& in, cam_ts_msgs::ItsPduHeader& out) { + toRos_OrdinalNumber1B(in.protocolVersion, out.protocol_version); + toRos_MessageId(in.messageId, out.message_id); + toRos_StationId(in.stationId, out.station_id); +} + +void toStruct_ItsPduHeader(const cam_ts_msgs::ItsPduHeader& in, cam_ts_ItsPduHeader_t& out) { + memset(&out, 0, sizeof(cam_ts_ItsPduHeader_t)); + + toStruct_OrdinalNumber1B(in.protocol_version, out.protocolVersion); + toStruct_MessageId(in.message_id, out.messageId); + toStruct_StationId(in.station_id, out.stationId); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIviIdentificationNumber.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIviIdentificationNumber.h new file mode 100644 index 000000000..eb7c8460f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIviIdentificationNumber.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_IviIdentificationNumber(const cam_ts_IviIdentificationNumber_t& in, cam_ts_msgs::IviIdentificationNumber& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_IviIdentificationNumber(const cam_ts_msgs::IviIdentificationNumber& in, cam_ts_IviIdentificationNumber_t& out) { + memset(&out, 0, sizeof(cam_ts_IviIdentificationNumber_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIvimReference.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIvimReference.h new file mode 100644 index 000000000..f1fbab6cd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIvimReference.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_IvimReference(const cam_ts_IvimReference_t& in, cam_ts_msgs::IvimReference& out) { + toRos_Provider(in.serviceProviderId, out.service_provider_id); + toRos_IviIdentificationNumber(in.iviIdentificationNumber, out.ivi_identification_number); +} + +void toStruct_IvimReference(const cam_ts_msgs::IvimReference& in, cam_ts_IvimReference_t& out) { + memset(&out, 0, sizeof(cam_ts_IvimReference_t)); + + toStruct_Provider(in.service_provider_id, out.serviceProviderId); + toStruct_IviIdentificationNumber(in.ivi_identification_number, out.iviIdentificationNumber); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIvimReferences.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIvimReferences.h new file mode 100644 index 000000000..e890f29fe --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertIvimReferences.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_IvimReferences(const cam_ts_IvimReferences_t& in, cam_ts_msgs::IvimReferences& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::IvimReference el; + toRos_IvimReference(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_IvimReferences(const cam_ts_msgs::IvimReferences& in, cam_ts_IvimReferences_t& out) { + memset(&out, 0, sizeof(cam_ts_IvimReferences_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_IvimReference_t* el = (cam_ts_IvimReference_t*) calloc(1, sizeof(cam_ts_IvimReference_t)); + toStruct_IvimReference(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePosition.h new file mode 100644 index 000000000..05b425bfd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePosition.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LanePosition(const cam_ts_LanePosition_t& in, cam_ts_msgs::LanePosition& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LanePosition(const cam_ts_msgs::LanePosition& in, cam_ts_LanePosition_t& out) { + memset(&out, 0, sizeof(cam_ts_LanePosition_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionAndType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionAndType.h new file mode 100644 index 000000000..707d0cc7c --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionAndType.h @@ -0,0 +1,65 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LanePositionAndType(const cam_ts_LanePositionAndType_t& in, cam_ts_msgs::LanePositionAndType& out) { + toRos_LanePosition(in.transversalPosition, out.transversal_position); + if (in.laneType) { + toRos_LaneType(*in.laneType, out.lane_type); + } + if (in.direction) { + toRos_Direction(*in.direction, out.direction); + } +} + +void toStruct_LanePositionAndType(const cam_ts_msgs::LanePositionAndType& in, cam_ts_LanePositionAndType_t& out) { + memset(&out, 0, sizeof(cam_ts_LanePositionAndType_t)); + + toStruct_LanePosition(in.transversal_position, out.transversalPosition); + out.laneType = (cam_ts_LaneType_t*) calloc(1, sizeof(cam_ts_LaneType_t)); + toStruct_LaneType(in.lane_type, *out.laneType); + out.direction = (cam_ts_Direction_t*) calloc(1, sizeof(cam_ts_Direction_t)); + toStruct_Direction(in.direction, *out.direction); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionOptions.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionOptions.h new file mode 100644 index 000000000..332cf54fe --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionOptions.h @@ -0,0 +1,101 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LanePositionOptions(const cam_ts_LanePositionOptions_t& in, cam_ts_msgs::LanePositionOptions& out) { + switch (in.present) { + case cam_ts_LanePositionOptions_PR_simplelanePosition: + toRos_LanePosition(in.choice.simplelanePosition, out.simplelane_position); + out.choice = cam_ts_msgs::LanePositionOptions::CHOICE_SIMPLELANE_POSITION; + break; + case cam_ts_LanePositionOptions_PR_simpleLaneType: + toRos_LaneType(in.choice.simpleLaneType, out.simple_lane_type); + out.choice = cam_ts_msgs::LanePositionOptions::CHOICE_SIMPLE_LANE_TYPE; + break; + case cam_ts_LanePositionOptions_PR_detailedlanePosition: + toRos_LanePositionAndType(in.choice.detailedlanePosition, out.detailedlane_position); + out.choice = cam_ts_msgs::LanePositionOptions::CHOICE_DETAILEDLANE_POSITION; + break; + case cam_ts_LanePositionOptions_PR_lanePositionWithLateralDetails: + toRos_LanePositionWithLateralDetails(in.choice.lanePositionWithLateralDetails, out.lane_position_with_lateral_details); + out.choice = cam_ts_msgs::LanePositionOptions::CHOICE_LANE_POSITION_WITH_LATERAL_DETAILS; + break; + case cam_ts_LanePositionOptions_PR_trafficIslandPosition: + toRos_TrafficIslandPosition(in.choice.trafficIslandPosition, out.traffic_island_position); + out.choice = cam_ts_msgs::LanePositionOptions::CHOICE_TRAFFIC_ISLAND_POSITION; + break; + default: break; + } +} + +void toStruct_LanePositionOptions(const cam_ts_msgs::LanePositionOptions& in, cam_ts_LanePositionOptions_t& out) { + memset(&out, 0, sizeof(cam_ts_LanePositionOptions_t)); + + switch (in.choice) { + case cam_ts_msgs::LanePositionOptions::CHOICE_SIMPLELANE_POSITION: + toStruct_LanePosition(in.simplelane_position, out.choice.simplelanePosition); + out.present = cam_ts_LanePositionOptions_PR::cam_ts_LanePositionOptions_PR_simplelanePosition; + break; + case cam_ts_msgs::LanePositionOptions::CHOICE_SIMPLE_LANE_TYPE: + toStruct_LaneType(in.simple_lane_type, out.choice.simpleLaneType); + out.present = cam_ts_LanePositionOptions_PR::cam_ts_LanePositionOptions_PR_simpleLaneType; + break; + case cam_ts_msgs::LanePositionOptions::CHOICE_DETAILEDLANE_POSITION: + toStruct_LanePositionAndType(in.detailedlane_position, out.choice.detailedlanePosition); + out.present = cam_ts_LanePositionOptions_PR::cam_ts_LanePositionOptions_PR_detailedlanePosition; + break; + case cam_ts_msgs::LanePositionOptions::CHOICE_LANE_POSITION_WITH_LATERAL_DETAILS: + toStruct_LanePositionWithLateralDetails(in.lane_position_with_lateral_details, out.choice.lanePositionWithLateralDetails); + out.present = cam_ts_LanePositionOptions_PR::cam_ts_LanePositionOptions_PR_lanePositionWithLateralDetails; + break; + case cam_ts_msgs::LanePositionOptions::CHOICE_TRAFFIC_ISLAND_POSITION: + toStruct_TrafficIslandPosition(in.traffic_island_position, out.choice.trafficIslandPosition); + out.present = cam_ts_LanePositionOptions_PR::cam_ts_LanePositionOptions_PR_trafficIslandPosition; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionWithLateralDetails.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionWithLateralDetails.h new file mode 100644 index 000000000..b66c23e97 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePositionWithLateralDetails.h @@ -0,0 +1,70 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LanePositionWithLateralDetails(const cam_ts_LanePositionWithLateralDetails_t& in, cam_ts_msgs::LanePositionWithLateralDetails& out) { + toRos_StandardLength9b(in.distanceToLeftBorder, out.distance_to_left_border); + toRos_StandardLength9b(in.distanceToRightBorder, out.distance_to_right_border); + toRos_LanePosition(in.transversalPosition, out.transversal_position); + if (in.laneType) { + toRos_LaneType(*in.laneType, out.lane_type); + } + if (in.direction) { + toRos_Direction(*in.direction, out.direction); + } +} + +void toStruct_LanePositionWithLateralDetails(const cam_ts_msgs::LanePositionWithLateralDetails& in, cam_ts_LanePositionWithLateralDetails_t& out) { + memset(&out, 0, sizeof(cam_ts_LanePositionWithLateralDetails_t)); + + toStruct_StandardLength9b(in.distance_to_left_border, out.distanceToLeftBorder); + toStruct_StandardLength9b(in.distance_to_right_border, out.distanceToRightBorder); + toStruct_LanePosition(in.transversal_position, out.transversalPosition); + out.laneType = (cam_ts_LaneType_t*) calloc(1, sizeof(cam_ts_LaneType_t)); + toStruct_LaneType(in.lane_type, *out.laneType); + out.direction = (cam_ts_Direction_t*) calloc(1, sizeof(cam_ts_Direction_t)); + toStruct_Direction(in.direction, *out.direction); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLaneType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLaneType.h new file mode 100644 index 000000000..8238e58f2 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLaneType.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LaneType(const cam_ts_LaneType_t& in, cam_ts_msgs::LaneType& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LaneType(const cam_ts_msgs::LaneType& in, cam_ts_LaneType_t& out) { + memset(&out, 0, sizeof(cam_ts_LaneType_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLaneWidth.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLaneWidth.h new file mode 100644 index 000000000..653ed9e37 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLaneWidth.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LaneWidth(const cam_ts_LaneWidth_t& in, cam_ts_msgs::LaneWidth& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LaneWidth(const cam_ts_msgs::LaneWidth& in, cam_ts_LaneWidth_t& out) { + memset(&out, 0, sizeof(cam_ts_LaneWidth_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLateralAcceleration.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLateralAcceleration.h new file mode 100644 index 000000000..53cf86976 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLateralAcceleration.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LateralAcceleration(const cam_ts_LateralAcceleration_t& in, cam_ts_msgs::LateralAcceleration& out) { + toRos_LateralAccelerationValue(in.lateralAccelerationValue, out.lateral_acceleration_value); + toRos_AccelerationConfidence(in.lateralAccelerationConfidence, out.lateral_acceleration_confidence); +} + +void toStruct_LateralAcceleration(const cam_ts_msgs::LateralAcceleration& in, cam_ts_LateralAcceleration_t& out) { + memset(&out, 0, sizeof(cam_ts_LateralAcceleration_t)); + + toStruct_LateralAccelerationValue(in.lateral_acceleration_value, out.lateralAccelerationValue); + toStruct_AccelerationConfidence(in.lateral_acceleration_confidence, out.lateralAccelerationConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLateralAccelerationValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLateralAccelerationValue.h new file mode 100644 index 000000000..8cdd41ca2 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLateralAccelerationValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LateralAccelerationValue(const cam_ts_LateralAccelerationValue_t& in, cam_ts_msgs::LateralAccelerationValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LateralAccelerationValue(const cam_ts_msgs::LateralAccelerationValue& in, cam_ts_LateralAccelerationValue_t& out) { + memset(&out, 0, sizeof(cam_ts_LateralAccelerationValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLatitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLatitude.h new file mode 100644 index 000000000..8c65d7cd0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLatitude.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Latitude(const cam_ts_Latitude_t& in, cam_ts_msgs::Latitude& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Latitude(const cam_ts_msgs::Latitude& in, cam_ts_Latitude_t& out) { + memset(&out, 0, sizeof(cam_ts_Latitude_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLightBarSirenInUse.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLightBarSirenInUse.h new file mode 100644 index 000000000..ecf8c72bc --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLightBarSirenInUse.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LightBarSirenInUse(const cam_ts_LightBarSirenInUse_t& in, cam_ts_msgs::LightBarSirenInUse& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LightBarSirenInUse(const cam_ts_msgs::LightBarSirenInUse& in, cam_ts_LightBarSirenInUse_t& out) { + memset(&out, 0, sizeof(cam_ts_LightBarSirenInUse_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitude.h new file mode 100644 index 000000000..99513e286 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitude.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Longitude(const cam_ts_Longitude_t& in, cam_ts_msgs::Longitude& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Longitude(const cam_ts_msgs::Longitude& in, cam_ts_Longitude_t& out) { + memset(&out, 0, sizeof(cam_ts_Longitude_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalAcceleration.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalAcceleration.h new file mode 100644 index 000000000..1b7521dac --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalAcceleration.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LongitudinalAcceleration(const cam_ts_LongitudinalAcceleration_t& in, cam_ts_msgs::LongitudinalAcceleration& out) { + toRos_LongitudinalAccelerationValue(in.longitudinalAccelerationValue, out.longitudinal_acceleration_value); + toRos_AccelerationConfidence(in.longitudinalAccelerationConfidence, out.longitudinal_acceleration_confidence); +} + +void toStruct_LongitudinalAcceleration(const cam_ts_msgs::LongitudinalAcceleration& in, cam_ts_LongitudinalAcceleration_t& out) { + memset(&out, 0, sizeof(cam_ts_LongitudinalAcceleration_t)); + + toStruct_LongitudinalAccelerationValue(in.longitudinal_acceleration_value, out.longitudinalAccelerationValue); + toStruct_AccelerationConfidence(in.longitudinal_acceleration_confidence, out.longitudinalAccelerationConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalAccelerationValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalAccelerationValue.h new file mode 100644 index 000000000..fc2267d7b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalAccelerationValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LongitudinalAccelerationValue(const cam_ts_LongitudinalAccelerationValue_t& in, cam_ts_msgs::LongitudinalAccelerationValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LongitudinalAccelerationValue(const cam_ts_msgs::LongitudinalAccelerationValue& in, cam_ts_LongitudinalAccelerationValue_t& out) { + memset(&out, 0, sizeof(cam_ts_LongitudinalAccelerationValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePosition.h new file mode 100644 index 000000000..8c4a7232b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePosition.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LongitudinalLanePosition(const cam_ts_LongitudinalLanePosition_t& in, cam_ts_msgs::LongitudinalLanePosition& out) { + toRos_LongitudinalLanePositionValue(in.longitudinalLanePositionValue, out.longitudinal_lane_position_value); + toRos_LongitudinalLanePositionConfidence(in.longitudinalLanePositionConfidence, out.longitudinal_lane_position_confidence); +} + +void toStruct_LongitudinalLanePosition(const cam_ts_msgs::LongitudinalLanePosition& in, cam_ts_LongitudinalLanePosition_t& out) { + memset(&out, 0, sizeof(cam_ts_LongitudinalLanePosition_t)); + + toStruct_LongitudinalLanePositionValue(in.longitudinal_lane_position_value, out.longitudinalLanePositionValue); + toStruct_LongitudinalLanePositionConfidence(in.longitudinal_lane_position_confidence, out.longitudinalLanePositionConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePositionConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePositionConfidence.h new file mode 100644 index 000000000..f237ab37d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePositionConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LongitudinalLanePositionConfidence(const cam_ts_LongitudinalLanePositionConfidence_t& in, cam_ts_msgs::LongitudinalLanePositionConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LongitudinalLanePositionConfidence(const cam_ts_msgs::LongitudinalLanePositionConfidence& in, cam_ts_LongitudinalLanePositionConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_LongitudinalLanePositionConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePositionValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePositionValue.h new file mode 100644 index 000000000..9e87bb75e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitudinalLanePositionValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LongitudinalLanePositionValue(const cam_ts_LongitudinalLanePositionValue_t& in, cam_ts_msgs::LongitudinalLanePositionValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LongitudinalLanePositionValue(const cam_ts_msgs::LongitudinalLanePositionValue& in, cam_ts_LongitudinalLanePositionValue_t& out) { + memset(&out, 0, sizeof(cam_ts_LongitudinalLanePositionValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowFrequencyContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowFrequencyContainer.h new file mode 100644 index 000000000..bc4f49e70 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowFrequencyContainer.h @@ -0,0 +1,65 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LowFrequencyContainer(const cam_ts_LowFrequencyContainer_t& in, cam_ts_msgs::LowFrequencyContainer& out) { + switch (in.present) { + case cam_ts_LowFrequencyContainer_PR_basicVehicleContainerLowFrequency: + toRos_BasicVehicleContainerLowFrequency(in.choice.basicVehicleContainerLowFrequency, out.basic_vehicle_container_low_frequency); + out.choice = cam_ts_msgs::LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY; + break; + default: break; + } +} + +void toStruct_LowFrequencyContainer(const cam_ts_msgs::LowFrequencyContainer& in, cam_ts_LowFrequencyContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_LowFrequencyContainer_t)); + + switch (in.choice) { + case cam_ts_msgs::LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY: + toStruct_BasicVehicleContainerLowFrequency(in.basic_vehicle_container_low_frequency, out.choice.basicVehicleContainerLowFrequency); + out.present = cam_ts_LowFrequencyContainer_PR::cam_ts_LowFrequencyContainer_PR_basicVehicleContainerLowFrequency; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrices.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrices.h new file mode 100644 index 000000000..abb4ba709 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrices.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LowerTriangularPositiveSemidefiniteMatrices(const cam_ts_LowerTriangularPositiveSemidefiniteMatrices_t& in, cam_ts_msgs::LowerTriangularPositiveSemidefiniteMatrices& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::LowerTriangularPositiveSemidefiniteMatrix el; + toRos_LowerTriangularPositiveSemidefiniteMatrix(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_LowerTriangularPositiveSemidefiniteMatrices(const cam_ts_msgs::LowerTriangularPositiveSemidefiniteMatrices& in, cam_ts_LowerTriangularPositiveSemidefiniteMatrices_t& out) { + memset(&out, 0, sizeof(cam_ts_LowerTriangularPositiveSemidefiniteMatrices_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_LowerTriangularPositiveSemidefiniteMatrix_t* el = (cam_ts_LowerTriangularPositiveSemidefiniteMatrix_t*) calloc(1, sizeof(cam_ts_LowerTriangularPositiveSemidefiniteMatrix_t)); + toStruct_LowerTriangularPositiveSemidefiniteMatrix(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrix.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrix.h new file mode 100644 index 000000000..7a0198f26 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrix.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LowerTriangularPositiveSemidefiniteMatrix(const cam_ts_LowerTriangularPositiveSemidefiniteMatrix_t& in, cam_ts_msgs::LowerTriangularPositiveSemidefiniteMatrix& out) { + toRos_MatrixIncludedComponents(in.componentsIncludedIntheMatrix, out.components_included_inthe_matrix); + toRos_LowerTriangularPositiveSemidefiniteMatrixColumns(in.matrix, out.matrix); +} + +void toStruct_LowerTriangularPositiveSemidefiniteMatrix(const cam_ts_msgs::LowerTriangularPositiveSemidefiniteMatrix& in, cam_ts_LowerTriangularPositiveSemidefiniteMatrix_t& out) { + memset(&out, 0, sizeof(cam_ts_LowerTriangularPositiveSemidefiniteMatrix_t)); + + toStruct_MatrixIncludedComponents(in.components_included_inthe_matrix, out.componentsIncludedIntheMatrix); + toStruct_LowerTriangularPositiveSemidefiniteMatrixColumns(in.matrix, out.matrix); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrixColumns.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrixColumns.h new file mode 100644 index 000000000..e6b6d13e1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowerTriangularPositiveSemidefiniteMatrixColumns.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_LowerTriangularPositiveSemidefiniteMatrixColumns(const cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_t& in, cam_ts_msgs::LowerTriangularPositiveSemidefiniteMatrixColumns& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::CorrelationColumn el; + toRos_CorrelationColumn(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_LowerTriangularPositiveSemidefiniteMatrixColumns(const cam_ts_msgs::LowerTriangularPositiveSemidefiniteMatrixColumns& in, cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_t& out) { + memset(&out, 0, sizeof(cam_ts_LowerTriangularPositiveSemidefiniteMatrixColumns_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_CorrelationColumn_t* el = (cam_ts_CorrelationColumn_t*) calloc(1, sizeof(cam_ts_CorrelationColumn_t)); + toStruct_CorrelationColumn(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapPosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapPosition.h new file mode 100644 index 000000000..6f656d409 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapPosition.h @@ -0,0 +1,85 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MapPosition(const cam_ts_MapPosition_t& in, cam_ts_msgs::MapPosition& out) { + if (in.mapReference) { + toRos_MapReference(*in.mapReference, out.map_reference); + out.map_reference_is_present = true; + } + if (in.laneId) { + toRos_Identifier1B(*in.laneId, out.lane_id); + out.lane_id_is_present = true; + } + if (in.connectionId) { + toRos_Identifier1B(*in.connectionId, out.connection_id); + out.connection_id_is_present = true; + } + if (in.longitudinalLanePosition) { + toRos_LongitudinalLanePosition(*in.longitudinalLanePosition, out.longitudinal_lane_position); + out.longitudinal_lane_position_is_present = true; + } +} + +void toStruct_MapPosition(const cam_ts_msgs::MapPosition& in, cam_ts_MapPosition_t& out) { + memset(&out, 0, sizeof(cam_ts_MapPosition_t)); + + if (in.map_reference_is_present) { + out.mapReference = (cam_ts_MapReference_t*) calloc(1, sizeof(cam_ts_MapReference_t)); + toStruct_MapReference(in.map_reference, *out.mapReference); + } + if (in.lane_id_is_present) { + out.laneId = (cam_ts_Identifier1B_t*) calloc(1, sizeof(cam_ts_Identifier1B_t)); + toStruct_Identifier1B(in.lane_id, *out.laneId); + } + if (in.connection_id_is_present) { + out.connectionId = (cam_ts_Identifier1B_t*) calloc(1, sizeof(cam_ts_Identifier1B_t)); + toStruct_Identifier1B(in.connection_id, *out.connectionId); + } + if (in.longitudinal_lane_position_is_present) { + out.longitudinalLanePosition = (cam_ts_LongitudinalLanePosition_t*) calloc(1, sizeof(cam_ts_LongitudinalLanePosition_t)); + toStruct_LongitudinalLanePosition(in.longitudinal_lane_position, *out.longitudinalLanePosition); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapReference.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapReference.h new file mode 100644 index 000000000..e4fa957c1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapReference.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MapReference(const cam_ts_MapReference_t& in, cam_ts_msgs::MapReference& out) { + switch (in.present) { + case cam_ts_MapReference_PR_roadsegment: + toRos_RoadSegmentReferenceId(in.choice.roadsegment, out.roadsegment); + out.choice = cam_ts_msgs::MapReference::CHOICE_ROADSEGMENT; + break; + case cam_ts_MapReference_PR_intersection: + toRos_IntersectionReferenceId(in.choice.intersection, out.intersection); + out.choice = cam_ts_msgs::MapReference::CHOICE_INTERSECTION; + break; + default: break; + } +} + +void toStruct_MapReference(const cam_ts_msgs::MapReference& in, cam_ts_MapReference_t& out) { + memset(&out, 0, sizeof(cam_ts_MapReference_t)); + + switch (in.choice) { + case cam_ts_msgs::MapReference::CHOICE_ROADSEGMENT: + toStruct_RoadSegmentReferenceId(in.roadsegment, out.choice.roadsegment); + out.present = cam_ts_MapReference_PR::cam_ts_MapReference_PR_roadsegment; + break; + case cam_ts_msgs::MapReference::CHOICE_INTERSECTION: + toStruct_IntersectionReferenceId(in.intersection, out.choice.intersection); + out.present = cam_ts_MapReference_PR::cam_ts_MapReference_PR_intersection; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapReferences.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapReferences.h new file mode 100644 index 000000000..377329aa9 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapReferences.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MapReferences(const cam_ts_MapReferences_t& in, cam_ts_msgs::MapReferences& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::MapReference el; + toRos_MapReference(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_MapReferences(const cam_ts_msgs::MapReferences& in, cam_ts_MapReferences_t& out) { + memset(&out, 0, sizeof(cam_ts_MapReferences_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_MapReference_t* el = (cam_ts_MapReference_t*) calloc(1, sizeof(cam_ts_MapReference_t)); + toStruct_MapReference(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemConfiguration.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemConfiguration.h new file mode 100644 index 000000000..e91dcab09 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemConfiguration.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MapemConfiguration(const cam_ts_MapemConfiguration_t& in, cam_ts_msgs::MapemConfiguration& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::MapemElementReference el; + toRos_MapemElementReference(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_MapemConfiguration(const cam_ts_msgs::MapemConfiguration& in, cam_ts_MapemConfiguration_t& out) { + memset(&out, 0, sizeof(cam_ts_MapemConfiguration_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_MapemElementReference_t* el = (cam_ts_MapemElementReference_t*) calloc(1, sizeof(cam_ts_MapemElementReference_t)); + toStruct_MapemElementReference(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemConnectionList.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemConnectionList.h new file mode 100644 index 000000000..0426df942 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemConnectionList.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MapemConnectionList(const cam_ts_MapemConnectionList_t& in, cam_ts_msgs::MapemConnectionList& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::Identifier1B el; + toRos_Identifier1B(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_MapemConnectionList(const cam_ts_msgs::MapemConnectionList& in, cam_ts_MapemConnectionList_t& out) { + memset(&out, 0, sizeof(cam_ts_MapemConnectionList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_Identifier1B_t* el = (cam_ts_Identifier1B_t*) calloc(1, sizeof(cam_ts_Identifier1B_t)); + toStruct_Identifier1B(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemElementReference.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemElementReference.h new file mode 100644 index 000000000..8ea570e06 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemElementReference.h @@ -0,0 +1,77 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MapemElementReference(const cam_ts_MapemElementReference_t& in, cam_ts_msgs::MapemElementReference& out) { + if (in.mapReference) { + toRos_MapReference(*in.mapReference, out.map_reference); + out.map_reference_is_present = true; + } + if (in.laneIds) { + toRos_MapemLaneList(*in.laneIds, out.lane_ids); + out.lane_ids_is_present = true; + } + if (in.connectionIds) { + toRos_MapemConnectionList(*in.connectionIds, out.connection_ids); + out.connection_ids_is_present = true; + } +} + +void toStruct_MapemElementReference(const cam_ts_msgs::MapemElementReference& in, cam_ts_MapemElementReference_t& out) { + memset(&out, 0, sizeof(cam_ts_MapemElementReference_t)); + + if (in.map_reference_is_present) { + out.mapReference = (cam_ts_MapReference_t*) calloc(1, sizeof(cam_ts_MapReference_t)); + toStruct_MapReference(in.map_reference, *out.mapReference); + } + if (in.lane_ids_is_present) { + out.laneIds = (cam_ts_MapemLaneList_t*) calloc(1, sizeof(cam_ts_MapemLaneList_t)); + toStruct_MapemLaneList(in.lane_ids, *out.laneIds); + } + if (in.connection_ids_is_present) { + out.connectionIds = (cam_ts_MapemConnectionList_t*) calloc(1, sizeof(cam_ts_MapemConnectionList_t)); + toStruct_MapemConnectionList(in.connection_ids, *out.connectionIds); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemLaneList.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemLaneList.h new file mode 100644 index 000000000..a02e745f6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMapemLaneList.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MapemLaneList(const cam_ts_MapemLaneList_t& in, cam_ts_msgs::MapemLaneList& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::Identifier1B el; + toRos_Identifier1B(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_MapemLaneList(const cam_ts_msgs::MapemLaneList& in, cam_ts_MapemLaneList_t& out) { + memset(&out, 0, sizeof(cam_ts_MapemLaneList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_Identifier1B_t* el = (cam_ts_Identifier1B_t*) calloc(1, sizeof(cam_ts_Identifier1B_t)); + toStruct_Identifier1B(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMatrixIncludedComponents.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMatrixIncludedComponents.h new file mode 100644 index 000000000..499fc896d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMatrixIncludedComponents.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MatrixIncludedComponents(const cam_ts_MatrixIncludedComponents_t& in, cam_ts_msgs::MatrixIncludedComponents& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_MatrixIncludedComponents(const cam_ts_msgs::MatrixIncludedComponents& in, cam_ts_MatrixIncludedComponents_t& out) { + memset(&out, 0, sizeof(cam_ts_MatrixIncludedComponents_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageId.h new file mode 100644 index 000000000..0fe4a40a1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageId.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MessageId(const cam_ts_MessageId_t& in, cam_ts_msgs::MessageId& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_MessageId(const cam_ts_msgs::MessageId& in, cam_ts_MessageId_t& out) { + memset(&out, 0, sizeof(cam_ts_MessageId_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageRateHz.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageRateHz.h new file mode 100644 index 000000000..ae686a0ad --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageRateHz.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MessageRateHz(const cam_ts_MessageRateHz_t& in, cam_ts_msgs::MessageRateHz& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in.mantissa, out.mantissa); + etsi_its_primitives_conversion::toRos_INTEGER(in.exponent, out.exponent); +} + +void toStruct_MessageRateHz(const cam_ts_msgs::MessageRateHz& in, cam_ts_MessageRateHz_t& out) { + memset(&out, 0, sizeof(cam_ts_MessageRateHz_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.mantissa, out.mantissa); + etsi_its_primitives_conversion::toStruct_INTEGER(in.exponent, out.exponent); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageSegmentationInfo.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageSegmentationInfo.h new file mode 100644 index 000000000..740e45b52 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageSegmentationInfo.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MessageSegmentationInfo(const cam_ts_MessageSegmentationInfo_t& in, cam_ts_msgs::MessageSegmentationInfo& out) { + toRos_CardinalNumber3b(in.totalMsgNo, out.total_msg_no); + toRos_OrdinalNumber3b(in.thisMsgNo, out.this_msg_no); +} + +void toStruct_MessageSegmentationInfo(const cam_ts_msgs::MessageSegmentationInfo& in, cam_ts_MessageSegmentationInfo_t& out) { + memset(&out, 0, sizeof(cam_ts_MessageSegmentationInfo_t)); + + toStruct_CardinalNumber3b(in.total_msg_no, out.totalMsgNo); + toStruct_OrdinalNumber3b(in.this_msg_no, out.thisMsgNo); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMetaInformation.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMetaInformation.h new file mode 100644 index 000000000..c3366a620 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMetaInformation.h @@ -0,0 +1,65 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MetaInformation(const cam_ts_MetaInformation_t& in, cam_ts_msgs::MetaInformation& out) { + toRos_SensorTypes(in.usedDetectionInformation, out.used_detection_information); + toRos_StoredInformationType(in.usedStoredInformation, out.used_stored_information); + if (in.confidenceValue) { + toRos_ConfidenceLevel(*in.confidenceValue, out.confidence_value); + out.confidence_value_is_present = true; + } +} + +void toStruct_MetaInformation(const cam_ts_msgs::MetaInformation& in, cam_ts_MetaInformation_t& out) { + memset(&out, 0, sizeof(cam_ts_MetaInformation_t)); + + toStruct_SensorTypes(in.used_detection_information, out.usedDetectionInformation); + toStruct_StoredInformationType(in.used_stored_information, out.usedStoredInformation); + if (in.confidence_value_is_present) { + out.confidenceValue = (cam_ts_ConfidenceLevel_t*) calloc(1, sizeof(cam_ts_ConfidenceLevel_t)); + toStruct_ConfidenceLevel(in.confidence_value, *out.confidenceValue); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMitigationForTechnologies.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMitigationForTechnologies.h new file mode 100644 index 000000000..e5d14c1c4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMitigationForTechnologies.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MitigationForTechnologies(const cam_ts_MitigationForTechnologies_t& in, cam_ts_msgs::MitigationForTechnologies& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::MitigationPerTechnologyClass el; + toRos_MitigationPerTechnologyClass(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_MitigationForTechnologies(const cam_ts_msgs::MitigationForTechnologies& in, cam_ts_MitigationForTechnologies_t& out) { + memset(&out, 0, sizeof(cam_ts_MitigationForTechnologies_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_MitigationPerTechnologyClass_t* el = (cam_ts_MitigationPerTechnologyClass_t*) calloc(1, sizeof(cam_ts_MitigationPerTechnologyClass_t)); + toStruct_MitigationPerTechnologyClass(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMitigationPerTechnologyClass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMitigationPerTechnologyClass.h new file mode 100644 index 000000000..40e5452ae --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMitigationPerTechnologyClass.h @@ -0,0 +1,87 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_MitigationPerTechnologyClass(const cam_ts_MitigationPerTechnologyClass_t& in, cam_ts_msgs::MitigationPerTechnologyClass& out) { + toRos_AccessTechnologyClass(in.accessTechnologyClass, out.access_technology_class); + if (in.lowDutyCycle) { + etsi_its_primitives_conversion::toRos_INTEGER(*in.lowDutyCycle, out.low_duty_cycle); + out.low_duty_cycle_is_present = true; + } + if (in.powerReduction) { + etsi_its_primitives_conversion::toRos_INTEGER(*in.powerReduction, out.power_reduction); + out.power_reduction_is_present = true; + } + if (in.dmcToffLimit) { + etsi_its_primitives_conversion::toRos_INTEGER(*in.dmcToffLimit, out.dmc_toff_limit); + out.dmc_toff_limit_is_present = true; + } + if (in.dmcTonLimit) { + etsi_its_primitives_conversion::toRos_INTEGER(*in.dmcTonLimit, out.dmc_ton_limit); + out.dmc_ton_limit_is_present = true; + } +} + +void toStruct_MitigationPerTechnologyClass(const cam_ts_msgs::MitigationPerTechnologyClass& in, cam_ts_MitigationPerTechnologyClass_t& out) { + memset(&out, 0, sizeof(cam_ts_MitigationPerTechnologyClass_t)); + + toStruct_AccessTechnologyClass(in.access_technology_class, out.accessTechnologyClass); + if (in.low_duty_cycle_is_present) { + out.lowDutyCycle = (INTEGER_t*) calloc(1, sizeof(INTEGER_t)); + etsi_its_primitives_conversion::toStruct_INTEGER(in.low_duty_cycle, *out.lowDutyCycle); + } + if (in.power_reduction_is_present) { + out.powerReduction = (INTEGER_t*) calloc(1, sizeof(INTEGER_t)); + etsi_its_primitives_conversion::toStruct_INTEGER(in.power_reduction, *out.powerReduction); + } + if (in.dmc_toff_limit_is_present) { + out.dmcToffLimit = (INTEGER_t*) calloc(1, sizeof(INTEGER_t)); + etsi_its_primitives_conversion::toStruct_INTEGER(in.dmc_toff_limit, *out.dmcToffLimit); + } + if (in.dmc_ton_limit_is_present) { + out.dmcTonLimit = (INTEGER_t*) calloc(1, sizeof(INTEGER_t)); + etsi_its_primitives_conversion::toStruct_INTEGER(in.dmc_ton_limit, *out.dmcTonLimit); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertNumberOfOccupants.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertNumberOfOccupants.h new file mode 100644 index 000000000..1beb1df52 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertNumberOfOccupants.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_NumberOfOccupants(const cam_ts_NumberOfOccupants_t& in, cam_ts_msgs::NumberOfOccupants& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_NumberOfOccupants(const cam_ts_msgs::NumberOfOccupants& in, cam_ts_NumberOfOccupants_t& out) { + memset(&out, 0, sizeof(cam_ts_NumberOfOccupants_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClass.h new file mode 100644 index 000000000..cf3724875 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClass.h @@ -0,0 +1,92 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ObjectClass(const cam_ts_ObjectClass_t& in, cam_ts_msgs::ObjectClass& out) { + switch (in.present) { + case cam_ts_ObjectClass_PR_vehicleSubClass: + toRos_TrafficParticipantType(in.choice.vehicleSubClass, out.vehicle_sub_class); + out.choice = cam_ts_msgs::ObjectClass::CHOICE_VEHICLE_SUB_CLASS; + break; + case cam_ts_ObjectClass_PR_vruSubClass: + toRos_VruProfileAndSubprofile(in.choice.vruSubClass, out.vru_sub_class); + out.choice = cam_ts_msgs::ObjectClass::CHOICE_VRU_SUB_CLASS; + break; + case cam_ts_ObjectClass_PR_groupSubClass: + toRos_VruClusterInformation(in.choice.groupSubClass, out.group_sub_class); + out.choice = cam_ts_msgs::ObjectClass::CHOICE_GROUP_SUB_CLASS; + break; + case cam_ts_ObjectClass_PR_otherSubClass: + toRos_OtherSubClass(in.choice.otherSubClass, out.other_sub_class); + out.choice = cam_ts_msgs::ObjectClass::CHOICE_OTHER_SUB_CLASS; + break; + default: break; + } +} + +void toStruct_ObjectClass(const cam_ts_msgs::ObjectClass& in, cam_ts_ObjectClass_t& out) { + memset(&out, 0, sizeof(cam_ts_ObjectClass_t)); + + switch (in.choice) { + case cam_ts_msgs::ObjectClass::CHOICE_VEHICLE_SUB_CLASS: + toStruct_TrafficParticipantType(in.vehicle_sub_class, out.choice.vehicleSubClass); + out.present = cam_ts_ObjectClass_PR::cam_ts_ObjectClass_PR_vehicleSubClass; + break; + case cam_ts_msgs::ObjectClass::CHOICE_VRU_SUB_CLASS: + toStruct_VruProfileAndSubprofile(in.vru_sub_class, out.choice.vruSubClass); + out.present = cam_ts_ObjectClass_PR::cam_ts_ObjectClass_PR_vruSubClass; + break; + case cam_ts_msgs::ObjectClass::CHOICE_GROUP_SUB_CLASS: + toStruct_VruClusterInformation(in.group_sub_class, out.choice.groupSubClass); + out.present = cam_ts_ObjectClass_PR::cam_ts_ObjectClass_PR_groupSubClass; + break; + case cam_ts_msgs::ObjectClass::CHOICE_OTHER_SUB_CLASS: + toStruct_OtherSubClass(in.other_sub_class, out.choice.otherSubClass); + out.present = cam_ts_ObjectClass_PR::cam_ts_ObjectClass_PR_otherSubClass; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClassDescription.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClassDescription.h new file mode 100644 index 000000000..a43cb08fe --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClassDescription.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ObjectClassDescription(const cam_ts_ObjectClassDescription_t& in, cam_ts_msgs::ObjectClassDescription& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::ObjectClassWithConfidence el; + toRos_ObjectClassWithConfidence(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_ObjectClassDescription(const cam_ts_msgs::ObjectClassDescription& in, cam_ts_ObjectClassDescription_t& out) { + memset(&out, 0, sizeof(cam_ts_ObjectClassDescription_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_ObjectClassWithConfidence_t* el = (cam_ts_ObjectClassWithConfidence_t*) calloc(1, sizeof(cam_ts_ObjectClassWithConfidence_t)); + toStruct_ObjectClassWithConfidence(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClassWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClassWithConfidence.h new file mode 100644 index 000000000..f78860f52 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectClassWithConfidence.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ObjectClassWithConfidence(const cam_ts_ObjectClassWithConfidence_t& in, cam_ts_msgs::ObjectClassWithConfidence& out) { + toRos_ObjectClass(in.objectClass, out.object_class); + toRos_ConfidenceLevel(in.confidence, out.confidence); +} + +void toStruct_ObjectClassWithConfidence(const cam_ts_msgs::ObjectClassWithConfidence& in, cam_ts_ObjectClassWithConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_ObjectClassWithConfidence_t)); + + toStruct_ObjectClass(in.object_class, out.objectClass); + toStruct_ConfidenceLevel(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimension.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimension.h new file mode 100644 index 000000000..43fc7488a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimension.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ObjectDimension(const cam_ts_ObjectDimension_t& in, cam_ts_msgs::ObjectDimension& out) { + toRos_ObjectDimensionValue(in.value, out.value); + toRos_ObjectDimensionConfidence(in.confidence, out.confidence); +} + +void toStruct_ObjectDimension(const cam_ts_msgs::ObjectDimension& in, cam_ts_ObjectDimension_t& out) { + memset(&out, 0, sizeof(cam_ts_ObjectDimension_t)); + + toStruct_ObjectDimensionValue(in.value, out.value); + toStruct_ObjectDimensionConfidence(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimensionConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimensionConfidence.h new file mode 100644 index 000000000..339baaf39 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimensionConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ObjectDimensionConfidence(const cam_ts_ObjectDimensionConfidence_t& in, cam_ts_msgs::ObjectDimensionConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ObjectDimensionConfidence(const cam_ts_msgs::ObjectDimensionConfidence& in, cam_ts_ObjectDimensionConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_ObjectDimensionConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimensionValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimensionValue.h new file mode 100644 index 000000000..ed53ab135 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectDimensionValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ObjectDimensionValue(const cam_ts_ObjectDimensionValue_t& in, cam_ts_msgs::ObjectDimensionValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ObjectDimensionValue(const cam_ts_msgs::ObjectDimensionValue& in, cam_ts_ObjectDimensionValue_t& out) { + memset(&out, 0, sizeof(cam_ts_ObjectDimensionValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectFace.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectFace.h new file mode 100644 index 000000000..47025cafb --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectFace.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ObjectFace(const cam_ts_ObjectFace_t& in, cam_ts_msgs::ObjectFace& out) { + out.value = in; +} + +void toStruct_ObjectFace(const cam_ts_msgs::ObjectFace& in, cam_ts_ObjectFace_t& out) { + memset(&out, 0, sizeof(cam_ts_ObjectFace_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectPerceptionQuality.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectPerceptionQuality.h new file mode 100644 index 000000000..2c860d351 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertObjectPerceptionQuality.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ObjectPerceptionQuality(const cam_ts_ObjectPerceptionQuality_t& in, cam_ts_msgs::ObjectPerceptionQuality& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ObjectPerceptionQuality(const cam_ts_msgs::ObjectPerceptionQuality& in, cam_ts_ObjectPerceptionQuality_t& out) { + memset(&out, 0, sizeof(cam_ts_ObjectPerceptionQuality_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOccupiedLanesWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOccupiedLanesWithConfidence.h new file mode 100644 index 000000000..9898e5e29 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOccupiedLanesWithConfidence.h @@ -0,0 +1,67 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_OccupiedLanesWithConfidence(const cam_ts_OccupiedLanesWithConfidence_t& in, cam_ts_msgs::OccupiedLanesWithConfidence& out) { + etsi_its_primitives_conversion::toRos_LanePositionOptions[](in.lanePositionBased, out.lane_position_based); + if (in.mapBased) { + etsi_its_primitives_conversion::toRos_MapPosition[](*in.mapBased, out.map_based); + out.map_based_is_present = true; + } + toRos_MetaInformation(in.confidence, out.confidence); +} + +void toStruct_OccupiedLanesWithConfidence(const cam_ts_msgs::OccupiedLanesWithConfidence& in, cam_ts_OccupiedLanesWithConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_OccupiedLanesWithConfidence_t)); + + etsi_its_primitives_conversion::toStruct_LanePositionOptions[](in.lane_position_based, out.lanePositionBased); + if (in.map_based_is_present) { + out.mapBased = (MapPosition[]_t*) calloc(1, sizeof(MapPosition[]_t)); + etsi_its_primitives_conversion::toStruct_MapPosition[](in.map_based, *out.mapBased); + } + toStruct_MetaInformation(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOpeningDaysHours.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOpeningDaysHours.h new file mode 100644 index 000000000..ce86201f1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOpeningDaysHours.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_OpeningDaysHours(const cam_ts_OpeningDaysHours_t& in, cam_ts_msgs::OpeningDaysHours& out) { + etsi_its_primitives_conversion::toRos_UTF8String(in, out.value); +} + +void toStruct_OpeningDaysHours(const cam_ts_msgs::OpeningDaysHours& in, cam_ts_OpeningDaysHours_t& out) { + memset(&out, 0, sizeof(cam_ts_OpeningDaysHours_t)); + + etsi_its_primitives_conversion::toStruct_UTF8String(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber1B.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber1B.h new file mode 100644 index 000000000..929a7bb3e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber1B.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_OrdinalNumber1B(const cam_ts_OrdinalNumber1B_t& in, cam_ts_msgs::OrdinalNumber1B& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OrdinalNumber1B(const cam_ts_msgs::OrdinalNumber1B& in, cam_ts_OrdinalNumber1B_t& out) { + memset(&out, 0, sizeof(cam_ts_OrdinalNumber1B_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber3b.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber3b.h new file mode 100644 index 000000000..ff958d0b9 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber3b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_OrdinalNumber3b(const cam_ts_OrdinalNumber3b_t& in, cam_ts_msgs::OrdinalNumber3b& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OrdinalNumber3b(const cam_ts_msgs::OrdinalNumber3b& in, cam_ts_OrdinalNumber3b_t& out) { + memset(&out, 0, sizeof(cam_ts_OrdinalNumber3b_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOtherSubClass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOtherSubClass.h new file mode 100644 index 000000000..a90ec1bb0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOtherSubClass.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_OtherSubClass(const cam_ts_OtherSubClass_t& in, cam_ts_msgs::OtherSubClass& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OtherSubClass(const cam_ts_msgs::OtherSubClass& in, cam_ts_OtherSubClass_t& out) { + memset(&out, 0, sizeof(cam_ts_OtherSubClass_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPath.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPath.h new file mode 100644 index 000000000..5932553f4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPath.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Path(const cam_ts_Path_t& in, cam_ts_msgs::Path& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::PathPoint el; + toRos_PathPoint(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_Path(const cam_ts_msgs::Path& in, cam_ts_Path_t& out) { + memset(&out, 0, sizeof(cam_ts_Path_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_PathPoint_t* el = (cam_ts_PathPoint_t*) calloc(1, sizeof(cam_ts_PathPoint_t)); + toStruct_PathPoint(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTime.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTime.h new file mode 100644 index 000000000..90a0aefeb --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTime.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathDeltaTime(const cam_ts_PathDeltaTime_t& in, cam_ts_msgs::PathDeltaTime& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PathDeltaTime(const cam_ts_msgs::PathDeltaTime& in, cam_ts_PathDeltaTime_t& out) { + memset(&out, 0, sizeof(cam_ts_PathDeltaTime_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTimeChoice.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTimeChoice.h new file mode 100644 index 000000000..a9ffb3a13 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTimeChoice.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathDeltaTimeChoice(const cam_ts_PathDeltaTimeChoice_t& in, cam_ts_msgs::PathDeltaTimeChoice& out) { + switch (in.present) { + case cam_ts_PathDeltaTimeChoice_PR_deltaTimeHighPrecision: + toRos_DeltaTimeTenthOfSecond(in.choice.deltaTimeHighPrecision, out.delta_time_high_precision); + out.choice = cam_ts_msgs::PathDeltaTimeChoice::CHOICE_DELTA_TIME_HIGH_PRECISION; + break; + case cam_ts_PathDeltaTimeChoice_PR_deltaTimeBigRange: + toRos_DeltaTimeTenSeconds(in.choice.deltaTimeBigRange, out.delta_time_big_range); + out.choice = cam_ts_msgs::PathDeltaTimeChoice::CHOICE_DELTA_TIME_BIG_RANGE; + break; + default: break; + } +} + +void toStruct_PathDeltaTimeChoice(const cam_ts_msgs::PathDeltaTimeChoice& in, cam_ts_PathDeltaTimeChoice_t& out) { + memset(&out, 0, sizeof(cam_ts_PathDeltaTimeChoice_t)); + + switch (in.choice) { + case cam_ts_msgs::PathDeltaTimeChoice::CHOICE_DELTA_TIME_HIGH_PRECISION: + toStruct_DeltaTimeTenthOfSecond(in.delta_time_high_precision, out.choice.deltaTimeHighPrecision); + out.present = cam_ts_PathDeltaTimeChoice_PR::cam_ts_PathDeltaTimeChoice_PR_deltaTimeHighPrecision; + break; + case cam_ts_msgs::PathDeltaTimeChoice::CHOICE_DELTA_TIME_BIG_RANGE: + toStruct_DeltaTimeTenSeconds(in.delta_time_big_range, out.choice.deltaTimeBigRange); + out.present = cam_ts_PathDeltaTimeChoice_PR::cam_ts_PathDeltaTimeChoice_PR_deltaTimeBigRange; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathExtended.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathExtended.h new file mode 100644 index 000000000..db4ea4414 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathExtended.h @@ -0,0 +1,57 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathExtended(const cam_ts_PathExtended_t& in, cam_ts_msgs::PathExtended& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in.pointOfEventZone, out.point_of_event_zone); + toRos_Path(in.path, out.path); +} + +void toStruct_PathExtended(const cam_ts_msgs::PathExtended& in, cam_ts_PathExtended_t& out) { + memset(&out, 0, sizeof(cam_ts_PathExtended_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.point_of_event_zone, out.pointOfEventZone); + toStruct_Path(in.path, out.path); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathHistory.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathHistory.h new file mode 100644 index 000000000..5f813a9ef --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathHistory.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathHistory(const cam_ts_PathHistory_t& in, cam_ts_msgs::PathHistory& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::PathPoint el; + toRos_PathPoint(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_PathHistory(const cam_ts_msgs::PathHistory& in, cam_ts_PathHistory_t& out) { + memset(&out, 0, sizeof(cam_ts_PathHistory_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_PathPoint_t* el = (cam_ts_PathPoint_t*) calloc(1, sizeof(cam_ts_PathPoint_t)); + toStruct_PathPoint(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathId.h new file mode 100644 index 000000000..44eaff575 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathId.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathId(const cam_ts_PathId_t& in, cam_ts_msgs::PathId& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PathId(const cam_ts_msgs::PathId& in, cam_ts_PathId_t& out) { + memset(&out, 0, sizeof(cam_ts_PathId_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPoint.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPoint.h new file mode 100644 index 000000000..8c94a40d3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPoint.h @@ -0,0 +1,62 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathPoint(const cam_ts_PathPoint_t& in, cam_ts_msgs::PathPoint& out) { + toRos_DeltaReferencePosition(in.pathPosition, out.path_position); + if (in.pathDeltaTime) { + toRos_PathDeltaTime(*in.pathDeltaTime, out.path_delta_time); + out.path_delta_time_is_present = true; + } +} + +void toStruct_PathPoint(const cam_ts_msgs::PathPoint& in, cam_ts_PathPoint_t& out) { + memset(&out, 0, sizeof(cam_ts_PathPoint_t)); + + toStruct_DeltaReferencePosition(in.path_position, out.pathPosition); + if (in.path_delta_time_is_present) { + out.pathDeltaTime = (cam_ts_PathDeltaTime_t*) calloc(1, sizeof(cam_ts_PathDeltaTime_t)); + toStruct_PathDeltaTime(in.path_delta_time, *out.pathDeltaTime); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPointPredicted.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPointPredicted.h new file mode 100644 index 000000000..b96013e9b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPointPredicted.h @@ -0,0 +1,103 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathPointPredicted(const cam_ts_PathPointPredicted_t& in, cam_ts_msgs::PathPointPredicted& out) { + toRos_DeltaLatitude(in.deltaLatitude, out.delta_latitude); + toRos_DeltaLongitude(in.deltaLongitude, out.delta_longitude); + if (in.horizontalPositionConfidence) { + toRos_PosConfidenceEllipse(*in.horizontalPositionConfidence, out.horizontal_position_confidence); + out.horizontal_position_confidence_is_present = true; + } + if (in.deltaAltitude) { + toRos_DeltaAltitude(*in.deltaAltitude, out.delta_altitude); + } + if (in.altitudeConfidence) { + toRos_AltitudeConfidence(*in.altitudeConfidence, out.altitude_confidence); + } + if (in.pathDeltaTime) { + toRos_PathDeltaTimeChoice(*in.pathDeltaTime, out.path_delta_time); + out.path_delta_time_is_present = true; + } + if (in.symmetricAreaOffset) { + toRos_StandardLength9b(*in.symmetricAreaOffset, out.symmetric_area_offset); + out.symmetric_area_offset_is_present = true; + } + if (in.asymmetricAreaOffset) { + toRos_StandardLength9b(*in.asymmetricAreaOffset, out.asymmetric_area_offset); + out.asymmetric_area_offset_is_present = true; + } +} + +void toStruct_PathPointPredicted(const cam_ts_msgs::PathPointPredicted& in, cam_ts_PathPointPredicted_t& out) { + memset(&out, 0, sizeof(cam_ts_PathPointPredicted_t)); + + toStruct_DeltaLatitude(in.delta_latitude, out.deltaLatitude); + toStruct_DeltaLongitude(in.delta_longitude, out.deltaLongitude); + if (in.horizontal_position_confidence_is_present) { + out.horizontalPositionConfidence = (cam_ts_PosConfidenceEllipse_t*) calloc(1, sizeof(cam_ts_PosConfidenceEllipse_t)); + toStruct_PosConfidenceEllipse(in.horizontal_position_confidence, *out.horizontalPositionConfidence); + } + out.deltaAltitude = (cam_ts_DeltaAltitude_t*) calloc(1, sizeof(cam_ts_DeltaAltitude_t)); + toStruct_DeltaAltitude(in.delta_altitude, *out.deltaAltitude); + out.altitudeConfidence = (cam_ts_AltitudeConfidence_t*) calloc(1, sizeof(cam_ts_AltitudeConfidence_t)); + toStruct_AltitudeConfidence(in.altitude_confidence, *out.altitudeConfidence); + if (in.path_delta_time_is_present) { + out.pathDeltaTime = (cam_ts_PathDeltaTimeChoice_t*) calloc(1, sizeof(cam_ts_PathDeltaTimeChoice_t)); + toStruct_PathDeltaTimeChoice(in.path_delta_time, *out.pathDeltaTime); + } + if (in.symmetric_area_offset_is_present) { + out.symmetricAreaOffset = (cam_ts_StandardLength9b_t*) calloc(1, sizeof(cam_ts_StandardLength9b_t)); + toStruct_StandardLength9b(in.symmetric_area_offset, *out.symmetricAreaOffset); + } + if (in.asymmetric_area_offset_is_present) { + out.asymmetricAreaOffset = (cam_ts_StandardLength9b_t*) calloc(1, sizeof(cam_ts_StandardLength9b_t)); + toStruct_StandardLength9b(in.asymmetric_area_offset, *out.asymmetricAreaOffset); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredicted.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredicted.h new file mode 100644 index 000000000..7dbe1fcdc --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredicted.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathPredicted(const cam_ts_PathPredicted_t& in, cam_ts_msgs::PathPredicted& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::PathPointPredicted el; + toRos_PathPointPredicted(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_PathPredicted(const cam_ts_msgs::PathPredicted& in, cam_ts_PathPredicted_t& out) { + memset(&out, 0, sizeof(cam_ts_PathPredicted_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_PathPointPredicted_t* el = (cam_ts_PathPointPredicted_t*) calloc(1, sizeof(cam_ts_PathPointPredicted_t)); + toStruct_PathPointPredicted(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredicted2.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredicted2.h new file mode 100644 index 000000000..6e34d1af3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredicted2.h @@ -0,0 +1,59 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathPredicted2(const cam_ts_PathPredicted2_t& in, cam_ts_msgs::PathPredicted2& out) { + toRos_PathPredicted(in.pathPredicted, out.path_predicted); + toRos_UsageIndication(in.usageIndication, out.usage_indication); + toRos_ConfidenceLevel(in.confidenceLevel, out.confidence_level); +} + +void toStruct_PathPredicted2(const cam_ts_msgs::PathPredicted2& in, cam_ts_PathPredicted2_t& out) { + memset(&out, 0, sizeof(cam_ts_PathPredicted2_t)); + + toStruct_PathPredicted(in.path_predicted, out.pathPredicted); + toStruct_UsageIndication(in.usage_indication, out.usageIndication); + toStruct_ConfidenceLevel(in.confidence_level, out.confidenceLevel); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredictedList.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredictedList.h new file mode 100644 index 000000000..a1c3abadf --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPredictedList.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathPredictedList(const cam_ts_PathPredictedList_t& in, cam_ts_msgs::PathPredictedList& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::PathPredicted2 el; + toRos_PathPredicted2(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_PathPredictedList(const cam_ts_msgs::PathPredictedList& in, cam_ts_PathPredictedList_t& out) { + memset(&out, 0, sizeof(cam_ts_PathPredictedList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_PathPredicted2_t* el = (cam_ts_PathPredicted2_t*) calloc(1, sizeof(cam_ts_PathPredicted2_t)); + toStruct_PathPredicted2(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathReferences.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathReferences.h new file mode 100644 index 000000000..0283fd5c8 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathReferences.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PathReferences(const cam_ts_PathReferences_t& in, cam_ts_msgs::PathReferences& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::PathId el; + toRos_PathId(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_PathReferences(const cam_ts_msgs::PathReferences& in, cam_ts_PathReferences_t& out) { + memset(&out, 0, sizeof(cam_ts_PathReferences_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_PathId_t* el = (cam_ts_PathId_t*) calloc(1, sizeof(cam_ts_PathId_t)); + toStruct_PathId(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerceivedObject.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerceivedObject.h new file mode 100644 index 000000000..aad5cc59d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerceivedObject.h @@ -0,0 +1,179 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PerceivedObject(const cam_ts_PerceivedObject_t& in, cam_ts_msgs::PerceivedObject& out) { + if (in.objectId) { + toRos_Identifier2B(*in.objectId, out.object_id); + out.object_id_is_present = true; + } + toRos_DeltaTimeMilliSecondSigned(in.measurementDeltaTime, out.measurement_delta_time); + toRos_CartesianPosition3dWithConfidence(in.position, out.position); + if (in.velocity) { + toRos_Velocity3dWithConfidence(*in.velocity, out.velocity); + out.velocity_is_present = true; + } + if (in.acceleration) { + toRos_Acceleration3dWithConfidence(*in.acceleration, out.acceleration); + out.acceleration_is_present = true; + } + if (in.angles) { + toRos_EulerAnglesWithConfidence(*in.angles, out.angles); + out.angles_is_present = true; + } + if (in.zAngularVelocity) { + toRos_CartesianAngularVelocityComponent(*in.zAngularVelocity, out.z_angular_velocity); + out.z_angular_velocity_is_present = true; + } + if (in.lowerTriangularCorrelationMatrices) { + toRos_LowerTriangularPositiveSemidefiniteMatrices(*in.lowerTriangularCorrelationMatrices, out.lower_triangular_correlation_matrices); + out.lower_triangular_correlation_matrices_is_present = true; + } + if (in.objectDimensionZ) { + toRos_ObjectDimension(*in.objectDimensionZ, out.object_dimension_z); + out.object_dimension_z_is_present = true; + } + if (in.objectDimensionY) { + toRos_ObjectDimension(*in.objectDimensionY, out.object_dimension_y); + out.object_dimension_y_is_present = true; + } + if (in.objectDimensionX) { + toRos_ObjectDimension(*in.objectDimensionX, out.object_dimension_x); + out.object_dimension_x_is_present = true; + } + if (in.objectAge) { + toRos_DeltaTimeMilliSecondSigned(*in.objectAge, out.object_age); + out.object_age_is_present = true; + } + if (in.objectPerceptionQuality) { + toRos_ObjectPerceptionQuality(*in.objectPerceptionQuality, out.object_perception_quality); + out.object_perception_quality_is_present = true; + } + if (in.sensorIdList) { + toRos_SequenceOfIdentifier1B(*in.sensorIdList, out.sensor_id_list); + out.sensor_id_list_is_present = true; + } + if (in.classification) { + toRos_ObjectClassDescription(*in.classification, out.classification); + out.classification_is_present = true; + } + if (in.mapPosition) { + toRos_MapPosition(*in.mapPosition, out.map_position); + out.map_position_is_present = true; + } +} + +void toStruct_PerceivedObject(const cam_ts_msgs::PerceivedObject& in, cam_ts_PerceivedObject_t& out) { + memset(&out, 0, sizeof(cam_ts_PerceivedObject_t)); + + if (in.object_id_is_present) { + out.objectId = (cam_ts_Identifier2B_t*) calloc(1, sizeof(cam_ts_Identifier2B_t)); + toStruct_Identifier2B(in.object_id, *out.objectId); + } + toStruct_DeltaTimeMilliSecondSigned(in.measurement_delta_time, out.measurementDeltaTime); + toStruct_CartesianPosition3dWithConfidence(in.position, out.position); + if (in.velocity_is_present) { + out.velocity = (cam_ts_Velocity3dWithConfidence_t*) calloc(1, sizeof(cam_ts_Velocity3dWithConfidence_t)); + toStruct_Velocity3dWithConfidence(in.velocity, *out.velocity); + } + if (in.acceleration_is_present) { + out.acceleration = (cam_ts_Acceleration3dWithConfidence_t*) calloc(1, sizeof(cam_ts_Acceleration3dWithConfidence_t)); + toStruct_Acceleration3dWithConfidence(in.acceleration, *out.acceleration); + } + if (in.angles_is_present) { + out.angles = (cam_ts_EulerAnglesWithConfidence_t*) calloc(1, sizeof(cam_ts_EulerAnglesWithConfidence_t)); + toStruct_EulerAnglesWithConfidence(in.angles, *out.angles); + } + if (in.z_angular_velocity_is_present) { + out.zAngularVelocity = (cam_ts_CartesianAngularVelocityComponent_t*) calloc(1, sizeof(cam_ts_CartesianAngularVelocityComponent_t)); + toStruct_CartesianAngularVelocityComponent(in.z_angular_velocity, *out.zAngularVelocity); + } + if (in.lower_triangular_correlation_matrices_is_present) { + out.lowerTriangularCorrelationMatrices = (cam_ts_LowerTriangularPositiveSemidefiniteMatrices_t*) calloc(1, sizeof(cam_ts_LowerTriangularPositiveSemidefiniteMatrices_t)); + toStruct_LowerTriangularPositiveSemidefiniteMatrices(in.lower_triangular_correlation_matrices, *out.lowerTriangularCorrelationMatrices); + } + if (in.object_dimension_z_is_present) { + out.objectDimensionZ = (cam_ts_ObjectDimension_t*) calloc(1, sizeof(cam_ts_ObjectDimension_t)); + toStruct_ObjectDimension(in.object_dimension_z, *out.objectDimensionZ); + } + if (in.object_dimension_y_is_present) { + out.objectDimensionY = (cam_ts_ObjectDimension_t*) calloc(1, sizeof(cam_ts_ObjectDimension_t)); + toStruct_ObjectDimension(in.object_dimension_y, *out.objectDimensionY); + } + if (in.object_dimension_x_is_present) { + out.objectDimensionX = (cam_ts_ObjectDimension_t*) calloc(1, sizeof(cam_ts_ObjectDimension_t)); + toStruct_ObjectDimension(in.object_dimension_x, *out.objectDimensionX); + } + if (in.object_age_is_present) { + out.objectAge = (cam_ts_DeltaTimeMilliSecondSigned_t*) calloc(1, sizeof(cam_ts_DeltaTimeMilliSecondSigned_t)); + toStruct_DeltaTimeMilliSecondSigned(in.object_age, *out.objectAge); + } + if (in.object_perception_quality_is_present) { + out.objectPerceptionQuality = (cam_ts_ObjectPerceptionQuality_t*) calloc(1, sizeof(cam_ts_ObjectPerceptionQuality_t)); + toStruct_ObjectPerceptionQuality(in.object_perception_quality, *out.objectPerceptionQuality); + } + if (in.sensor_id_list_is_present) { + out.sensorIdList = (cam_ts_SequenceOfIdentifier1B_t*) calloc(1, sizeof(cam_ts_SequenceOfIdentifier1B_t)); + toStruct_SequenceOfIdentifier1B(in.sensor_id_list, *out.sensorIdList); + } + if (in.classification_is_present) { + out.classification = (cam_ts_ObjectClassDescription_t*) calloc(1, sizeof(cam_ts_ObjectClassDescription_t)); + toStruct_ObjectClassDescription(in.classification, *out.classification); + } + if (in.map_position_is_present) { + out.mapPosition = (cam_ts_MapPosition_t*) calloc(1, sizeof(cam_ts_MapPosition_t)); + toStruct_MapPosition(in.map_position, *out.mapPosition); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerformanceClass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerformanceClass.h new file mode 100644 index 000000000..d27d30320 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerformanceClass.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PerformanceClass(const cam_ts_PerformanceClass_t& in, cam_ts_msgs::PerformanceClass& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PerformanceClass(const cam_ts_msgs::PerformanceClass& in, cam_ts_PerformanceClass_t& out) { + memset(&out, 0, sizeof(cam_ts_PerformanceClass_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPhoneNumber.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPhoneNumber.h new file mode 100644 index 000000000..949b53dde --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPhoneNumber.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PhoneNumber(const cam_ts_PhoneNumber_t& in, cam_ts_msgs::PhoneNumber& out) { + etsi_its_primitives_conversion::toRos_NumericString(in, out.value); +} + +void toStruct_PhoneNumber(const cam_ts_msgs::PhoneNumber& in, cam_ts_PhoneNumber_t& out) { + memset(&out, 0, sizeof(cam_ts_PhoneNumber_t)); + + etsi_its_primitives_conversion::toStruct_NumericString(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPolygonalShape.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPolygonalShape.h new file mode 100644 index 000000000..f514b9ad4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPolygonalShape.h @@ -0,0 +1,71 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PolygonalShape(const cam_ts_PolygonalShape_t& in, cam_ts_msgs::PolygonalShape& out) { + if (in.shapeReferencePoint) { + toRos_CartesianPosition3d(*in.shapeReferencePoint, out.shape_reference_point); + out.shape_reference_point_is_present = true; + } + toRos_SequenceOfCartesianPosition3d(in.polygon, out.polygon); + if (in.height) { + toRos_StandardLength12b(*in.height, out.height); + out.height_is_present = true; + } +} + +void toStruct_PolygonalShape(const cam_ts_msgs::PolygonalShape& in, cam_ts_PolygonalShape_t& out) { + memset(&out, 0, sizeof(cam_ts_PolygonalShape_t)); + + if (in.shape_reference_point_is_present) { + out.shapeReferencePoint = (cam_ts_CartesianPosition3d_t*) calloc(1, sizeof(cam_ts_CartesianPosition3d_t)); + toStruct_CartesianPosition3d(in.shape_reference_point, *out.shapeReferencePoint); + } + toStruct_SequenceOfCartesianPosition3d(in.polygon, out.polygon); + if (in.height_is_present) { + out.height = (cam_ts_StandardLength12b_t*) calloc(1, sizeof(cam_ts_StandardLength12b_t)); + toStruct_StandardLength12b(in.height, *out.height); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosCentMass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosCentMass.h new file mode 100644 index 000000000..1fb5c1417 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosCentMass.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PosCentMass(const cam_ts_PosCentMass_t& in, cam_ts_msgs::PosCentMass& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PosCentMass(const cam_ts_msgs::PosCentMass& in, cam_ts_PosCentMass_t& out) { + memset(&out, 0, sizeof(cam_ts_PosCentMass_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosConfidenceEllipse.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosConfidenceEllipse.h new file mode 100644 index 000000000..d3df71ced --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosConfidenceEllipse.h @@ -0,0 +1,58 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PosConfidenceEllipse(const cam_ts_PosConfidenceEllipse_t& in, cam_ts_msgs::PosConfidenceEllipse& out) { + toRos_SemiAxisLength(in.semiMajorConfidence, out.semi_major_confidence); + toRos_SemiAxisLength(in.semiMinorConfidence, out.semi_minor_confidence); + toRos_HeadingValue(in.semiMajorOrientation, out.semi_major_orientation); +} + +void toStruct_PosConfidenceEllipse(const cam_ts_msgs::PosConfidenceEllipse& in, cam_ts_PosConfidenceEllipse_t& out) { + memset(&out, 0, sizeof(cam_ts_PosConfidenceEllipse_t)); + + toStruct_SemiAxisLength(in.semi_major_confidence, out.semiMajorConfidence); + toStruct_SemiAxisLength(in.semi_minor_confidence, out.semiMinorConfidence); + toStruct_HeadingValue(in.semi_major_orientation, out.semiMajorOrientation); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosFrontAx.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosFrontAx.h new file mode 100644 index 000000000..24cc4e515 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosFrontAx.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PosFrontAx(const cam_ts_PosFrontAx_t& in, cam_ts_msgs::PosFrontAx& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PosFrontAx(const cam_ts_msgs::PosFrontAx& in, cam_ts_PosFrontAx_t& out) { + memset(&out, 0, sizeof(cam_ts_PosFrontAx_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosLonCarr.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosLonCarr.h new file mode 100644 index 000000000..833d785c1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosLonCarr.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PosLonCarr(const cam_ts_PosLonCarr_t& in, cam_ts_msgs::PosLonCarr& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PosLonCarr(const cam_ts_msgs::PosLonCarr& in, cam_ts_PosLonCarr_t& out) { + memset(&out, 0, sizeof(cam_ts_PosLonCarr_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosPillar.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosPillar.h new file mode 100644 index 000000000..302b4f784 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosPillar.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PosPillar(const cam_ts_PosPillar_t& in, cam_ts_msgs::PosPillar& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PosPillar(const cam_ts_msgs::PosPillar& in, cam_ts_PosPillar_t& out) { + memset(&out, 0, sizeof(cam_ts_PosPillar_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosition1d.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosition1d.h new file mode 100644 index 000000000..6ce4ce15e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPosition1d.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Position1d(const cam_ts_Position1d_t& in, cam_ts_msgs::Position1d& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Position1d(const cam_ts_msgs::Position1d& in, cam_ts_Position1d_t& out) { + memset(&out, 0, sizeof(cam_ts_Position1d_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionConfidenceEllipse.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionConfidenceEllipse.h new file mode 100644 index 000000000..2d25ed4ff --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionConfidenceEllipse.h @@ -0,0 +1,58 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PositionConfidenceEllipse(const cam_ts_PositionConfidenceEllipse_t& in, cam_ts_msgs::PositionConfidenceEllipse& out) { + toRos_SemiAxisLength(in.semiMajorAxisLength, out.semi_major_axis_length); + toRos_SemiAxisLength(in.semiMinorAxisLength, out.semi_minor_axis_length); + toRos_Wgs84AngleValue(in.semiMajorAxisOrientation, out.semi_major_axis_orientation); +} + +void toStruct_PositionConfidenceEllipse(const cam_ts_msgs::PositionConfidenceEllipse& in, cam_ts_PositionConfidenceEllipse_t& out) { + memset(&out, 0, sizeof(cam_ts_PositionConfidenceEllipse_t)); + + toStruct_SemiAxisLength(in.semi_major_axis_length, out.semiMajorAxisLength); + toStruct_SemiAxisLength(in.semi_minor_axis_length, out.semiMinorAxisLength); + toStruct_Wgs84AngleValue(in.semi_major_axis_orientation, out.semiMajorAxisOrientation); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionOfOccupants.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionOfOccupants.h new file mode 100644 index 000000000..cdd6e5cba --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionOfOccupants.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PositionOfOccupants(const cam_ts_PositionOfOccupants_t& in, cam_ts_msgs::PositionOfOccupants& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_PositionOfOccupants(const cam_ts_msgs::PositionOfOccupants& in, cam_ts_PositionOfOccupants_t& out) { + memset(&out, 0, sizeof(cam_ts_PositionOfOccupants_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionOfPillars.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionOfPillars.h new file mode 100644 index 000000000..3ffbced41 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionOfPillars.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PositionOfPillars(const cam_ts_PositionOfPillars_t& in, cam_ts_msgs::PositionOfPillars& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::PosPillar el; + toRos_PosPillar(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_PositionOfPillars(const cam_ts_msgs::PositionOfPillars& in, cam_ts_PositionOfPillars_t& out) { + memset(&out, 0, sizeof(cam_ts_PositionOfPillars_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_PosPillar_t* el = (cam_ts_PosPillar_t*) calloc(1, sizeof(cam_ts_PosPillar_t)); + toStruct_PosPillar(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositioningSolutionType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositioningSolutionType.h new file mode 100644 index 000000000..31031f7f0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositioningSolutionType.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PositioningSolutionType(const cam_ts_PositioningSolutionType_t& in, cam_ts_msgs::PositioningSolutionType& out) { + out.value = in; +} + +void toStruct_PositioningSolutionType(const cam_ts_msgs::PositioningSolutionType& in, cam_ts_PositioningSolutionType_t& out) { + memset(&out, 0, sizeof(cam_ts_PositioningSolutionType_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPostCrashSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPostCrashSubCauseCode.h new file mode 100644 index 000000000..5dac620d4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPostCrashSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PostCrashSubCauseCode(const cam_ts_PostCrashSubCauseCode_t& in, cam_ts_msgs::PostCrashSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PostCrashSubCauseCode(const cam_ts_msgs::PostCrashSubCauseCode& in, cam_ts_PostCrashSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_PostCrashSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPrecipitationIntensity.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPrecipitationIntensity.h new file mode 100644 index 000000000..fa307824f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPrecipitationIntensity.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PrecipitationIntensity(const cam_ts_PrecipitationIntensity_t& in, cam_ts_msgs::PrecipitationIntensity& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PrecipitationIntensity(const cam_ts_msgs::PrecipitationIntensity& in, cam_ts_PrecipitationIntensity_t& out) { + memset(&out, 0, sizeof(cam_ts_PrecipitationIntensity_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZone.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZone.h new file mode 100644 index 000000000..3bc36421c --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZone.h @@ -0,0 +1,86 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ProtectedCommunicationZone(const cam_ts_ProtectedCommunicationZone_t& in, cam_ts_msgs::ProtectedCommunicationZone& out) { + toRos_ProtectedZoneType(in.protectedZoneType, out.protected_zone_type); + if (in.expiryTime) { + toRos_TimestampIts(*in.expiryTime, out.expiry_time); + out.expiry_time_is_present = true; + } + toRos_Latitude(in.protectedZoneLatitude, out.protected_zone_latitude); + toRos_Longitude(in.protectedZoneLongitude, out.protected_zone_longitude); + if (in.protectedZoneRadius) { + toRos_ProtectedZoneRadius(*in.protectedZoneRadius, out.protected_zone_radius); + out.protected_zone_radius_is_present = true; + } + if (in.protectedZoneId) { + toRos_ProtectedZoneId(*in.protectedZoneId, out.protected_zone_id); + out.protected_zone_id_is_present = true; + } +} + +void toStruct_ProtectedCommunicationZone(const cam_ts_msgs::ProtectedCommunicationZone& in, cam_ts_ProtectedCommunicationZone_t& out) { + memset(&out, 0, sizeof(cam_ts_ProtectedCommunicationZone_t)); + + toStruct_ProtectedZoneType(in.protected_zone_type, out.protectedZoneType); + if (in.expiry_time_is_present) { + out.expiryTime = (cam_ts_TimestampIts_t*) calloc(1, sizeof(cam_ts_TimestampIts_t)); + toStruct_TimestampIts(in.expiry_time, *out.expiryTime); + } + toStruct_Latitude(in.protected_zone_latitude, out.protectedZoneLatitude); + toStruct_Longitude(in.protected_zone_longitude, out.protectedZoneLongitude); + if (in.protected_zone_radius_is_present) { + out.protectedZoneRadius = (cam_ts_ProtectedZoneRadius_t*) calloc(1, sizeof(cam_ts_ProtectedZoneRadius_t)); + toStruct_ProtectedZoneRadius(in.protected_zone_radius, *out.protectedZoneRadius); + } + if (in.protected_zone_id_is_present) { + out.protectedZoneId = (cam_ts_ProtectedZoneId_t*) calloc(1, sizeof(cam_ts_ProtectedZoneId_t)); + toStruct_ProtectedZoneId(in.protected_zone_id, *out.protectedZoneId); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZonesRSU.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZonesRSU.h new file mode 100644 index 000000000..cc2e3cf4e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZonesRSU.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ProtectedCommunicationZonesRSU(const cam_ts_ProtectedCommunicationZonesRSU_t& in, cam_ts_msgs::ProtectedCommunicationZonesRSU& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::ProtectedCommunicationZone el; + toRos_ProtectedCommunicationZone(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_ProtectedCommunicationZonesRSU(const cam_ts_msgs::ProtectedCommunicationZonesRSU& in, cam_ts_ProtectedCommunicationZonesRSU_t& out) { + memset(&out, 0, sizeof(cam_ts_ProtectedCommunicationZonesRSU_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_ProtectedCommunicationZone_t* el = (cam_ts_ProtectedCommunicationZone_t*) calloc(1, sizeof(cam_ts_ProtectedCommunicationZone_t)); + toStruct_ProtectedCommunicationZone(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneId.h new file mode 100644 index 000000000..80caed9f8 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneId.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ProtectedZoneId(const cam_ts_ProtectedZoneId_t& in, cam_ts_msgs::ProtectedZoneId& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ProtectedZoneId(const cam_ts_msgs::ProtectedZoneId& in, cam_ts_ProtectedZoneId_t& out) { + memset(&out, 0, sizeof(cam_ts_ProtectedZoneId_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneRadius.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneRadius.h new file mode 100644 index 000000000..e3d2ec36b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneRadius.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ProtectedZoneRadius(const cam_ts_ProtectedZoneRadius_t& in, cam_ts_msgs::ProtectedZoneRadius& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ProtectedZoneRadius(const cam_ts_msgs::ProtectedZoneRadius& in, cam_ts_ProtectedZoneRadius_t& out) { + memset(&out, 0, sizeof(cam_ts_ProtectedZoneRadius_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneType.h new file mode 100644 index 000000000..7fc2a253b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneType.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ProtectedZoneType(const cam_ts_ProtectedZoneType_t& in, cam_ts_msgs::ProtectedZoneType& out) { + out.value = in; +} + +void toStruct_ProtectedZoneType(const cam_ts_msgs::ProtectedZoneType& in, cam_ts_ProtectedZoneType_t& out) { + memset(&out, 0, sizeof(cam_ts_ProtectedZoneType_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProvider.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProvider.h new file mode 100644 index 000000000..62904e022 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProvider.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Provider(const cam_ts_Provider_t& in, cam_ts_msgs::Provider& out) { + toRos_CountryCode(in.countryCode, out.country_code); + toRos_IssuerIdentifier(in.providerIdentifier, out.provider_identifier); +} + +void toStruct_Provider(const cam_ts_msgs::Provider& in, cam_ts_Provider_t& out) { + memset(&out, 0, sizeof(cam_ts_Provider_t)); + + toStruct_CountryCode(in.country_code, out.countryCode); + toStruct_IssuerIdentifier(in.provider_identifier, out.providerIdentifier); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivation.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivation.h new file mode 100644 index 000000000..17d83be1a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivation.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PtActivation(const cam_ts_PtActivation_t& in, cam_ts_msgs::PtActivation& out) { + toRos_PtActivationType(in.ptActivationType, out.pt_activation_type); + toRos_PtActivationData(in.ptActivationData, out.pt_activation_data); +} + +void toStruct_PtActivation(const cam_ts_msgs::PtActivation& in, cam_ts_PtActivation_t& out) { + memset(&out, 0, sizeof(cam_ts_PtActivation_t)); + + toStruct_PtActivationType(in.pt_activation_type, out.ptActivationType); + toStruct_PtActivationData(in.pt_activation_data, out.ptActivationData); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationData.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationData.h new file mode 100644 index 000000000..55bb4d81a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationData.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PtActivationData(const cam_ts_PtActivationData_t& in, cam_ts_msgs::PtActivationData& out) { + etsi_its_primitives_conversion::toRos_OCTET_STRING(in, out.value); +} + +void toStruct_PtActivationData(const cam_ts_msgs::PtActivationData& in, cam_ts_PtActivationData_t& out) { + memset(&out, 0, sizeof(cam_ts_PtActivationData_t)); + + etsi_its_primitives_conversion::toStruct_OCTET_STRING(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationType.h new file mode 100644 index 000000000..2b62f8eca --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationType.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PtActivationType(const cam_ts_PtActivationType_t& in, cam_ts_msgs::PtActivationType& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_PtActivationType(const cam_ts_msgs::PtActivationType& in, cam_ts_PtActivationType_t& out) { + memset(&out, 0, sizeof(cam_ts_PtActivationType_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPublicTransportContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPublicTransportContainer.h new file mode 100644 index 000000000..989eb6fd1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPublicTransportContainer.h @@ -0,0 +1,62 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_PublicTransportContainer(const cam_ts_PublicTransportContainer_t& in, cam_ts_msgs::PublicTransportContainer& out) { + toRos_EmbarkationStatus(in.embarkationStatus, out.embarkation_status); + if (in.ptActivation) { + toRos_PtActivation(*in.ptActivation, out.pt_activation); + out.pt_activation_is_present = true; + } +} + +void toStruct_PublicTransportContainer(const cam_ts_msgs::PublicTransportContainer& in, cam_ts_PublicTransportContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_PublicTransportContainer_t)); + + toStruct_EmbarkationStatus(in.embarkation_status, out.embarkationStatus); + if (in.pt_activation_is_present) { + out.ptActivation = (cam_ts_PtActivation_t*) calloc(1, sizeof(cam_ts_PtActivation_t)); + toStruct_PtActivation(in.pt_activation, *out.ptActivation); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRSUContainerHighFrequency.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRSUContainerHighFrequency.h new file mode 100644 index 000000000..a1aa518ff --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRSUContainerHighFrequency.h @@ -0,0 +1,59 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RSUContainerHighFrequency(const cam_ts_RSUContainerHighFrequency_t& in, cam_ts_msgs::RSUContainerHighFrequency& out) { + if (in.protectedCommunicationZonesRSU) { + toRos_ProtectedCommunicationZonesRSU(*in.protectedCommunicationZonesRSU, out.protected_communication_zones_rsu); + out.protected_communication_zones_rsu_is_present = true; + } +} + +void toStruct_RSUContainerHighFrequency(const cam_ts_msgs::RSUContainerHighFrequency& in, cam_ts_RSUContainerHighFrequency_t& out) { + memset(&out, 0, sizeof(cam_ts_RSUContainerHighFrequency_t)); + + if (in.protected_communication_zones_rsu_is_present) { + out.protectedCommunicationZonesRSU = (cam_ts_ProtectedCommunicationZonesRSU_t*) calloc(1, sizeof(cam_ts_ProtectedCommunicationZonesRSU_t)); + toStruct_ProtectedCommunicationZonesRSU(in.protected_communication_zones_rsu, *out.protectedCommunicationZonesRSU); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShape.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShape.h new file mode 100644 index 000000000..3e2c53bf5 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShape.h @@ -0,0 +1,83 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RadialShape(const cam_ts_RadialShape_t& in, cam_ts_msgs::RadialShape& out) { + if (in.shapeReferencePoint) { + toRos_CartesianPosition3d(*in.shapeReferencePoint, out.shape_reference_point); + out.shape_reference_point_is_present = true; + } + toRos_StandardLength12b(in.range, out.range); + toRos_CartesianAngleValue(in.horizontalOpeningAngleStart, out.horizontal_opening_angle_start); + toRos_CartesianAngleValue(in.horizontalOpeningAngleEnd, out.horizontal_opening_angle_end); + if (in.verticalOpeningAngleStart) { + toRos_CartesianAngleValue(*in.verticalOpeningAngleStart, out.vertical_opening_angle_start); + out.vertical_opening_angle_start_is_present = true; + } + if (in.verticalOpeningAngleEnd) { + toRos_CartesianAngleValue(*in.verticalOpeningAngleEnd, out.vertical_opening_angle_end); + out.vertical_opening_angle_end_is_present = true; + } +} + +void toStruct_RadialShape(const cam_ts_msgs::RadialShape& in, cam_ts_RadialShape_t& out) { + memset(&out, 0, sizeof(cam_ts_RadialShape_t)); + + if (in.shape_reference_point_is_present) { + out.shapeReferencePoint = (cam_ts_CartesianPosition3d_t*) calloc(1, sizeof(cam_ts_CartesianPosition3d_t)); + toStruct_CartesianPosition3d(in.shape_reference_point, *out.shapeReferencePoint); + } + toStruct_StandardLength12b(in.range, out.range); + toStruct_CartesianAngleValue(in.horizontal_opening_angle_start, out.horizontalOpeningAngleStart); + toStruct_CartesianAngleValue(in.horizontal_opening_angle_end, out.horizontalOpeningAngleEnd); + if (in.vertical_opening_angle_start_is_present) { + out.verticalOpeningAngleStart = (cam_ts_CartesianAngleValue_t*) calloc(1, sizeof(cam_ts_CartesianAngleValue_t)); + toStruct_CartesianAngleValue(in.vertical_opening_angle_start, *out.verticalOpeningAngleStart); + } + if (in.vertical_opening_angle_end_is_present) { + out.verticalOpeningAngleEnd = (cam_ts_CartesianAngleValue_t*) calloc(1, sizeof(cam_ts_CartesianAngleValue_t)); + toStruct_CartesianAngleValue(in.vertical_opening_angle_end, *out.verticalOpeningAngleEnd); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapeDetails.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapeDetails.h new file mode 100644 index 000000000..d255456f2 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapeDetails.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RadialShapeDetails(const cam_ts_RadialShapeDetails_t& in, cam_ts_msgs::RadialShapeDetails& out) { + toRos_StandardLength12b(in.range, out.range); + toRos_CartesianAngleValue(in.horizontalOpeningAngleStart, out.horizontal_opening_angle_start); + toRos_CartesianAngleValue(in.horizontalOpeningAngleEnd, out.horizontal_opening_angle_end); + if (in.verticalOpeningAngleStart) { + toRos_CartesianAngleValue(*in.verticalOpeningAngleStart, out.vertical_opening_angle_start); + out.vertical_opening_angle_start_is_present = true; + } + if (in.verticalOpeningAngleEnd) { + toRos_CartesianAngleValue(*in.verticalOpeningAngleEnd, out.vertical_opening_angle_end); + out.vertical_opening_angle_end_is_present = true; + } +} + +void toStruct_RadialShapeDetails(const cam_ts_msgs::RadialShapeDetails& in, cam_ts_RadialShapeDetails_t& out) { + memset(&out, 0, sizeof(cam_ts_RadialShapeDetails_t)); + + toStruct_StandardLength12b(in.range, out.range); + toStruct_CartesianAngleValue(in.horizontal_opening_angle_start, out.horizontalOpeningAngleStart); + toStruct_CartesianAngleValue(in.horizontal_opening_angle_end, out.horizontalOpeningAngleEnd); + if (in.vertical_opening_angle_start_is_present) { + out.verticalOpeningAngleStart = (cam_ts_CartesianAngleValue_t*) calloc(1, sizeof(cam_ts_CartesianAngleValue_t)); + toStruct_CartesianAngleValue(in.vertical_opening_angle_start, *out.verticalOpeningAngleStart); + } + if (in.vertical_opening_angle_end_is_present) { + out.verticalOpeningAngleEnd = (cam_ts_CartesianAngleValue_t*) calloc(1, sizeof(cam_ts_CartesianAngleValue_t)); + toStruct_CartesianAngleValue(in.vertical_opening_angle_end, *out.verticalOpeningAngleEnd); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapes.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapes.h new file mode 100644 index 000000000..0131bce8b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapes.h @@ -0,0 +1,69 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RadialShapes(const cam_ts_RadialShapes_t& in, cam_ts_msgs::RadialShapes& out) { + toRos_Identifier1B(in.refPointId, out.ref_point_id); + toRos_CartesianCoordinateSmall(in.xCoordinate, out.x_coordinate); + toRos_CartesianCoordinateSmall(in.yCoordinate, out.y_coordinate); + if (in.zCoordinate) { + toRos_CartesianCoordinateSmall(*in.zCoordinate, out.z_coordinate); + out.z_coordinate_is_present = true; + } + toRos_RadialShapesList(in.radialShapesList, out.radial_shapes_list); +} + +void toStruct_RadialShapes(const cam_ts_msgs::RadialShapes& in, cam_ts_RadialShapes_t& out) { + memset(&out, 0, sizeof(cam_ts_RadialShapes_t)); + + toStruct_Identifier1B(in.ref_point_id, out.refPointId); + toStruct_CartesianCoordinateSmall(in.x_coordinate, out.xCoordinate); + toStruct_CartesianCoordinateSmall(in.y_coordinate, out.yCoordinate); + if (in.z_coordinate_is_present) { + out.zCoordinate = (cam_ts_CartesianCoordinateSmall_t*) calloc(1, sizeof(cam_ts_CartesianCoordinateSmall_t)); + toStruct_CartesianCoordinateSmall(in.z_coordinate, *out.zCoordinate); + } + toStruct_RadialShapesList(in.radial_shapes_list, out.radialShapesList); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapesList.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapesList.h new file mode 100644 index 000000000..12ae669e8 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRadialShapesList.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RadialShapesList(const cam_ts_RadialShapesList_t& in, cam_ts_msgs::RadialShapesList& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::RadialShapeDetails el; + toRos_RadialShapeDetails(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_RadialShapesList(const cam_ts_msgs::RadialShapesList& in, cam_ts_RadialShapesList_t& out) { + memset(&out, 0, sizeof(cam_ts_RadialShapesList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_RadialShapeDetails_t* el = (cam_ts_RadialShapeDetails_t*) calloc(1, sizeof(cam_ts_RadialShapeDetails_t)); + toStruct_RadialShapeDetails(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRailwayLevelCrossingSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRailwayLevelCrossingSubCauseCode.h new file mode 100644 index 000000000..5734503bd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRailwayLevelCrossingSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RailwayLevelCrossingSubCauseCode(const cam_ts_RailwayLevelCrossingSubCauseCode_t& in, cam_ts_msgs::RailwayLevelCrossingSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RailwayLevelCrossingSubCauseCode(const cam_ts_msgs::RailwayLevelCrossingSubCauseCode& in, cam_ts_RailwayLevelCrossingSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_RailwayLevelCrossingSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRectangularShape.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRectangularShape.h new file mode 100644 index 000000000..0452ae374 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRectangularShape.h @@ -0,0 +1,81 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RectangularShape(const cam_ts_RectangularShape_t& in, cam_ts_msgs::RectangularShape& out) { + if (in.shapeReferencePoint) { + toRos_CartesianPosition3d(*in.shapeReferencePoint, out.shape_reference_point); + out.shape_reference_point_is_present = true; + } + toRos_StandardLength12b(in.semiLength, out.semi_length); + toRos_StandardLength12b(in.semiBreadth, out.semi_breadth); + if (in.orientation) { + toRos_CartesianAngleValue(*in.orientation, out.orientation); + out.orientation_is_present = true; + } + if (in.height) { + toRos_StandardLength12b(*in.height, out.height); + out.height_is_present = true; + } +} + +void toStruct_RectangularShape(const cam_ts_msgs::RectangularShape& in, cam_ts_RectangularShape_t& out) { + memset(&out, 0, sizeof(cam_ts_RectangularShape_t)); + + if (in.shape_reference_point_is_present) { + out.shapeReferencePoint = (cam_ts_CartesianPosition3d_t*) calloc(1, sizeof(cam_ts_CartesianPosition3d_t)); + toStruct_CartesianPosition3d(in.shape_reference_point, *out.shapeReferencePoint); + } + toStruct_StandardLength12b(in.semi_length, out.semiLength); + toStruct_StandardLength12b(in.semi_breadth, out.semiBreadth); + if (in.orientation_is_present) { + out.orientation = (cam_ts_CartesianAngleValue_t*) calloc(1, sizeof(cam_ts_CartesianAngleValue_t)); + toStruct_CartesianAngleValue(in.orientation, *out.orientation); + } + if (in.height_is_present) { + out.height = (cam_ts_StandardLength12b_t*) calloc(1, sizeof(cam_ts_StandardLength12b_t)); + toStruct_StandardLength12b(in.height, *out.height); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePosition.h new file mode 100644 index 000000000..6d3f0c0c6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePosition.h @@ -0,0 +1,62 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ReferencePosition(const cam_ts_ReferencePosition_t& in, cam_ts_msgs::ReferencePosition& out) { + toRos_Latitude(in.latitude, out.latitude); + toRos_Longitude(in.longitude, out.longitude); + toRos_PosConfidenceEllipse(in.positionConfidenceEllipse, out.position_confidence_ellipse); + toRos_Altitude(in.altitude, out.altitude); +} + +void toStruct_ReferencePosition(const cam_ts_msgs::ReferencePosition& in, cam_ts_ReferencePosition_t& out) { + memset(&out, 0, sizeof(cam_ts_ReferencePosition_t)); + + toStruct_Latitude(in.latitude, out.latitude); + toStruct_Longitude(in.longitude, out.longitude); + toStruct_PosConfidenceEllipse(in.position_confidence_ellipse, out.positionConfidenceEllipse); + toStruct_Altitude(in.altitude, out.altitude); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePositionWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePositionWithConfidence.h new file mode 100644 index 000000000..38a276715 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePositionWithConfidence.h @@ -0,0 +1,62 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ReferencePositionWithConfidence(const cam_ts_ReferencePositionWithConfidence_t& in, cam_ts_msgs::ReferencePositionWithConfidence& out) { + toRos_Latitude(in.latitude, out.latitude); + toRos_Longitude(in.longitude, out.longitude); + toRos_PositionConfidenceEllipse(in.positionConfidenceEllipse, out.position_confidence_ellipse); + toRos_Altitude(in.altitude, out.altitude); +} + +void toStruct_ReferencePositionWithConfidence(const cam_ts_msgs::ReferencePositionWithConfidence& in, cam_ts_ReferencePositionWithConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_ReferencePositionWithConfidence_t)); + + toStruct_Latitude(in.latitude, out.latitude); + toStruct_Longitude(in.longitude, out.longitude); + toStruct_PositionConfidenceEllipse(in.position_confidence_ellipse, out.positionConfidenceEllipse); + toStruct_Altitude(in.altitude, out.altitude); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRelevanceDistance.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRelevanceDistance.h new file mode 100644 index 000000000..0c5b55b34 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRelevanceDistance.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RelevanceDistance(const cam_ts_RelevanceDistance_t& in, cam_ts_msgs::RelevanceDistance& out) { + out.value = in; +} + +void toStruct_RelevanceDistance(const cam_ts_msgs::RelevanceDistance& in, cam_ts_RelevanceDistance_t& out) { + memset(&out, 0, sizeof(cam_ts_RelevanceDistance_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRelevanceTrafficDirection.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRelevanceTrafficDirection.h new file mode 100644 index 000000000..5e77949d8 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRelevanceTrafficDirection.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RelevanceTrafficDirection(const cam_ts_RelevanceTrafficDirection_t& in, cam_ts_msgs::RelevanceTrafficDirection& out) { + out.value = in; +} + +void toStruct_RelevanceTrafficDirection(const cam_ts_msgs::RelevanceTrafficDirection& in, cam_ts_RelevanceTrafficDirection_t& out) { + memset(&out, 0, sizeof(cam_ts_RelevanceTrafficDirection_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRequestResponseIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRequestResponseIndication.h new file mode 100644 index 000000000..598c3f1c0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRequestResponseIndication.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RequestResponseIndication(const cam_ts_RequestResponseIndication_t& in, cam_ts_msgs::RequestResponseIndication& out) { + out.value = in; +} + +void toStruct_RequestResponseIndication(const cam_ts_msgs::RequestResponseIndication& in, cam_ts_RequestResponseIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_RequestResponseIndication_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueAndRecoveryWorkInProgressSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 000000000..5f8ade996 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RescueAndRecoveryWorkInProgressSubCauseCode(const cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_t& in, cam_ts_msgs::RescueAndRecoveryWorkInProgressSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RescueAndRecoveryWorkInProgressSubCauseCode(const cam_ts_msgs::RescueAndRecoveryWorkInProgressSubCauseCode& in, cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_RescueAndRecoveryWorkInProgressSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueContainer.h new file mode 100644 index 000000000..9247b4ff0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueContainer.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RescueContainer(const cam_ts_RescueContainer_t& in, cam_ts_msgs::RescueContainer& out) { + toRos_LightBarSirenInUse(in.lightBarSirenInUse, out.light_bar_siren_in_use); +} + +void toStruct_RescueContainer(const cam_ts_msgs::RescueContainer& in, cam_ts_RescueContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_RescueContainer_t)); + + toStruct_LightBarSirenInUse(in.light_bar_siren_in_use, out.lightBarSirenInUse); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRestrictedTypes.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRestrictedTypes.h new file mode 100644 index 000000000..892c999e4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRestrictedTypes.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RestrictedTypes(const cam_ts_RestrictedTypes_t& in, cam_ts_msgs::RestrictedTypes& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::StationType el; + toRos_StationType(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_RestrictedTypes(const cam_ts_msgs::RestrictedTypes& in, cam_ts_RestrictedTypes_t& out) { + memset(&out, 0, sizeof(cam_ts_RestrictedTypes_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_StationType_t* el = (cam_ts_StationType_t*) calloc(1, sizeof(cam_ts_StationType_t)); + toStruct_StationType(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadConfigurationSection.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadConfigurationSection.h new file mode 100644 index 000000000..f97081948 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadConfigurationSection.h @@ -0,0 +1,80 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RoadConfigurationSection(const cam_ts_RoadConfigurationSection_t& in, cam_ts_msgs::RoadConfigurationSection& out) { + toRos_RoadSectionDefinition(in.roadSectionDefinition, out.road_section_definition); + if (in.roadType) { + toRos_RoadType(*in.roadType, out.road_type); + out.road_type_is_present = true; + } + if (in.laneConfiguration) { + toRos_BasicLaneConfiguration(*in.laneConfiguration, out.lane_configuration); + out.lane_configuration_is_present = true; + } + if (in.mapemConfiguration) { + toRos_MapemConfiguration(*in.mapemConfiguration, out.mapem_configuration); + out.mapem_configuration_is_present = true; + } +} + +void toStruct_RoadConfigurationSection(const cam_ts_msgs::RoadConfigurationSection& in, cam_ts_RoadConfigurationSection_t& out) { + memset(&out, 0, sizeof(cam_ts_RoadConfigurationSection_t)); + + toStruct_RoadSectionDefinition(in.road_section_definition, out.roadSectionDefinition); + if (in.road_type_is_present) { + out.roadType = (cam_ts_RoadType_t*) calloc(1, sizeof(cam_ts_RoadType_t)); + toStruct_RoadType(in.road_type, *out.roadType); + } + if (in.lane_configuration_is_present) { + out.laneConfiguration = (cam_ts_BasicLaneConfiguration_t*) calloc(1, sizeof(cam_ts_BasicLaneConfiguration_t)); + toStruct_BasicLaneConfiguration(in.lane_configuration, *out.laneConfiguration); + } + if (in.mapem_configuration_is_present) { + out.mapemConfiguration = (cam_ts_MapemConfiguration_t*) calloc(1, sizeof(cam_ts_MapemConfiguration_t)); + toStruct_MapemConfiguration(in.mapem_configuration, *out.mapemConfiguration); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadConfigurationSectionList.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadConfigurationSectionList.h new file mode 100644 index 000000000..b665f5eb4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadConfigurationSectionList.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RoadConfigurationSectionList(const cam_ts_RoadConfigurationSectionList_t& in, cam_ts_msgs::RoadConfigurationSectionList& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::RoadConfigurationSection el; + toRos_RoadConfigurationSection(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_RoadConfigurationSectionList(const cam_ts_msgs::RoadConfigurationSectionList& in, cam_ts_RoadConfigurationSectionList_t& out) { + memset(&out, 0, sizeof(cam_ts_RoadConfigurationSectionList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_RoadConfigurationSection_t* el = (cam_ts_RoadConfigurationSection_t*) calloc(1, sizeof(cam_ts_RoadConfigurationSection_t)); + toStruct_RoadConfigurationSection(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSectionDefinition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSectionDefinition.h new file mode 100644 index 000000000..7270e0ec8 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSectionDefinition.h @@ -0,0 +1,81 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RoadSectionDefinition(const cam_ts_RoadSectionDefinition_t& in, cam_ts_msgs::RoadSectionDefinition& out) { + toRos_GeoPosition(in.startingPointSection, out.starting_point_section); + if (in.lengthOfSection) { + toRos_StandardLength2B(*in.lengthOfSection, out.length_of_section); + out.length_of_section_is_present = true; + } + if (in.endingPointSection) { + toRos_GeoPosition(*in.endingPointSection, out.ending_point_section); + out.ending_point_section_is_present = true; + } + toRos_PathReferences(in.connectedPaths, out.connected_paths); + toRos_PathReferences(in.includedPaths, out.included_paths); + etsi_its_primitives_conversion::toRos_BOOLEAN(in.isEventZoneIncluded, out.is_event_zone_included); + etsi_its_primitives_conversion::toRos_BOOLEAN(in.isEventZoneConnected, out.is_event_zone_connected); +} + +void toStruct_RoadSectionDefinition(const cam_ts_msgs::RoadSectionDefinition& in, cam_ts_RoadSectionDefinition_t& out) { + memset(&out, 0, sizeof(cam_ts_RoadSectionDefinition_t)); + + toStruct_GeoPosition(in.starting_point_section, out.startingPointSection); + if (in.length_of_section_is_present) { + out.lengthOfSection = (cam_ts_StandardLength2B_t*) calloc(1, sizeof(cam_ts_StandardLength2B_t)); + toStruct_StandardLength2B(in.length_of_section, *out.lengthOfSection); + } + if (in.ending_point_section_is_present) { + out.endingPointSection = (cam_ts_GeoPosition_t*) calloc(1, sizeof(cam_ts_GeoPosition_t)); + toStruct_GeoPosition(in.ending_point_section, *out.endingPointSection); + } + toStruct_PathReferences(in.connected_paths, out.connectedPaths); + toStruct_PathReferences(in.included_paths, out.includedPaths); + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.is_event_zone_included, out.isEventZoneIncluded); + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.is_event_zone_connected, out.isEventZoneConnected); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSectionId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSectionId.h new file mode 100644 index 000000000..916992dfe --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSectionId.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RoadSectionId(const cam_ts_RoadSectionId_t& in, cam_ts_msgs::RoadSectionId& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RoadSectionId(const cam_ts_msgs::RoadSectionId& in, cam_ts_RoadSectionId_t& out) { + memset(&out, 0, sizeof(cam_ts_RoadSectionId_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSegmentReferenceId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSegmentReferenceId.h new file mode 100644 index 000000000..64c6a0714 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadSegmentReferenceId.h @@ -0,0 +1,61 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RoadSegmentReferenceId(const cam_ts_RoadSegmentReferenceId_t& in, cam_ts_msgs::RoadSegmentReferenceId& out) { + if (in.region) { + toRos_Identifier2B(*in.region, out.region); + out.region_is_present = true; + } + toRos_Identifier2B(in.id, out.id); +} + +void toStruct_RoadSegmentReferenceId(const cam_ts_msgs::RoadSegmentReferenceId& in, cam_ts_RoadSegmentReferenceId_t& out) { + memset(&out, 0, sizeof(cam_ts_RoadSegmentReferenceId_t)); + + if (in.region_is_present) { + out.region = (cam_ts_Identifier2B_t*) calloc(1, sizeof(cam_ts_Identifier2B_t)); + toStruct_Identifier2B(in.region, *out.region); + } + toStruct_Identifier2B(in.id, out.id); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadType.h new file mode 100644 index 000000000..af6d62f61 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadType.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RoadType(const cam_ts_RoadType_t& in, cam_ts_msgs::RoadType& out) { + out.value = in; +} + +void toStruct_RoadType(const cam_ts_msgs::RoadType& in, cam_ts_RoadType_t& out) { + memset(&out, 0, sizeof(cam_ts_RoadType_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadWorksContainerBasic.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadWorksContainerBasic.h new file mode 100644 index 000000000..f131540ae --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadWorksContainerBasic.h @@ -0,0 +1,71 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RoadWorksContainerBasic(const cam_ts_RoadWorksContainerBasic_t& in, cam_ts_msgs::RoadWorksContainerBasic& out) { + if (in.roadworksSubCauseCode) { + toRos_RoadworksSubCauseCode(*in.roadworksSubCauseCode, out.roadworks_sub_cause_code); + out.roadworks_sub_cause_code_is_present = true; + } + toRos_LightBarSirenInUse(in.lightBarSirenInUse, out.light_bar_siren_in_use); + if (in.closedLanes) { + toRos_ClosedLanes(*in.closedLanes, out.closed_lanes); + out.closed_lanes_is_present = true; + } +} + +void toStruct_RoadWorksContainerBasic(const cam_ts_msgs::RoadWorksContainerBasic& in, cam_ts_RoadWorksContainerBasic_t& out) { + memset(&out, 0, sizeof(cam_ts_RoadWorksContainerBasic_t)); + + if (in.roadworks_sub_cause_code_is_present) { + out.roadworksSubCauseCode = (cam_ts_RoadworksSubCauseCode_t*) calloc(1, sizeof(cam_ts_RoadworksSubCauseCode_t)); + toStruct_RoadworksSubCauseCode(in.roadworks_sub_cause_code, *out.roadworksSubCauseCode); + } + toStruct_LightBarSirenInUse(in.light_bar_siren_in_use, out.lightBarSirenInUse); + if (in.closed_lanes_is_present) { + out.closedLanes = (cam_ts_ClosedLanes_t*) calloc(1, sizeof(cam_ts_ClosedLanes_t)); + toStruct_ClosedLanes(in.closed_lanes, *out.closedLanes); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadworksSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadworksSubCauseCode.h new file mode 100644 index 000000000..4214697b9 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadworksSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_RoadworksSubCauseCode(const cam_ts_RoadworksSubCauseCode_t& in, cam_ts_msgs::RoadworksSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RoadworksSubCauseCode(const cam_ts_msgs::RoadworksSubCauseCode& in, cam_ts_RoadworksSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_RoadworksSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafeDistanceIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafeDistanceIndication.h new file mode 100644 index 000000000..b9ad83661 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafeDistanceIndication.h @@ -0,0 +1,71 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SafeDistanceIndication(const cam_ts_SafeDistanceIndication_t& in, cam_ts_msgs::SafeDistanceIndication& out) { + if (in.subjectStation) { + toRos_StationId(*in.subjectStation, out.subject_station); + out.subject_station_is_present = true; + } + toRos_SafeDistanceIndicator(in.safeDistanceIndicator, out.safe_distance_indicator); + if (in.timeToCollision) { + toRos_DeltaTimeTenthOfSecond(*in.timeToCollision, out.time_to_collision); + out.time_to_collision_is_present = true; + } +} + +void toStruct_SafeDistanceIndication(const cam_ts_msgs::SafeDistanceIndication& in, cam_ts_SafeDistanceIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_SafeDistanceIndication_t)); + + if (in.subject_station_is_present) { + out.subjectStation = (cam_ts_StationId_t*) calloc(1, sizeof(cam_ts_StationId_t)); + toStruct_StationId(in.subject_station, *out.subjectStation); + } + toStruct_SafeDistanceIndicator(in.safe_distance_indicator, out.safeDistanceIndicator); + if (in.time_to_collision_is_present) { + out.timeToCollision = (cam_ts_DeltaTimeTenthOfSecond_t*) calloc(1, sizeof(cam_ts_DeltaTimeTenthOfSecond_t)); + toStruct_DeltaTimeTenthOfSecond(in.time_to_collision, *out.timeToCollision); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafeDistanceIndicator.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafeDistanceIndicator.h new file mode 100644 index 000000000..1ca8d26c5 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafeDistanceIndicator.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SafeDistanceIndicator(const cam_ts_SafeDistanceIndicator_t& in, cam_ts_msgs::SafeDistanceIndicator& out) { + etsi_its_primitives_conversion::toRos_BOOLEAN(in, out.value); +} + +void toStruct_SafeDistanceIndicator(const cam_ts_msgs::SafeDistanceIndicator& in, cam_ts_SafeDistanceIndicator_t& out) { + memset(&out, 0, sizeof(cam_ts_SafeDistanceIndicator_t)); + + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafetyCarContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafetyCarContainer.h new file mode 100644 index 000000000..4299680b6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafetyCarContainer.h @@ -0,0 +1,80 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SafetyCarContainer(const cam_ts_SafetyCarContainer_t& in, cam_ts_msgs::SafetyCarContainer& out) { + toRos_LightBarSirenInUse(in.lightBarSirenInUse, out.light_bar_siren_in_use); + if (in.incidentIndication) { + toRos_CauseCodeV2(*in.incidentIndication, out.incident_indication); + out.incident_indication_is_present = true; + } + if (in.trafficRule) { + toRos_TrafficRule(*in.trafficRule, out.traffic_rule); + out.traffic_rule_is_present = true; + } + if (in.speedLimit) { + toRos_SpeedLimit(*in.speedLimit, out.speed_limit); + out.speed_limit_is_present = true; + } +} + +void toStruct_SafetyCarContainer(const cam_ts_msgs::SafetyCarContainer& in, cam_ts_SafetyCarContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_SafetyCarContainer_t)); + + toStruct_LightBarSirenInUse(in.light_bar_siren_in_use, out.lightBarSirenInUse); + if (in.incident_indication_is_present) { + out.incidentIndication = (cam_ts_CauseCodeV2_t*) calloc(1, sizeof(cam_ts_CauseCodeV2_t)); + toStruct_CauseCodeV2(in.incident_indication, *out.incidentIndication); + } + if (in.traffic_rule_is_present) { + out.trafficRule = (cam_ts_TrafficRule_t*) calloc(1, sizeof(cam_ts_TrafficRule_t)); + toStruct_TrafficRule(in.traffic_rule, *out.trafficRule); + } + if (in.speed_limit_is_present) { + out.speedLimit = (cam_ts_SpeedLimit_t*) calloc(1, sizeof(cam_ts_SpeedLimit_t)); + toStruct_SpeedLimit(in.speed_limit, *out.speedLimit); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSemiAxisLength.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSemiAxisLength.h new file mode 100644 index 000000000..4711e387f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSemiAxisLength.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SemiAxisLength(const cam_ts_SemiAxisLength_t& in, cam_ts_msgs::SemiAxisLength& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SemiAxisLength(const cam_ts_msgs::SemiAxisLength& in, cam_ts_SemiAxisLength_t& out) { + memset(&out, 0, sizeof(cam_ts_SemiAxisLength_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSensorType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSensorType.h new file mode 100644 index 000000000..c475a7e69 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSensorType.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SensorType(const cam_ts_SensorType_t& in, cam_ts_msgs::SensorType& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SensorType(const cam_ts_msgs::SensorType& in, cam_ts_SensorType_t& out) { + memset(&out, 0, sizeof(cam_ts_SensorType_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSensorTypes.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSensorTypes.h new file mode 100644 index 000000000..fe7b4ca76 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSensorTypes.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SensorTypes(const cam_ts_SensorTypes_t& in, cam_ts_msgs::SensorTypes& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_SensorTypes(const cam_ts_msgs::SensorTypes& in, cam_ts_SensorTypes_t& out) { + memset(&out, 0, sizeof(cam_ts_SensorTypes_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceNumber.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceNumber.h new file mode 100644 index 000000000..7f6e36d6f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceNumber.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SequenceNumber(const cam_ts_SequenceNumber_t& in, cam_ts_msgs::SequenceNumber& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SequenceNumber(const cam_ts_msgs::SequenceNumber& in, cam_ts_SequenceNumber_t& out) { + memset(&out, 0, sizeof(cam_ts_SequenceNumber_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfCartesianPosition3d.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfCartesianPosition3d.h new file mode 100644 index 000000000..1b4c51bfa --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfCartesianPosition3d.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SequenceOfCartesianPosition3d(const cam_ts_SequenceOfCartesianPosition3d_t& in, cam_ts_msgs::SequenceOfCartesianPosition3d& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::CartesianPosition3d el; + toRos_CartesianPosition3d(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_SequenceOfCartesianPosition3d(const cam_ts_msgs::SequenceOfCartesianPosition3d& in, cam_ts_SequenceOfCartesianPosition3d_t& out) { + memset(&out, 0, sizeof(cam_ts_SequenceOfCartesianPosition3d_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_CartesianPosition3d_t* el = (cam_ts_CartesianPosition3d_t*) calloc(1, sizeof(cam_ts_CartesianPosition3d_t)); + toStruct_CartesianPosition3d(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfIdentifier1B.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfIdentifier1B.h new file mode 100644 index 000000000..fc81c4b19 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfIdentifier1B.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SequenceOfIdentifier1B(const cam_ts_SequenceOfIdentifier1B_t& in, cam_ts_msgs::SequenceOfIdentifier1B& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::Identifier1B el; + toRos_Identifier1B(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_SequenceOfIdentifier1B(const cam_ts_msgs::SequenceOfIdentifier1B& in, cam_ts_SequenceOfIdentifier1B_t& out) { + memset(&out, 0, sizeof(cam_ts_SequenceOfIdentifier1B_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_Identifier1B_t* el = (cam_ts_Identifier1B_t*) calloc(1, sizeof(cam_ts_Identifier1B_t)); + toStruct_Identifier1B(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfSafeDistanceIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfSafeDistanceIndication.h new file mode 100644 index 000000000..6c1c83964 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfSafeDistanceIndication.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SequenceOfSafeDistanceIndication(const cam_ts_SequenceOfSafeDistanceIndication_t& in, cam_ts_msgs::SequenceOfSafeDistanceIndication& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::SafeDistanceIndication el; + toRos_SafeDistanceIndication(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_SequenceOfSafeDistanceIndication(const cam_ts_msgs::SequenceOfSafeDistanceIndication& in, cam_ts_SequenceOfSafeDistanceIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_SequenceOfSafeDistanceIndication_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_SafeDistanceIndication_t* el = (cam_ts_SafeDistanceIndication_t*) calloc(1, sizeof(cam_ts_SafeDistanceIndication_t)); + toStruct_SafeDistanceIndication(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfTrajectoryInterceptionIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfTrajectoryInterceptionIndication.h new file mode 100644 index 000000000..c31ab818f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSequenceOfTrajectoryInterceptionIndication.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SequenceOfTrajectoryInterceptionIndication(const cam_ts_SequenceOfTrajectoryInterceptionIndication_t& in, cam_ts_msgs::SequenceOfTrajectoryInterceptionIndication& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::TrajectoryInterceptionIndication el; + toRos_TrajectoryInterceptionIndication(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_SequenceOfTrajectoryInterceptionIndication(const cam_ts_msgs::SequenceOfTrajectoryInterceptionIndication& in, cam_ts_SequenceOfTrajectoryInterceptionIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_SequenceOfTrajectoryInterceptionIndication_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_TrajectoryInterceptionIndication_t* el = (cam_ts_TrajectoryInterceptionIndication_t*) calloc(1, sizeof(cam_ts_TrajectoryInterceptionIndication_t)); + toStruct_TrajectoryInterceptionIndication(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertShape.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertShape.h new file mode 100644 index 000000000..ffe767722 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertShape.h @@ -0,0 +1,110 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Shape(const cam_ts_Shape_t& in, cam_ts_msgs::Shape& out) { + switch (in.present) { + case cam_ts_Shape_PR_rectangular: + toRos_RectangularShape(in.choice.rectangular, out.rectangular); + out.choice = cam_ts_msgs::Shape::CHOICE_RECTANGULAR; + break; + case cam_ts_Shape_PR_circular: + toRos_CircularShape(in.choice.circular, out.circular); + out.choice = cam_ts_msgs::Shape::CHOICE_CIRCULAR; + break; + case cam_ts_Shape_PR_polygonal: + toRos_PolygonalShape(in.choice.polygonal, out.polygonal); + out.choice = cam_ts_msgs::Shape::CHOICE_POLYGONAL; + break; + case cam_ts_Shape_PR_elliptical: + toRos_EllipticalShape(in.choice.elliptical, out.elliptical); + out.choice = cam_ts_msgs::Shape::CHOICE_ELLIPTICAL; + break; + case cam_ts_Shape_PR_radial: + toRos_RadialShape(in.choice.radial, out.radial); + out.choice = cam_ts_msgs::Shape::CHOICE_RADIAL; + break; + case cam_ts_Shape_PR_radialShapes: + toRos_RadialShapes(in.choice.radialShapes, out.radial_shapes); + out.choice = cam_ts_msgs::Shape::CHOICE_RADIAL_SHAPES; + break; + default: break; + } +} + +void toStruct_Shape(const cam_ts_msgs::Shape& in, cam_ts_Shape_t& out) { + memset(&out, 0, sizeof(cam_ts_Shape_t)); + + switch (in.choice) { + case cam_ts_msgs::Shape::CHOICE_RECTANGULAR: + toStruct_RectangularShape(in.rectangular, out.choice.rectangular); + out.present = cam_ts_Shape_PR::cam_ts_Shape_PR_rectangular; + break; + case cam_ts_msgs::Shape::CHOICE_CIRCULAR: + toStruct_CircularShape(in.circular, out.choice.circular); + out.present = cam_ts_Shape_PR::cam_ts_Shape_PR_circular; + break; + case cam_ts_msgs::Shape::CHOICE_POLYGONAL: + toStruct_PolygonalShape(in.polygonal, out.choice.polygonal); + out.present = cam_ts_Shape_PR::cam_ts_Shape_PR_polygonal; + break; + case cam_ts_msgs::Shape::CHOICE_ELLIPTICAL: + toStruct_EllipticalShape(in.elliptical, out.choice.elliptical); + out.present = cam_ts_Shape_PR::cam_ts_Shape_PR_elliptical; + break; + case cam_ts_msgs::Shape::CHOICE_RADIAL: + toStruct_RadialShape(in.radial, out.choice.radial); + out.present = cam_ts_Shape_PR::cam_ts_Shape_PR_radial; + break; + case cam_ts_msgs::Shape::CHOICE_RADIAL_SHAPES: + toStruct_RadialShapes(in.radial_shapes, out.choice.radialShapes); + out.present = cam_ts_Shape_PR::cam_ts_Shape_PR_radialShapes; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSignalViolationSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSignalViolationSubCauseCode.h new file mode 100644 index 000000000..d40654809 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSignalViolationSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SignalViolationSubCauseCode(const cam_ts_SignalViolationSubCauseCode_t& in, cam_ts_msgs::SignalViolationSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SignalViolationSubCauseCode(const cam_ts_msgs::SignalViolationSubCauseCode& in, cam_ts_SignalViolationSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_SignalViolationSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSlowVehicleSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSlowVehicleSubCauseCode.h new file mode 100644 index 000000000..a467a87aa --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSlowVehicleSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SlowVehicleSubCauseCode(const cam_ts_SlowVehicleSubCauseCode_t& in, cam_ts_msgs::SlowVehicleSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SlowVehicleSubCauseCode(const cam_ts_msgs::SlowVehicleSubCauseCode& in, cam_ts_SlowVehicleSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_SlowVehicleSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportContainer.h new file mode 100644 index 000000000..e5c21cc90 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportContainer.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SpecialTransportContainer(const cam_ts_SpecialTransportContainer_t& in, cam_ts_msgs::SpecialTransportContainer& out) { + toRos_SpecialTransportType(in.specialTransportType, out.special_transport_type); + toRos_LightBarSirenInUse(in.lightBarSirenInUse, out.light_bar_siren_in_use); +} + +void toStruct_SpecialTransportContainer(const cam_ts_msgs::SpecialTransportContainer& in, cam_ts_SpecialTransportContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_SpecialTransportContainer_t)); + + toStruct_SpecialTransportType(in.special_transport_type, out.specialTransportType); + toStruct_LightBarSirenInUse(in.light_bar_siren_in_use, out.lightBarSirenInUse); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportType.h new file mode 100644 index 000000000..04d1afa08 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportType.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SpecialTransportType(const cam_ts_SpecialTransportType_t& in, cam_ts_msgs::SpecialTransportType& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_SpecialTransportType(const cam_ts_msgs::SpecialTransportType& in, cam_ts_SpecialTransportType_t& out) { + memset(&out, 0, sizeof(cam_ts_SpecialTransportType_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialVehicleContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialVehicleContainer.h new file mode 100644 index 000000000..474e3ab80 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialVehicleContainer.h @@ -0,0 +1,119 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SpecialVehicleContainer(const cam_ts_SpecialVehicleContainer_t& in, cam_ts_msgs::SpecialVehicleContainer& out) { + switch (in.present) { + case cam_ts_SpecialVehicleContainer_PR_publicTransportContainer: + toRos_PublicTransportContainer(in.choice.publicTransportContainer, out.public_transport_container); + out.choice = cam_ts_msgs::SpecialVehicleContainer::CHOICE_PUBLIC_TRANSPORT_CONTAINER; + break; + case cam_ts_SpecialVehicleContainer_PR_specialTransportContainer: + toRos_SpecialTransportContainer(in.choice.specialTransportContainer, out.special_transport_container); + out.choice = cam_ts_msgs::SpecialVehicleContainer::CHOICE_SPECIAL_TRANSPORT_CONTAINER; + break; + case cam_ts_SpecialVehicleContainer_PR_dangerousGoodsContainer: + toRos_DangerousGoodsContainer(in.choice.dangerousGoodsContainer, out.dangerous_goods_container); + out.choice = cam_ts_msgs::SpecialVehicleContainer::CHOICE_DANGEROUS_GOODS_CONTAINER; + break; + case cam_ts_SpecialVehicleContainer_PR_roadWorksContainerBasic: + toRos_RoadWorksContainerBasic(in.choice.roadWorksContainerBasic, out.road_works_container_basic); + out.choice = cam_ts_msgs::SpecialVehicleContainer::CHOICE_ROAD_WORKS_CONTAINER_BASIC; + break; + case cam_ts_SpecialVehicleContainer_PR_rescueContainer: + toRos_RescueContainer(in.choice.rescueContainer, out.rescue_container); + out.choice = cam_ts_msgs::SpecialVehicleContainer::CHOICE_RESCUE_CONTAINER; + break; + case cam_ts_SpecialVehicleContainer_PR_emergencyContainer: + toRos_EmergencyContainer(in.choice.emergencyContainer, out.emergency_container); + out.choice = cam_ts_msgs::SpecialVehicleContainer::CHOICE_EMERGENCY_CONTAINER; + break; + case cam_ts_SpecialVehicleContainer_PR_safetyCarContainer: + toRos_SafetyCarContainer(in.choice.safetyCarContainer, out.safety_car_container); + out.choice = cam_ts_msgs::SpecialVehicleContainer::CHOICE_SAFETY_CAR_CONTAINER; + break; + default: break; + } +} + +void toStruct_SpecialVehicleContainer(const cam_ts_msgs::SpecialVehicleContainer& in, cam_ts_SpecialVehicleContainer_t& out) { + memset(&out, 0, sizeof(cam_ts_SpecialVehicleContainer_t)); + + switch (in.choice) { + case cam_ts_msgs::SpecialVehicleContainer::CHOICE_PUBLIC_TRANSPORT_CONTAINER: + toStruct_PublicTransportContainer(in.public_transport_container, out.choice.publicTransportContainer); + out.present = cam_ts_SpecialVehicleContainer_PR::cam_ts_SpecialVehicleContainer_PR_publicTransportContainer; + break; + case cam_ts_msgs::SpecialVehicleContainer::CHOICE_SPECIAL_TRANSPORT_CONTAINER: + toStruct_SpecialTransportContainer(in.special_transport_container, out.choice.specialTransportContainer); + out.present = cam_ts_SpecialVehicleContainer_PR::cam_ts_SpecialVehicleContainer_PR_specialTransportContainer; + break; + case cam_ts_msgs::SpecialVehicleContainer::CHOICE_DANGEROUS_GOODS_CONTAINER: + toStruct_DangerousGoodsContainer(in.dangerous_goods_container, out.choice.dangerousGoodsContainer); + out.present = cam_ts_SpecialVehicleContainer_PR::cam_ts_SpecialVehicleContainer_PR_dangerousGoodsContainer; + break; + case cam_ts_msgs::SpecialVehicleContainer::CHOICE_ROAD_WORKS_CONTAINER_BASIC: + toStruct_RoadWorksContainerBasic(in.road_works_container_basic, out.choice.roadWorksContainerBasic); + out.present = cam_ts_SpecialVehicleContainer_PR::cam_ts_SpecialVehicleContainer_PR_roadWorksContainerBasic; + break; + case cam_ts_msgs::SpecialVehicleContainer::CHOICE_RESCUE_CONTAINER: + toStruct_RescueContainer(in.rescue_container, out.choice.rescueContainer); + out.present = cam_ts_SpecialVehicleContainer_PR::cam_ts_SpecialVehicleContainer_PR_rescueContainer; + break; + case cam_ts_msgs::SpecialVehicleContainer::CHOICE_EMERGENCY_CONTAINER: + toStruct_EmergencyContainer(in.emergency_container, out.choice.emergencyContainer); + out.present = cam_ts_SpecialVehicleContainer_PR::cam_ts_SpecialVehicleContainer_PR_emergencyContainer; + break; + case cam_ts_msgs::SpecialVehicleContainer::CHOICE_SAFETY_CAR_CONTAINER: + toStruct_SafetyCarContainer(in.safety_car_container, out.choice.safetyCarContainer); + out.present = cam_ts_SpecialVehicleContainer_PR::cam_ts_SpecialVehicleContainer_PR_safetyCarContainer; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeed.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeed.h new file mode 100644 index 000000000..3bc8b0a9e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeed.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Speed(const cam_ts_Speed_t& in, cam_ts_msgs::Speed& out) { + toRos_SpeedValue(in.speedValue, out.speed_value); + toRos_SpeedConfidence(in.speedConfidence, out.speed_confidence); +} + +void toStruct_Speed(const cam_ts_msgs::Speed& in, cam_ts_Speed_t& out) { + memset(&out, 0, sizeof(cam_ts_Speed_t)); + + toStruct_SpeedValue(in.speed_value, out.speedValue); + toStruct_SpeedConfidence(in.speed_confidence, out.speedConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedConfidence.h new file mode 100644 index 000000000..7d905292a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SpeedConfidence(const cam_ts_SpeedConfidence_t& in, cam_ts_msgs::SpeedConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SpeedConfidence(const cam_ts_msgs::SpeedConfidence& in, cam_ts_SpeedConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_SpeedConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedLimit.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedLimit.h new file mode 100644 index 000000000..e013b919d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedLimit.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SpeedLimit(const cam_ts_SpeedLimit_t& in, cam_ts_msgs::SpeedLimit& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SpeedLimit(const cam_ts_msgs::SpeedLimit& in, cam_ts_SpeedLimit_t& out) { + memset(&out, 0, sizeof(cam_ts_SpeedLimit_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedValue.h new file mode 100644 index 000000000..1cb8e1315 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SpeedValue(const cam_ts_SpeedValue_t& in, cam_ts_msgs::SpeedValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SpeedValue(const cam_ts_msgs::SpeedValue& in, cam_ts_SpeedValue_t& out) { + memset(&out, 0, sizeof(cam_ts_SpeedValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStabilityChangeIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStabilityChangeIndication.h new file mode 100644 index 000000000..f2f3bf0d9 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStabilityChangeIndication.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StabilityChangeIndication(const cam_ts_StabilityChangeIndication_t& in, cam_ts_msgs::StabilityChangeIndication& out) { + toRos_StabilityLossProbability(in.lossProbability, out.loss_probability); + toRos_DeltaTimeTenthOfSecond(in.actionDeltaTime, out.action_delta_time); +} + +void toStruct_StabilityChangeIndication(const cam_ts_msgs::StabilityChangeIndication& in, cam_ts_StabilityChangeIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_StabilityChangeIndication_t)); + + toStruct_StabilityLossProbability(in.loss_probability, out.lossProbability); + toStruct_DeltaTimeTenthOfSecond(in.action_delta_time, out.actionDeltaTime); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStabilityLossProbability.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStabilityLossProbability.h new file mode 100644 index 000000000..eec880f80 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStabilityLossProbability.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StabilityLossProbability(const cam_ts_StabilityLossProbability_t& in, cam_ts_msgs::StabilityLossProbability& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StabilityLossProbability(const cam_ts_msgs::StabilityLossProbability& in, cam_ts_StabilityLossProbability_t& out) { + memset(&out, 0, sizeof(cam_ts_StabilityLossProbability_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength12b.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength12b.h new file mode 100644 index 000000000..018cd576b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength12b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StandardLength12b(const cam_ts_StandardLength12b_t& in, cam_ts_msgs::StandardLength12b& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StandardLength12b(const cam_ts_msgs::StandardLength12b& in, cam_ts_StandardLength12b_t& out) { + memset(&out, 0, sizeof(cam_ts_StandardLength12b_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength1B.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength1B.h new file mode 100644 index 000000000..7cf93778b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength1B.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StandardLength1B(const cam_ts_StandardLength1B_t& in, cam_ts_msgs::StandardLength1B& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StandardLength1B(const cam_ts_msgs::StandardLength1B& in, cam_ts_StandardLength1B_t& out) { + memset(&out, 0, sizeof(cam_ts_StandardLength1B_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength2B.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength2B.h new file mode 100644 index 000000000..d1a66530d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength2B.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StandardLength2B(const cam_ts_StandardLength2B_t& in, cam_ts_msgs::StandardLength2B& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StandardLength2B(const cam_ts_msgs::StandardLength2B& in, cam_ts_StandardLength2B_t& out) { + memset(&out, 0, sizeof(cam_ts_StandardLength2B_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength3b.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength3b.h new file mode 100644 index 000000000..d21072260 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength3b.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StandardLength3b(const cam_ts_StandardLength3b_t& in, cam_ts_msgs::StandardLength3b& out) { + out.value = in; +} + +void toStruct_StandardLength3b(const cam_ts_msgs::StandardLength3b& in, cam_ts_StandardLength3b_t& out) { + memset(&out, 0, sizeof(cam_ts_StandardLength3b_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength9b.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength9b.h new file mode 100644 index 000000000..1bc5e0e50 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStandardLength9b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StandardLength9b(const cam_ts_StandardLength9b_t& in, cam_ts_msgs::StandardLength9b& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StandardLength9b(const cam_ts_msgs::StandardLength9b& in, cam_ts_StandardLength9b_t& out) { + memset(&out, 0, sizeof(cam_ts_StandardLength9b_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationId.h new file mode 100644 index 000000000..7fca61f49 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationId.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StationId(const cam_ts_StationId_t& in, cam_ts_msgs::StationId& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StationId(const cam_ts_msgs::StationId& in, cam_ts_StationId_t& out) { + memset(&out, 0, sizeof(cam_ts_StationId_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationType.h new file mode 100644 index 000000000..2ac27e591 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationType.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StationType(const cam_ts_StationType_t& in, cam_ts_msgs::StationType& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StationType(const cam_ts_msgs::StationType& in, cam_ts_StationType_t& out) { + memset(&out, 0, sizeof(cam_ts_StationType_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationarySince.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationarySince.h new file mode 100644 index 000000000..6d8eb098e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationarySince.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StationarySince(const cam_ts_StationarySince_t& in, cam_ts_msgs::StationarySince& out) { + out.value = in; +} + +void toStruct_StationarySince(const cam_ts_msgs::StationarySince& in, cam_ts_StationarySince_t& out) { + memset(&out, 0, sizeof(cam_ts_StationarySince_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationaryVehicleSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationaryVehicleSubCauseCode.h new file mode 100644 index 000000000..c8f2944df --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationaryVehicleSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StationaryVehicleSubCauseCode(const cam_ts_StationaryVehicleSubCauseCode_t& in, cam_ts_msgs::StationaryVehicleSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StationaryVehicleSubCauseCode(const cam_ts_msgs::StationaryVehicleSubCauseCode& in, cam_ts_StationaryVehicleSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_StationaryVehicleSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngle.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngle.h new file mode 100644 index 000000000..b10e3cf65 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngle.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SteeringWheelAngle(const cam_ts_SteeringWheelAngle_t& in, cam_ts_msgs::SteeringWheelAngle& out) { + toRos_SteeringWheelAngleValue(in.steeringWheelAngleValue, out.steering_wheel_angle_value); + toRos_SteeringWheelAngleConfidence(in.steeringWheelAngleConfidence, out.steering_wheel_angle_confidence); +} + +void toStruct_SteeringWheelAngle(const cam_ts_msgs::SteeringWheelAngle& in, cam_ts_SteeringWheelAngle_t& out) { + memset(&out, 0, sizeof(cam_ts_SteeringWheelAngle_t)); + + toStruct_SteeringWheelAngleValue(in.steering_wheel_angle_value, out.steeringWheelAngleValue); + toStruct_SteeringWheelAngleConfidence(in.steering_wheel_angle_confidence, out.steeringWheelAngleConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleConfidence.h new file mode 100644 index 000000000..6cd5c1123 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SteeringWheelAngleConfidence(const cam_ts_SteeringWheelAngleConfidence_t& in, cam_ts_msgs::SteeringWheelAngleConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SteeringWheelAngleConfidence(const cam_ts_msgs::SteeringWheelAngleConfidence& in, cam_ts_SteeringWheelAngleConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_SteeringWheelAngleConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleValue.h new file mode 100644 index 000000000..71483357f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SteeringWheelAngleValue(const cam_ts_SteeringWheelAngleValue_t& in, cam_ts_msgs::SteeringWheelAngleValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SteeringWheelAngleValue(const cam_ts_msgs::SteeringWheelAngleValue& in, cam_ts_SteeringWheelAngleValue_t& out) { + memset(&out, 0, sizeof(cam_ts_SteeringWheelAngleValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStoredInformationType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStoredInformationType.h new file mode 100644 index 000000000..c595bba55 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStoredInformationType.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_StoredInformationType(const cam_ts_StoredInformationType_t& in, cam_ts_msgs::StoredInformationType& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_StoredInformationType(const cam_ts_msgs::StoredInformationType& in, cam_ts_StoredInformationType_t& out) { + memset(&out, 0, sizeof(cam_ts_StoredInformationType_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSubCauseCodeType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSubCauseCodeType.h new file mode 100644 index 000000000..3d4ed1aac --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSubCauseCodeType.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_SubCauseCodeType(const cam_ts_SubCauseCodeType_t& in, cam_ts_msgs::SubCauseCodeType& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SubCauseCodeType(const cam_ts_msgs::SubCauseCodeType& in, cam_ts_SubCauseCodeType_t& out) { + memset(&out, 0, sizeof(cam_ts_SubCauseCodeType_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTemperature.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTemperature.h new file mode 100644 index 000000000..53a4ad458 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTemperature.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Temperature(const cam_ts_Temperature_t& in, cam_ts_msgs::Temperature& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Temperature(const cam_ts_msgs::Temperature& in, cam_ts_Temperature_t& out) { + memset(&out, 0, sizeof(cam_ts_Temperature_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTimestampIts.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTimestampIts.h new file mode 100644 index 000000000..75ac6868e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTimestampIts.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TimestampIts(const cam_ts_TimestampIts_t& in, cam_ts_msgs::TimestampIts& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TimestampIts(const cam_ts_msgs::TimestampIts& in, cam_ts_TimestampIts_t& out) { + memset(&out, 0, sizeof(cam_ts_TimestampIts_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTraces.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTraces.h new file mode 100644 index 000000000..828f57af3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTraces.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Traces(const cam_ts_Traces_t& in, cam_ts_msgs::Traces& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::Path el; + toRos_Path(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_Traces(const cam_ts_msgs::Traces& in, cam_ts_Traces_t& out) { + memset(&out, 0, sizeof(cam_ts_Traces_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_Path_t* el = (cam_ts_Path_t*) calloc(1, sizeof(cam_ts_Path_t)); + toStruct_Path(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTracesExtended.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTracesExtended.h new file mode 100644 index 000000000..9471e07c7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTracesExtended.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TracesExtended(const cam_ts_TracesExtended_t& in, cam_ts_msgs::TracesExtended& out) { + for (int i = 0; i < in.list.count; ++i) { + cam_ts_msgs::PathExtended el; + toRos_PathExtended(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_TracesExtended(const cam_ts_msgs::TracesExtended& in, cam_ts_TracesExtended_t& out) { + memset(&out, 0, sizeof(cam_ts_TracesExtended_t)); + + for (int i = 0; i < in.array.size(); ++i) { + cam_ts_PathExtended_t* el = (cam_ts_PathExtended_t*) calloc(1, sizeof(cam_ts_PathExtended_t)); + toStruct_PathExtended(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficConditionSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficConditionSubCauseCode.h new file mode 100644 index 000000000..e32f85197 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficConditionSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrafficConditionSubCauseCode(const cam_ts_TrafficConditionSubCauseCode_t& in, cam_ts_msgs::TrafficConditionSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TrafficConditionSubCauseCode(const cam_ts_msgs::TrafficConditionSubCauseCode& in, cam_ts_TrafficConditionSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_TrafficConditionSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficDirection.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficDirection.h new file mode 100644 index 000000000..b4cea0f24 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficDirection.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrafficDirection(const cam_ts_TrafficDirection_t& in, cam_ts_msgs::TrafficDirection& out) { + out.value = in; +} + +void toStruct_TrafficDirection(const cam_ts_msgs::TrafficDirection& in, cam_ts_TrafficDirection_t& out) { + memset(&out, 0, sizeof(cam_ts_TrafficDirection_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficIslandPosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficIslandPosition.h new file mode 100644 index 000000000..276e05a64 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficIslandPosition.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrafficIslandPosition(const cam_ts_TrafficIslandPosition_t& in, cam_ts_msgs::TrafficIslandPosition& out) { + toRos_LanePositionAndType(in.oneSide, out.one_side); + toRos_LanePositionAndType(in.otherSide, out.other_side); +} + +void toStruct_TrafficIslandPosition(const cam_ts_msgs::TrafficIslandPosition& in, cam_ts_TrafficIslandPosition_t& out) { + memset(&out, 0, sizeof(cam_ts_TrafficIslandPosition_t)); + + toStruct_LanePositionAndType(in.one_side, out.oneSide); + toStruct_LanePositionAndType(in.other_side, out.otherSide); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficParticipantType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficParticipantType.h new file mode 100644 index 000000000..6bf0aeaa0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficParticipantType.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrafficParticipantType(const cam_ts_TrafficParticipantType_t& in, cam_ts_msgs::TrafficParticipantType& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TrafficParticipantType(const cam_ts_msgs::TrafficParticipantType& in, cam_ts_TrafficParticipantType_t& out) { + memset(&out, 0, sizeof(cam_ts_TrafficParticipantType_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficRule.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficRule.h new file mode 100644 index 000000000..9007bda40 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficRule.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrafficRule(const cam_ts_TrafficRule_t& in, cam_ts_msgs::TrafficRule& out) { + out.value = in; +} + +void toStruct_TrafficRule(const cam_ts_msgs::TrafficRule& in, cam_ts_TrafficRule_t& out) { + memset(&out, 0, sizeof(cam_ts_TrafficRule_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrailerData.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrailerData.h new file mode 100644 index 000000000..628009c73 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrailerData.h @@ -0,0 +1,84 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrailerData(const cam_ts_TrailerData_t& in, cam_ts_msgs::TrailerData& out) { + toRos_Identifier1B(in.refPointId, out.ref_point_id); + toRos_StandardLength1B(in.hitchPointOffset, out.hitch_point_offset); + if (in.frontOverhang) { + toRos_StandardLength1B(*in.frontOverhang, out.front_overhang); + out.front_overhang_is_present = true; + } + if (in.rearOverhang) { + toRos_StandardLength1B(*in.rearOverhang, out.rear_overhang); + out.rear_overhang_is_present = true; + } + if (in.trailerWidth) { + toRos_VehicleWidth(*in.trailerWidth, out.trailer_width); + out.trailer_width_is_present = true; + } + toRos_CartesianAngle(in.hitchAngle, out.hitch_angle); +} + +void toStruct_TrailerData(const cam_ts_msgs::TrailerData& in, cam_ts_TrailerData_t& out) { + memset(&out, 0, sizeof(cam_ts_TrailerData_t)); + + toStruct_Identifier1B(in.ref_point_id, out.refPointId); + toStruct_StandardLength1B(in.hitch_point_offset, out.hitchPointOffset); + if (in.front_overhang_is_present) { + out.frontOverhang = (cam_ts_StandardLength1B_t*) calloc(1, sizeof(cam_ts_StandardLength1B_t)); + toStruct_StandardLength1B(in.front_overhang, *out.frontOverhang); + } + if (in.rear_overhang_is_present) { + out.rearOverhang = (cam_ts_StandardLength1B_t*) calloc(1, sizeof(cam_ts_StandardLength1B_t)); + toStruct_StandardLength1B(in.rear_overhang, *out.rearOverhang); + } + if (in.trailer_width_is_present) { + out.trailerWidth = (cam_ts_VehicleWidth_t*) calloc(1, sizeof(cam_ts_VehicleWidth_t)); + toStruct_VehicleWidth(in.trailer_width, *out.trailerWidth); + } + toStruct_CartesianAngle(in.hitch_angle, out.hitchAngle); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrailerPresenceInformation.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrailerPresenceInformation.h new file mode 100644 index 000000000..194796a6d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrailerPresenceInformation.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrailerPresenceInformation(const cam_ts_TrailerPresenceInformation_t& in, cam_ts_msgs::TrailerPresenceInformation& out) { + out.value = in; +} + +void toStruct_TrailerPresenceInformation(const cam_ts_msgs::TrailerPresenceInformation& in, cam_ts_TrailerPresenceInformation_t& out) { + memset(&out, 0, sizeof(cam_ts_TrailerPresenceInformation_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionConfidence.h new file mode 100644 index 000000000..00e6f02b0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrajectoryInterceptionConfidence(const cam_ts_TrajectoryInterceptionConfidence_t& in, cam_ts_msgs::TrajectoryInterceptionConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TrajectoryInterceptionConfidence(const cam_ts_msgs::TrajectoryInterceptionConfidence& in, cam_ts_TrajectoryInterceptionConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_TrajectoryInterceptionConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionIndication.h new file mode 100644 index 000000000..512fb2e54 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionIndication.h @@ -0,0 +1,71 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrajectoryInterceptionIndication(const cam_ts_TrajectoryInterceptionIndication_t& in, cam_ts_msgs::TrajectoryInterceptionIndication& out) { + if (in.subjectStation) { + toRos_StationId(*in.subjectStation, out.subject_station); + out.subject_station_is_present = true; + } + toRos_TrajectoryInterceptionProbability(in.trajectoryInterceptionProbability, out.trajectory_interception_probability); + if (in.trajectoryInterceptionConfidence) { + toRos_TrajectoryInterceptionConfidence(*in.trajectoryInterceptionConfidence, out.trajectory_interception_confidence); + out.trajectory_interception_confidence_is_present = true; + } +} + +void toStruct_TrajectoryInterceptionIndication(const cam_ts_msgs::TrajectoryInterceptionIndication& in, cam_ts_TrajectoryInterceptionIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_TrajectoryInterceptionIndication_t)); + + if (in.subject_station_is_present) { + out.subjectStation = (cam_ts_StationId_t*) calloc(1, sizeof(cam_ts_StationId_t)); + toStruct_StationId(in.subject_station, *out.subjectStation); + } + toStruct_TrajectoryInterceptionProbability(in.trajectory_interception_probability, out.trajectoryInterceptionProbability); + if (in.trajectory_interception_confidence_is_present) { + out.trajectoryInterceptionConfidence = (cam_ts_TrajectoryInterceptionConfidence_t*) calloc(1, sizeof(cam_ts_TrajectoryInterceptionConfidence_t)); + toStruct_TrajectoryInterceptionConfidence(in.trajectory_interception_confidence, *out.trajectoryInterceptionConfidence); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionProbability.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionProbability.h new file mode 100644 index 000000000..3677cd882 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrajectoryInterceptionProbability.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TrajectoryInterceptionProbability(const cam_ts_TrajectoryInterceptionProbability_t& in, cam_ts_msgs::TrajectoryInterceptionProbability& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TrajectoryInterceptionProbability(const cam_ts_msgs::TrajectoryInterceptionProbability& in, cam_ts_TrajectoryInterceptionProbability_t& out) { + memset(&out, 0, sizeof(cam_ts_TrajectoryInterceptionProbability_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTransmissionInterval.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTransmissionInterval.h new file mode 100644 index 000000000..36953a41c --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTransmissionInterval.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TransmissionInterval(const cam_ts_TransmissionInterval_t& in, cam_ts_msgs::TransmissionInterval& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TransmissionInterval(const cam_ts_msgs::TransmissionInterval& in, cam_ts_TransmissionInterval_t& out) { + memset(&out, 0, sizeof(cam_ts_TransmissionInterval_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTurningDirection.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTurningDirection.h new file mode 100644 index 000000000..28b403087 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTurningDirection.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TurningDirection(const cam_ts_TurningDirection_t& in, cam_ts_msgs::TurningDirection& out) { + out.value = in; +} + +void toStruct_TurningDirection(const cam_ts_msgs::TurningDirection& in, cam_ts_TurningDirection_t& out) { + memset(&out, 0, sizeof(cam_ts_TurningDirection_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTurningRadius.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTurningRadius.h new file mode 100644 index 000000000..293efae7a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTurningRadius.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_TurningRadius(const cam_ts_TurningRadius_t& in, cam_ts_msgs::TurningRadius& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TurningRadius(const cam_ts_msgs::TurningRadius& in, cam_ts_TurningRadius_t& out) { + memset(&out, 0, sizeof(cam_ts_TurningRadius_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertUsageIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertUsageIndication.h new file mode 100644 index 000000000..5feab8502 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertUsageIndication.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_UsageIndication(const cam_ts_UsageIndication_t& in, cam_ts_msgs::UsageIndication& out) { + out.value = in; +} + +void toStruct_UsageIndication(const cam_ts_msgs::UsageIndication& in, cam_ts_UsageIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_UsageIndication_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVDS.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVDS.h new file mode 100644 index 000000000..ce6fcddb4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVDS.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VDS(const cam_ts_VDS_t& in, cam_ts_msgs::VDS& out) { + etsi_its_primitives_conversion::toRos_IA5String(in, out.value); +} + +void toStruct_VDS(const cam_ts_msgs::VDS& in, cam_ts_VDS_t& out) { + memset(&out, 0, sizeof(cam_ts_VDS_t)); + + etsi_its_primitives_conversion::toStruct_IA5String(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertValidityDuration.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertValidityDuration.h new file mode 100644 index 000000000..ea6c517de --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertValidityDuration.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_ValidityDuration(const cam_ts_ValidityDuration_t& in, cam_ts_msgs::ValidityDuration& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ValidityDuration(const cam_ts_msgs::ValidityDuration& in, cam_ts_ValidityDuration_t& out) { + memset(&out, 0, sizeof(cam_ts_ValidityDuration_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVarLengthNumber.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVarLengthNumber.h new file mode 100644 index 000000000..ee48270fd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVarLengthNumber.h @@ -0,0 +1,71 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VarLengthNumber(const cam_ts_VarLengthNumber_t& in, cam_ts_msgs::VarLengthNumber& out) { + switch (in.present) { +etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); + break; + case cam_ts_VarLengthNumber_PR_extension: + toRos_Ext1(in.choice.extension, out.extension); + out.choice = cam_ts_msgs::VarLengthNumber::CHOICE_EXTENSION; + break; + default: break; + } +} + +void toStruct_VarLengthNumber(const cam_ts_msgs::VarLengthNumber& in, cam_ts_VarLengthNumber_t& out) { + memset(&out, 0, sizeof(cam_ts_VarLengthNumber_t)); + + switch (in.choice) { +etsi_its_primitives_conversion::toStruct_INTEGER(in, out.value); + break; + case cam_ts_msgs::VarLengthNumber::CHOICE_EXTENSION: + toStruct_Ext1(in.extension, out.choice.extension); + out.present = cam_ts_VarLengthNumber_PR::cam_ts_VarLengthNumber_PR_extension; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleBreakdownSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleBreakdownSubCauseCode.h new file mode 100644 index 000000000..a758d39f0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleBreakdownSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleBreakdownSubCauseCode(const cam_ts_VehicleBreakdownSubCauseCode_t& in, cam_ts_msgs::VehicleBreakdownSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VehicleBreakdownSubCauseCode(const cam_ts_msgs::VehicleBreakdownSubCauseCode& in, cam_ts_VehicleBreakdownSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleBreakdownSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleHeight.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleHeight.h new file mode 100644 index 000000000..c8ca2103e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleHeight.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleHeight(const cam_ts_VehicleHeight_t& in, cam_ts_msgs::VehicleHeight& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VehicleHeight(const cam_ts_msgs::VehicleHeight& in, cam_ts_VehicleHeight_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleHeight_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleIdentification.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleIdentification.h new file mode 100644 index 000000000..466a329b7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleIdentification.h @@ -0,0 +1,68 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleIdentification(const cam_ts_VehicleIdentification_t& in, cam_ts_msgs::VehicleIdentification& out) { + if (in.wMInumber) { + toRos_WMInumber(*in.wMInumber, out.w_m_inumber); + out.w_m_inumber_is_present = true; + } + if (in.vDS) { + toRos_VDS(*in.vDS, out.v_ds); + out.v_ds_is_present = true; + } +} + +void toStruct_VehicleIdentification(const cam_ts_msgs::VehicleIdentification& in, cam_ts_VehicleIdentification_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleIdentification_t)); + + if (in.w_m_inumber_is_present) { + out.wMInumber = (cam_ts_WMInumber_t*) calloc(1, sizeof(cam_ts_WMInumber_t)); + toStruct_WMInumber(in.w_m_inumber, *out.wMInumber); + } + if (in.v_ds_is_present) { + out.vDS = (cam_ts_VDS_t*) calloc(1, sizeof(cam_ts_VDS_t)); + toStruct_VDS(in.v_ds, *out.vDS); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLength.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLength.h new file mode 100644 index 000000000..070333afc --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLength.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleLength(const cam_ts_VehicleLength_t& in, cam_ts_msgs::VehicleLength& out) { + toRos_VehicleLengthValue(in.vehicleLengthValue, out.vehicle_length_value); + toRos_VehicleLengthConfidenceIndication(in.vehicleLengthConfidenceIndication, out.vehicle_length_confidence_indication); +} + +void toStruct_VehicleLength(const cam_ts_msgs::VehicleLength& in, cam_ts_VehicleLength_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleLength_t)); + + toStruct_VehicleLengthValue(in.vehicle_length_value, out.vehicleLengthValue); + toStruct_VehicleLengthConfidenceIndication(in.vehicle_length_confidence_indication, out.vehicleLengthConfidenceIndication); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthConfidenceIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthConfidenceIndication.h new file mode 100644 index 000000000..f1f4ea20e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthConfidenceIndication.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleLengthConfidenceIndication(const cam_ts_VehicleLengthConfidenceIndication_t& in, cam_ts_msgs::VehicleLengthConfidenceIndication& out) { + out.value = in; +} + +void toStruct_VehicleLengthConfidenceIndication(const cam_ts_msgs::VehicleLengthConfidenceIndication& in, cam_ts_VehicleLengthConfidenceIndication_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleLengthConfidenceIndication_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthV2.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthV2.h new file mode 100644 index 000000000..a71a22979 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthV2.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleLengthV2(const cam_ts_VehicleLengthV2_t& in, cam_ts_msgs::VehicleLengthV2& out) { + toRos_VehicleLengthValue(in.vehicleLengthValue, out.vehicle_length_value); + toRos_TrailerPresenceInformation(in.trailerPresenceInformation, out.trailer_presence_information); +} + +void toStruct_VehicleLengthV2(const cam_ts_msgs::VehicleLengthV2& in, cam_ts_VehicleLengthV2_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleLengthV2_t)); + + toStruct_VehicleLengthValue(in.vehicle_length_value, out.vehicleLengthValue); + toStruct_TrailerPresenceInformation(in.trailer_presence_information, out.trailerPresenceInformation); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthValue.h new file mode 100644 index 000000000..a20b7d4f0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleLengthValue(const cam_ts_VehicleLengthValue_t& in, cam_ts_msgs::VehicleLengthValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VehicleLengthValue(const cam_ts_msgs::VehicleLengthValue& in, cam_ts_VehicleLengthValue_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleLengthValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleMass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleMass.h new file mode 100644 index 000000000..fe9f29e4a --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleMass.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleMass(const cam_ts_VehicleMass_t& in, cam_ts_msgs::VehicleMass& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VehicleMass(const cam_ts_msgs::VehicleMass& in, cam_ts_VehicleMass_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleMass_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleRole.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleRole.h new file mode 100644 index 000000000..0005bf310 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleRole.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleRole(const cam_ts_VehicleRole_t& in, cam_ts_msgs::VehicleRole& out) { + out.value = in; +} + +void toStruct_VehicleRole(const cam_ts_msgs::VehicleRole& in, cam_ts_VehicleRole_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleRole_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleWidth.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleWidth.h new file mode 100644 index 000000000..e41fd5489 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleWidth.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VehicleWidth(const cam_ts_VehicleWidth_t& in, cam_ts_msgs::VehicleWidth& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VehicleWidth(const cam_ts_msgs::VehicleWidth& in, cam_ts_VehicleWidth_t& out) { + memset(&out, 0, sizeof(cam_ts_VehicleWidth_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocity3dWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocity3dWithConfidence.h new file mode 100644 index 000000000..29f0a3712 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocity3dWithConfidence.h @@ -0,0 +1,74 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Velocity3dWithConfidence(const cam_ts_Velocity3dWithConfidence_t& in, cam_ts_msgs::Velocity3dWithConfidence& out) { + switch (in.present) { + case cam_ts_Velocity3dWithConfidence_PR_polarVelocity: + toRos_VelocityPolarWithZ(in.choice.polarVelocity, out.polar_velocity); + out.choice = cam_ts_msgs::Velocity3dWithConfidence::CHOICE_POLAR_VELOCITY; + break; + case cam_ts_Velocity3dWithConfidence_PR_cartesianVelocity: + toRos_VelocityCartesian(in.choice.cartesianVelocity, out.cartesian_velocity); + out.choice = cam_ts_msgs::Velocity3dWithConfidence::CHOICE_CARTESIAN_VELOCITY; + break; + default: break; + } +} + +void toStruct_Velocity3dWithConfidence(const cam_ts_msgs::Velocity3dWithConfidence& in, cam_ts_Velocity3dWithConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_Velocity3dWithConfidence_t)); + + switch (in.choice) { + case cam_ts_msgs::Velocity3dWithConfidence::CHOICE_POLAR_VELOCITY: + toStruct_VelocityPolarWithZ(in.polar_velocity, out.choice.polarVelocity); + out.present = cam_ts_Velocity3dWithConfidence_PR::cam_ts_Velocity3dWithConfidence_PR_polarVelocity; + break; + case cam_ts_msgs::Velocity3dWithConfidence::CHOICE_CARTESIAN_VELOCITY: + toStruct_VelocityCartesian(in.cartesian_velocity, out.choice.cartesianVelocity); + out.present = cam_ts_Velocity3dWithConfidence_PR::cam_ts_Velocity3dWithConfidence_PR_cartesianVelocity; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityCartesian.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityCartesian.h new file mode 100644 index 000000000..4120d80f5 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityCartesian.h @@ -0,0 +1,63 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VelocityCartesian(const cam_ts_VelocityCartesian_t& in, cam_ts_msgs::VelocityCartesian& out) { + toRos_VelocityComponent(in.xVelocity, out.x_velocity); + toRos_VelocityComponent(in.yVelocity, out.y_velocity); + if (in.zVelocity) { + toRos_VelocityComponent(*in.zVelocity, out.z_velocity); + out.z_velocity_is_present = true; + } +} + +void toStruct_VelocityCartesian(const cam_ts_msgs::VelocityCartesian& in, cam_ts_VelocityCartesian_t& out) { + memset(&out, 0, sizeof(cam_ts_VelocityCartesian_t)); + + toStruct_VelocityComponent(in.x_velocity, out.xVelocity); + toStruct_VelocityComponent(in.y_velocity, out.yVelocity); + if (in.z_velocity_is_present) { + out.zVelocity = (cam_ts_VelocityComponent_t*) calloc(1, sizeof(cam_ts_VelocityComponent_t)); + toStruct_VelocityComponent(in.z_velocity, *out.zVelocity); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityComponent.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityComponent.h new file mode 100644 index 000000000..178685cb7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityComponent.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VelocityComponent(const cam_ts_VelocityComponent_t& in, cam_ts_msgs::VelocityComponent& out) { + toRos_VelocityComponentValue(in.value, out.value); + toRos_SpeedConfidence(in.confidence, out.confidence); +} + +void toStruct_VelocityComponent(const cam_ts_msgs::VelocityComponent& in, cam_ts_VelocityComponent_t& out) { + memset(&out, 0, sizeof(cam_ts_VelocityComponent_t)); + + toStruct_VelocityComponentValue(in.value, out.value); + toStruct_SpeedConfidence(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityComponentValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityComponentValue.h new file mode 100644 index 000000000..ca3292d39 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityComponentValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VelocityComponentValue(const cam_ts_VelocityComponentValue_t& in, cam_ts_msgs::VelocityComponentValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VelocityComponentValue(const cam_ts_msgs::VelocityComponentValue& in, cam_ts_VelocityComponentValue_t& out) { + memset(&out, 0, sizeof(cam_ts_VelocityComponentValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityPolarWithZ.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityPolarWithZ.h new file mode 100644 index 000000000..6078cfe33 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVelocityPolarWithZ.h @@ -0,0 +1,65 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VelocityPolarWithZ(const cam_ts_VelocityPolarWithZ_t& in, cam_ts_msgs::VelocityPolarWithZ& out) { + toRos_Speed(in.velocityMagnitude, out.velocity_magnitude); + toRos_CartesianAngle(in.velocityDirection, out.velocity_direction); + if (in.zVelocity) { + toRos_VelocityComponent(*in.zVelocity, out.z_velocity); + out.z_velocity_is_present = true; + } +} + +void toStruct_VelocityPolarWithZ(const cam_ts_msgs::VelocityPolarWithZ& in, cam_ts_VelocityPolarWithZ_t& out) { + memset(&out, 0, sizeof(cam_ts_VelocityPolarWithZ_t)); + + toStruct_Speed(in.velocity_magnitude, out.velocityMagnitude); + toStruct_CartesianAngle(in.velocity_direction, out.velocityDirection); + if (in.z_velocity_is_present) { + out.zVelocity = (cam_ts_VelocityComponent_t*) calloc(1, sizeof(cam_ts_VelocityComponent_t)); + toStruct_VelocityComponent(in.z_velocity, *out.zVelocity); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVerticalAcceleration.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVerticalAcceleration.h new file mode 100644 index 000000000..c931d7462 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVerticalAcceleration.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VerticalAcceleration(const cam_ts_VerticalAcceleration_t& in, cam_ts_msgs::VerticalAcceleration& out) { + toRos_VerticalAccelerationValue(in.verticalAccelerationValue, out.vertical_acceleration_value); + toRos_AccelerationConfidence(in.verticalAccelerationConfidence, out.vertical_acceleration_confidence); +} + +void toStruct_VerticalAcceleration(const cam_ts_msgs::VerticalAcceleration& in, cam_ts_VerticalAcceleration_t& out) { + memset(&out, 0, sizeof(cam_ts_VerticalAcceleration_t)); + + toStruct_VerticalAccelerationValue(in.vertical_acceleration_value, out.verticalAccelerationValue); + toStruct_AccelerationConfidence(in.vertical_acceleration_confidence, out.verticalAccelerationConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVerticalAccelerationValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVerticalAccelerationValue.h new file mode 100644 index 000000000..94fee126c --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVerticalAccelerationValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VerticalAccelerationValue(const cam_ts_VerticalAccelerationValue_t& in, cam_ts_msgs::VerticalAccelerationValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VerticalAccelerationValue(const cam_ts_msgs::VerticalAccelerationValue& in, cam_ts_VerticalAccelerationValue_t& out) { + memset(&out, 0, sizeof(cam_ts_VerticalAccelerationValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruClusterInformation.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruClusterInformation.h new file mode 100644 index 000000000..1d7a567cd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruClusterInformation.h @@ -0,0 +1,80 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruClusterInformation(const cam_ts_VruClusterInformation_t& in, cam_ts_msgs::VruClusterInformation& out) { + if (in.clusterId) { + toRos_Identifier1B(*in.clusterId, out.cluster_id); + out.cluster_id_is_present = true; + } + if (in.clusterBoundingBoxShape) { + toRos_Shape(*in.clusterBoundingBoxShape, out.cluster_bounding_box_shape); + out.cluster_bounding_box_shape_is_present = true; + } + toRos_CardinalNumber1B(in.clusterCardinalitySize, out.cluster_cardinality_size); + if (in.clusterProfiles) { + toRos_VruClusterProfiles(*in.clusterProfiles, out.cluster_profiles); + out.cluster_profiles_is_present = true; + } +} + +void toStruct_VruClusterInformation(const cam_ts_msgs::VruClusterInformation& in, cam_ts_VruClusterInformation_t& out) { + memset(&out, 0, sizeof(cam_ts_VruClusterInformation_t)); + + if (in.cluster_id_is_present) { + out.clusterId = (cam_ts_Identifier1B_t*) calloc(1, sizeof(cam_ts_Identifier1B_t)); + toStruct_Identifier1B(in.cluster_id, *out.clusterId); + } + if (in.cluster_bounding_box_shape_is_present) { + out.clusterBoundingBoxShape = (cam_ts_Shape_t*) calloc(1, sizeof(cam_ts_Shape_t)); + toStruct_Shape(in.cluster_bounding_box_shape, *out.clusterBoundingBoxShape); + } + toStruct_CardinalNumber1B(in.cluster_cardinality_size, out.clusterCardinalitySize); + if (in.cluster_profiles_is_present) { + out.clusterProfiles = (cam_ts_VruClusterProfiles_t*) calloc(1, sizeof(cam_ts_VruClusterProfiles_t)); + toStruct_VruClusterProfiles(in.cluster_profiles, *out.clusterProfiles); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruClusterProfiles.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruClusterProfiles.h new file mode 100644 index 000000000..ff7a7f041 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruClusterProfiles.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruClusterProfiles(const cam_ts_VruClusterProfiles_t& in, cam_ts_msgs::VruClusterProfiles& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_VruClusterProfiles(const cam_ts_msgs::VruClusterProfiles& in, cam_ts_VruClusterProfiles_t& out) { + memset(&out, 0, sizeof(cam_ts_VruClusterProfiles_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruDeviceUsage.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruDeviceUsage.h new file mode 100644 index 000000000..168f916f7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruDeviceUsage.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruDeviceUsage(const cam_ts_VruDeviceUsage_t& in, cam_ts_msgs::VruDeviceUsage& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VruDeviceUsage(const cam_ts_msgs::VruDeviceUsage& in, cam_ts_VruDeviceUsage_t& out) { + memset(&out, 0, sizeof(cam_ts_VruDeviceUsage_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruEnvironment.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruEnvironment.h new file mode 100644 index 000000000..6d20e53d8 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruEnvironment.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruEnvironment(const cam_ts_VruEnvironment_t& in, cam_ts_msgs::VruEnvironment& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VruEnvironment(const cam_ts_msgs::VruEnvironment& in, cam_ts_VruEnvironment_t& out) { + memset(&out, 0, sizeof(cam_ts_VruEnvironment_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruExteriorLights.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruExteriorLights.h new file mode 100644 index 000000000..52e93946d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruExteriorLights.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruExteriorLights(const cam_ts_VruExteriorLights_t& in, cam_ts_msgs::VruExteriorLights& out) { + toRos_ExteriorLights(in.vehicular, out.vehicular); + toRos_VruSpecificExteriorLights(in.vruSpecific, out.vru_specific); +} + +void toStruct_VruExteriorLights(const cam_ts_msgs::VruExteriorLights& in, cam_ts_VruExteriorLights_t& out) { + memset(&out, 0, sizeof(cam_ts_VruExteriorLights_t)); + + toStruct_ExteriorLights(in.vehicular, out.vehicular); + toStruct_VruSpecificExteriorLights(in.vru_specific, out.vruSpecific); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruMovementControl.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruMovementControl.h new file mode 100644 index 000000000..2770b0cae --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruMovementControl.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruMovementControl(const cam_ts_VruMovementControl_t& in, cam_ts_msgs::VruMovementControl& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VruMovementControl(const cam_ts_msgs::VruMovementControl& in, cam_ts_VruMovementControl_t& out) { + memset(&out, 0, sizeof(cam_ts_VruMovementControl_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruProfileAndSubprofile.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruProfileAndSubprofile.h new file mode 100644 index 000000000..8686c5dac --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruProfileAndSubprofile.h @@ -0,0 +1,92 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruProfileAndSubprofile(const cam_ts_VruProfileAndSubprofile_t& in, cam_ts_msgs::VruProfileAndSubprofile& out) { + switch (in.present) { + case cam_ts_VruProfileAndSubprofile_PR_pedestrian: + toRos_VruSubProfilePedestrian(in.choice.pedestrian, out.pedestrian); + out.choice = cam_ts_msgs::VruProfileAndSubprofile::CHOICE_PEDESTRIAN; + break; + case cam_ts_VruProfileAndSubprofile_PR_bicyclistAndLightVruVehicle: + toRos_VruSubProfileBicyclist(in.choice.bicyclistAndLightVruVehicle, out.bicyclist_and_light_vru_vehicle); + out.choice = cam_ts_msgs::VruProfileAndSubprofile::CHOICE_BICYCLIST_AND_LIGHT_VRU_VEHICLE; + break; + case cam_ts_VruProfileAndSubprofile_PR_motorcyclist: + toRos_VruSubProfileMotorcyclist(in.choice.motorcyclist, out.motorcyclist); + out.choice = cam_ts_msgs::VruProfileAndSubprofile::CHOICE_MOTORCYCLIST; + break; + case cam_ts_VruProfileAndSubprofile_PR_animal: + toRos_VruSubProfileAnimal(in.choice.animal, out.animal); + out.choice = cam_ts_msgs::VruProfileAndSubprofile::CHOICE_ANIMAL; + break; + default: break; + } +} + +void toStruct_VruProfileAndSubprofile(const cam_ts_msgs::VruProfileAndSubprofile& in, cam_ts_VruProfileAndSubprofile_t& out) { + memset(&out, 0, sizeof(cam_ts_VruProfileAndSubprofile_t)); + + switch (in.choice) { + case cam_ts_msgs::VruProfileAndSubprofile::CHOICE_PEDESTRIAN: + toStruct_VruSubProfilePedestrian(in.pedestrian, out.choice.pedestrian); + out.present = cam_ts_VruProfileAndSubprofile_PR::cam_ts_VruProfileAndSubprofile_PR_pedestrian; + break; + case cam_ts_msgs::VruProfileAndSubprofile::CHOICE_BICYCLIST_AND_LIGHT_VRU_VEHICLE: + toStruct_VruSubProfileBicyclist(in.bicyclist_and_light_vru_vehicle, out.choice.bicyclistAndLightVruVehicle); + out.present = cam_ts_VruProfileAndSubprofile_PR::cam_ts_VruProfileAndSubprofile_PR_bicyclistAndLightVruVehicle; + break; + case cam_ts_msgs::VruProfileAndSubprofile::CHOICE_MOTORCYCLIST: + toStruct_VruSubProfileMotorcyclist(in.motorcyclist, out.choice.motorcyclist); + out.present = cam_ts_VruProfileAndSubprofile_PR::cam_ts_VruProfileAndSubprofile_PR_motorcyclist; + break; + case cam_ts_msgs::VruProfileAndSubprofile::CHOICE_ANIMAL: + toStruct_VruSubProfileAnimal(in.animal, out.choice.animal); + out.present = cam_ts_VruProfileAndSubprofile_PR::cam_ts_VruProfileAndSubprofile_PR_animal; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSizeClass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSizeClass.h new file mode 100644 index 000000000..c275df94d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSizeClass.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruSizeClass(const cam_ts_VruSizeClass_t& in, cam_ts_msgs::VruSizeClass& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VruSizeClass(const cam_ts_msgs::VruSizeClass& in, cam_ts_VruSizeClass_t& out) { + memset(&out, 0, sizeof(cam_ts_VruSizeClass_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSpecificExteriorLights.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSpecificExteriorLights.h new file mode 100644 index 000000000..e3538a173 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSpecificExteriorLights.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruSpecificExteriorLights(const cam_ts_VruSpecificExteriorLights_t& in, cam_ts_msgs::VruSpecificExteriorLights& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_VruSpecificExteriorLights(const cam_ts_msgs::VruSpecificExteriorLights& in, cam_ts_VruSpecificExteriorLights_t& out) { + memset(&out, 0, sizeof(cam_ts_VruSpecificExteriorLights_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileAnimal.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileAnimal.h new file mode 100644 index 000000000..8b36a0f87 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileAnimal.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruSubProfileAnimal(const cam_ts_VruSubProfileAnimal_t& in, cam_ts_msgs::VruSubProfileAnimal& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VruSubProfileAnimal(const cam_ts_msgs::VruSubProfileAnimal& in, cam_ts_VruSubProfileAnimal_t& out) { + memset(&out, 0, sizeof(cam_ts_VruSubProfileAnimal_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileBicyclist.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileBicyclist.h new file mode 100644 index 000000000..ceee6b449 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileBicyclist.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruSubProfileBicyclist(const cam_ts_VruSubProfileBicyclist_t& in, cam_ts_msgs::VruSubProfileBicyclist& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VruSubProfileBicyclist(const cam_ts_msgs::VruSubProfileBicyclist& in, cam_ts_VruSubProfileBicyclist_t& out) { + memset(&out, 0, sizeof(cam_ts_VruSubProfileBicyclist_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileMotorcyclist.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileMotorcyclist.h new file mode 100644 index 000000000..b24ce02ec --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfileMotorcyclist.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruSubProfileMotorcyclist(const cam_ts_VruSubProfileMotorcyclist_t& in, cam_ts_msgs::VruSubProfileMotorcyclist& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VruSubProfileMotorcyclist(const cam_ts_msgs::VruSubProfileMotorcyclist& in, cam_ts_VruSubProfileMotorcyclist_t& out) { + memset(&out, 0, sizeof(cam_ts_VruSubProfileMotorcyclist_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfilePedestrian.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfilePedestrian.h new file mode 100644 index 000000000..9d8cf0579 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVruSubProfilePedestrian.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_VruSubProfilePedestrian(const cam_ts_VruSubProfilePedestrian_t& in, cam_ts_msgs::VruSubProfilePedestrian& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_VruSubProfilePedestrian(const cam_ts_msgs::VruSubProfilePedestrian& in, cam_ts_VruSubProfilePedestrian_t& out) { + memset(&out, 0, sizeof(cam_ts_VruSubProfilePedestrian_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWMInumber.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWMInumber.h new file mode 100644 index 000000000..ee4a1804e --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWMInumber.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_WMInumber(const cam_ts_WMInumber_t& in, cam_ts_msgs::WMInumber& out) { + etsi_its_primitives_conversion::toRos_IA5String(in, out.value); +} + +void toStruct_WMInumber(const cam_ts_msgs::WMInumber& in, cam_ts_WMInumber_t& out) { + memset(&out, 0, sizeof(cam_ts_WMInumber_t)); + + etsi_its_primitives_conversion::toStruct_IA5String(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84Angle.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84Angle.h new file mode 100644 index 000000000..2e35e340d --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84Angle.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Wgs84Angle(const cam_ts_Wgs84Angle_t& in, cam_ts_msgs::Wgs84Angle& out) { + toRos_Wgs84AngleValue(in.value, out.value); + toRos_Wgs84AngleConfidence(in.confidence, out.confidence); +} + +void toStruct_Wgs84Angle(const cam_ts_msgs::Wgs84Angle& in, cam_ts_Wgs84Angle_t& out) { + memset(&out, 0, sizeof(cam_ts_Wgs84Angle_t)); + + toStruct_Wgs84AngleValue(in.value, out.value); + toStruct_Wgs84AngleConfidence(in.confidence, out.confidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleConfidence.h new file mode 100644 index 000000000..b64d1e969 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleConfidence.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Wgs84AngleConfidence(const cam_ts_Wgs84AngleConfidence_t& in, cam_ts_msgs::Wgs84AngleConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Wgs84AngleConfidence(const cam_ts_msgs::Wgs84AngleConfidence& in, cam_ts_Wgs84AngleConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_Wgs84AngleConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleValue.h new file mode 100644 index 000000000..0517d29bf --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_Wgs84AngleValue(const cam_ts_Wgs84AngleValue_t& in, cam_ts_msgs::Wgs84AngleValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Wgs84AngleValue(const cam_ts_msgs::Wgs84AngleValue& in, cam_ts_Wgs84AngleValue_t& out) { + memset(&out, 0, sizeof(cam_ts_Wgs84AngleValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWheelBaseVehicle.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWheelBaseVehicle.h new file mode 100644 index 000000000..ec47b1476 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWheelBaseVehicle.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_WheelBaseVehicle(const cam_ts_WheelBaseVehicle_t& in, cam_ts_msgs::WheelBaseVehicle& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_WheelBaseVehicle(const cam_ts_msgs::WheelBaseVehicle& in, cam_ts_WheelBaseVehicle_t& out) { + memset(&out, 0, sizeof(cam_ts_WheelBaseVehicle_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWrongWayDrivingSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWrongWayDrivingSubCauseCode.h new file mode 100644 index 000000000..54354087f --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWrongWayDrivingSubCauseCode.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_WrongWayDrivingSubCauseCode(const cam_ts_WrongWayDrivingSubCauseCode_t& in, cam_ts_msgs::WrongWayDrivingSubCauseCode& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_WrongWayDrivingSubCauseCode(const cam_ts_msgs::WrongWayDrivingSubCauseCode& in, cam_ts_WrongWayDrivingSubCauseCode_t& out) { + memset(&out, 0, sizeof(cam_ts_WrongWayDrivingSubCauseCode_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRate.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRate.h new file mode 100644 index 000000000..4a80b864b --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRate.h @@ -0,0 +1,56 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_YawRate(const cam_ts_YawRate_t& in, cam_ts_msgs::YawRate& out) { + toRos_YawRateValue(in.yawRateValue, out.yaw_rate_value); + toRos_YawRateConfidence(in.yawRateConfidence, out.yaw_rate_confidence); +} + +void toStruct_YawRate(const cam_ts_msgs::YawRate& in, cam_ts_YawRate_t& out) { + memset(&out, 0, sizeof(cam_ts_YawRate_t)); + + toStruct_YawRateValue(in.yaw_rate_value, out.yawRateValue); + toStruct_YawRateConfidence(in.yaw_rate_confidence, out.yawRateConfidence); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateConfidence.h new file mode 100644 index 000000000..c201d2add --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateConfidence.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_YawRateConfidence(const cam_ts_YawRateConfidence_t& in, cam_ts_msgs::YawRateConfidence& out) { + out.value = in; +} + +void toStruct_YawRateConfidence(const cam_ts_msgs::YawRateConfidence& in, cam_ts_YawRateConfidence_t& out) { + memset(&out, 0, sizeof(cam_ts_YawRateConfidence_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateValue.h new file mode 100644 index 000000000..589f9d9bd --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateValue.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; +#else +#include +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; +#endif + + +namespace etsi_its_cam_ts_conversion { + +void toRos_YawRateValue(const cam_ts_YawRateValue_t& in, cam_ts_msgs::YawRateValue& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_YawRateValue(const cam_ts_msgs::YawRateValue& in, cam_ts_YawRateValue_t& out) { + memset(&out, 0, sizeof(cam_ts_YawRateValue_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/package.xml b/etsi_its_conversion/etsi_its_cam_ts_conversion/package.xml new file mode 100644 index 000000000..839516608 --- /dev/null +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/package.xml @@ -0,0 +1,31 @@ + + + + etsi_its_cam_ts_conversion + 2.1.0 + Conversion functions for converting ROS messages to and from ASN.1-encoded ETSI ITS CAMs (TS) + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + etsi_its_cam_ts_coding + etsi_its_cam_ts_msgs + etsi_its_primitives_conversion + ros_environment + + catkin + ament_cmake + + + catkin + ament_cmake + + + diff --git a/etsi_its_conversion/etsi_its_conversion/CMakeLists.txt b/etsi_its_conversion/etsi_its_conversion/CMakeLists.txt index 6ece62b2d..011eeb0fa 100644 --- a/etsi_its_conversion/etsi_its_conversion/CMakeLists.txt +++ b/etsi_its_conversion/etsi_its_conversion/CMakeLists.txt @@ -11,6 +11,7 @@ if(${ROS_VERSION} EQUAL 2) find_package(ament_cmake REQUIRED) find_package(etsi_its_cam_conversion REQUIRED) + find_package(etsi_its_cam_ts_conversion REQUIRED) find_package(etsi_its_denm_conversion REQUIRED) find_package(etsi_its_cpm_ts_conversion REQUIRED) find_package(rclcpp REQUIRED) @@ -31,6 +32,7 @@ if(${ROS_VERSION} EQUAL 2) ament_target_dependencies(${PROJECT_NAME} etsi_its_cam_conversion + etsi_its_cam_ts_conversion etsi_its_denm_conversion etsi_its_cpm_ts_conversion rclcpp @@ -65,6 +67,7 @@ elseif(${ROS_VERSION} EQUAL 1) find_package(catkin REQUIRED COMPONENTS etsi_its_cam_conversion + etsi_its_cam_ts_conversion etsi_its_denm_conversion etsi_its_cpm_ts_conversion nodelet @@ -77,6 +80,7 @@ elseif(${ROS_VERSION} EQUAL 1) LIBRARIES ${PROJECT_NAME} CATKIN_DEPENDS etsi_its_cam_conversion + etsi_its_cam_ts_conversion etsi_its_denm_conversion etsi_its_cpm_ts_conversion nodelet diff --git a/etsi_its_conversion/etsi_its_conversion/config/params.ros1.yml b/etsi_its_conversion/etsi_its_conversion/config/params.ros1.yml index 1ec6cb7a3..2825f0175 100644 --- a/etsi_its_conversion/etsi_its_conversion/config/params.ros1.yml +++ b/etsi_its_conversion/etsi_its_conversion/config/params.ros1.yml @@ -1,7 +1,12 @@ has_btp_destination_port: true btp_destination_port_offset: 8 # default for Cohda Wireless MK-5 exampleETSI application etsi_message_payload_offset: 78 # default for Cohda Wireless MK-5 exampleETSI application -etsi_types: +ros2udp_etsi_types: + - cam + - cam_ts + - cpm_ts + - denm +udp2ros_etsi_types: - cam - cpm_ts - denm diff --git a/etsi_its_conversion/etsi_its_conversion/config/params.yml b/etsi_its_conversion/etsi_its_conversion/config/params.yml index 6832f3d67..1046c83d4 100644 --- a/etsi_its_conversion/etsi_its_conversion/config/params.yml +++ b/etsi_its_conversion/etsi_its_conversion/config/params.yml @@ -3,7 +3,12 @@ etsi_its_conversion: has_btp_destination_port: true btp_destination_port_offset: 8 # default for Cohda Wireless MK-5 exampleETSI application etsi_message_payload_offset: 78 # default for Cohda Wireless MK-5 exampleETSI application - etsi_types: + ros2udp_etsi_types: + - cam + - cam_ts + - cpm_ts + - denm + udp2ros_etsi_types: - cam - cpm_ts - denm diff --git a/etsi_its_conversion/etsi_its_conversion/include/etsi_its_conversion/Converter.hpp b/etsi_its_conversion/etsi_its_conversion/include/etsi_its_conversion/Converter.hpp index 0001957db..4c6e58d7b 100644 --- a/etsi_its_conversion/etsi_its_conversion/include/etsi_its_conversion/Converter.hpp +++ b/etsi_its_conversion/etsi_its_conversion/include/etsi_its_conversion/Converter.hpp @@ -29,6 +29,7 @@ SOFTWARE. #include #include +#include #include #include #ifdef ROS1 @@ -36,10 +37,12 @@ SOFTWARE. #include #include #include +#include #include #include #else #include +#include #include #include #include @@ -53,11 +56,13 @@ namespace etsi_its_conversion { #ifdef ROS1 using namespace udp_msgs; namespace cam_msgs = etsi_its_cam_msgs; +namespace cam_ts_msgs = etsi_its_cam_ts_msgs; namespace cpm_ts_msgs = etsi_its_cpm_ts_msgs; namespace denm_msgs = etsi_its_denm_msgs; #else using namespace udp_msgs::msg; namespace cam_msgs = etsi_its_cam_msgs::msg; +namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; namespace cpm_ts_msgs = etsi_its_cpm_ts_msgs::msg; namespace denm_msgs = etsi_its_denm_msgs::msg; #endif @@ -125,6 +130,8 @@ class Converter : public rclcpp::Node { static const std::string kOutputTopicUdp; static const std::string kInputTopicCam; static const std::string kOutputTopicCam; + static const std::string kInputTopicCamTs; + static const std::string kOutputTopicCamTs; static const std::string kInputTopicCpmTs; static const std::string kOutputTopicCpmTs; static const std::string kInputTopicDenm; @@ -136,8 +143,10 @@ class Converter : public rclcpp::Node { static const int kBtpDestinationPortOffsetParamDefault; static const std::string kEtsiMessagePayloadOffsetParam; static const int kEtsiMessagePayloadOffsetParamDefault; - static const std::string kEtsiTypesParam; - static const std::vector kEtsiTypesParamDefault; + static const std::string kRos2UdpEtsiTypesParam; + static const std::string kUdp2RosEtsiTypesParam; + static const std::vector kRos2UdpEtsiTypesParamDefault; + static const std::vector kUdp2RosEtsiTypesParamDefault; static const std::string kSubscriberQueueSizeParam; static const int kSubscriberQueueSizeParamDefault; static const std::string kPublisherQueueSizeParam; @@ -146,7 +155,8 @@ class Converter : public rclcpp::Node { bool has_btp_destination_port_; int btp_destination_port_offset_; int etsi_message_payload_offset_; - std::vector etsi_types_; + std::vector ros2udp_etsi_types_; + std::vector udp2ros_etsi_types_; int subscriber_queue_size_; int publisher_queue_size_; @@ -160,6 +170,7 @@ class Converter : public rclcpp::Node { rclcpp::Subscription::SharedPtr subscriber_udp_; std::unordered_map subscribers_; rclcpp::Publisher::SharedPtr publisher_cam_; + rclcpp::Publisher::SharedPtr publisher_cam_ts_; rclcpp::Publisher::SharedPtr publisher_cpm_ts_; rclcpp::Publisher::SharedPtr publisher_denm_; rclcpp::Publisher::SharedPtr publisher_udp_; diff --git a/etsi_its_conversion/etsi_its_conversion/package.xml b/etsi_its_conversion/etsi_its_conversion/package.xml index 2ef4d0a32..053216fec 100644 --- a/etsi_its_conversion/etsi_its_conversion/package.xml +++ b/etsi_its_conversion/etsi_its_conversion/package.xml @@ -16,6 +16,7 @@ MIT etsi_its_cam_conversion + etsi_its_cam_ts_conversion etsi_its_denm_conversion etsi_its_cpm_ts_conversion ros_environment diff --git a/etsi_its_conversion/etsi_its_conversion/src/Converter.cpp b/etsi_its_conversion/etsi_its_conversion/src/Converter.cpp index c39983ef1..75501e6af 100644 --- a/etsi_its_conversion/etsi_its_conversion/src/Converter.cpp +++ b/etsi_its_conversion/etsi_its_conversion/src/Converter.cpp @@ -1,7 +1,7 @@ /** ============================================================================ MIT License -Copyright (c) 2023 Institute for Automotive Engineering (ika), RWTH Aachen University +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -44,7 +44,6 @@ PLUGINLIB_EXPORT_CLASS(etsi_its_conversion::Converter, nodelet::Nodelet) RCLCPP_COMPONENTS_REGISTER_NODE(etsi_its_conversion::Converter) #endif - namespace etsi_its_conversion { const int kBtpHeaderDestinationPortCam{2001}; @@ -59,6 +58,8 @@ const std::string Converter::kInputTopicUdp{"udp/in"}; const std::string Converter::kOutputTopicUdp{"udp/out"}; const std::string Converter::kInputTopicCam{"cam/in"}; const std::string Converter::kOutputTopicCam{"cam/out"}; +const std::string Converter::kInputTopicCamTs{"cam_ts/in"}; +const std::string Converter::kOutputTopicCamTs{"cam_ts/out"}; const std::string Converter::kInputTopicCpmTs{"cpm_ts/in"}; const std::string Converter::kOutputTopicCpmTs{"cpm_ts/out"}; const std::string Converter::kInputTopicDenm{"denm/in"}; @@ -68,6 +69,8 @@ const std::string Converter::kInputTopicUdp{"~/udp/in"}; const std::string Converter::kOutputTopicUdp{"~/udp/out"}; const std::string Converter::kInputTopicCam{"~/cam/in"}; const std::string Converter::kOutputTopicCam{"~/cam/out"}; +const std::string Converter::kInputTopicCamTs{"~/cam_ts/in"}; +const std::string Converter::kOutputTopicCamTs{"~/cam_ts/out"}; const std::string Converter::kInputTopicCpmTs{"~/cpm_ts/in"}; const std::string Converter::kOutputTopicCpmTs{"~/cpm_ts/out"}; const std::string Converter::kInputTopicDenm{"~/denm/in"}; @@ -80,8 +83,10 @@ const std::string Converter::kBtpDestinationPortOffsetParam{"btp_destination_por const int Converter::kBtpDestinationPortOffsetParamDefault{8}; const std::string Converter::kEtsiMessagePayloadOffsetParam{"etsi_message_payload_offset"}; const int Converter::kEtsiMessagePayloadOffsetParamDefault{78}; -const std::string Converter::kEtsiTypesParam{"etsi_types"}; -const std::vector Converter::kEtsiTypesParamDefault{"cam", "cpm_ts", "denm"}; +const std::string Converter::kRos2UdpEtsiTypesParam{"ros2udp_etsi_types"}; +const std::string Converter::kUdp2RosEtsiTypesParam{"udp2ros_etsi_types"}; +const std::vector Converter::kRos2UdpEtsiTypesParamDefault{"cam", "cam_ts", "cpm_ts", "denm"}; +const std::vector Converter::kUdp2RosEtsiTypesParamDefault{"cam", "cpm_ts", "denm"}; const std::string Converter::kSubscriberQueueSizeParam{"subscriber_queue_size"}; const int Converter::kSubscriberQueueSizeParamDefault{10}; const std::string Converter::kPublisherQueueSizeParam{"publisher_queue_size"}; @@ -166,29 +171,50 @@ void Converter::loadParameters() { ROS12_LOG(WARN, "Parameter '%s' is not set, defaulting to '%d'", kEtsiMessagePayloadOffsetParam.c_str(), kEtsiMessagePayloadOffsetParamDefault); } - // load etsi_types + // load ros2udp_etsi_types_ +#ifdef ROS1 + if (!private_node_handle_.param>(kRos2UdpEtsiTypesParam, ros2udp_etsi_types_, kRos2UdpEtsiTypesParamDefault)) { +#else + param_desc = rcl_interfaces::msg::ParameterDescriptor(); + std::stringstream ss_ros2udp; + ss_ros2udp << "list of ETSI types to convert from ROS to UDP, one of "; + for (const auto& e : kRos2UdpEtsiTypesParamDefault) ss_ros2udp << e << ", "; + param_desc.description = ss_ros2udp.str(); + this->declare_parameter(kRos2UdpEtsiTypesParam, kRos2UdpEtsiTypesParamDefault, param_desc); + if (!this->get_parameter(kRos2UdpEtsiTypesParam, ros2udp_etsi_types_)) { +#endif + ROS12_LOG(WARN, "Parameter '%s' is not set, defaulting to all", kRos2UdpEtsiTypesParam.c_str()); + } + + // check ros2udp_etsi_types + for (const auto& e : ros2udp_etsi_types_) { + if (std::find(kRos2UdpEtsiTypesParamDefault.begin(), kRos2UdpEtsiTypesParamDefault.end(), e) == kRos2UdpEtsiTypesParamDefault.end()) + ROS12_LOG(WARN, "Invalid value '%s' for parameter '%s', skipping", e.c_str(), kRos2UdpEtsiTypesParam.c_str()); + } + + // load udp2ros_etsi_types_ #ifdef ROS1 - if (!private_node_handle_.param>(kEtsiTypesParam, etsi_types_, kEtsiTypesParamDefault)) { + if (!private_node_handle_.param>(kUdp2RosEtsiTypesParam, udp2ros_etsi_types_, kUdp2RosEtsiTypesParamDefault)) { #else param_desc = rcl_interfaces::msg::ParameterDescriptor(); - std::stringstream ss; - ss << "list of ETSI types to convert, one of "; - for (const auto& e : kEtsiTypesParamDefault) ss << e << ", "; - param_desc.description = ss.str(); - this->declare_parameter(kEtsiTypesParam, kEtsiTypesParamDefault, param_desc); - if (!this->get_parameter(kEtsiTypesParam, etsi_types_)) { + std::stringstream ss_udp2ros; + ss_udp2ros << "list of ETSI types to convert from UDP to ROS, one of "; + for (const auto& e : kUdp2RosEtsiTypesParamDefault) ss_udp2ros << e << ", "; + param_desc.description = ss_udp2ros.str(); + this->declare_parameter(kUdp2RosEtsiTypesParam, kUdp2RosEtsiTypesParamDefault, param_desc); + if (!this->get_parameter(kUdp2RosEtsiTypesParam, udp2ros_etsi_types_)) { #endif - ROS12_LOG(WARN, "Parameter '%s' is not set, defaulting to all", kEtsiTypesParam.c_str()); + ROS12_LOG(WARN, "Parameter '%s' is not set, defaulting to all", kUdp2RosEtsiTypesParam.c_str()); } - // check etsi_types - for (const auto& e : etsi_types_) { - if (std::find(kEtsiTypesParamDefault.begin(), kEtsiTypesParamDefault.end(), e) == kEtsiTypesParamDefault.end()) - ROS12_LOG(WARN, "Invalid value '%s' for parameter '%s', skipping", e.c_str(), kEtsiTypesParam.c_str()); + // check udp2ros_etsi_types + for (const auto& e : udp2ros_etsi_types_) { + if (std::find(kUdp2RosEtsiTypesParamDefault.begin(), kUdp2RosEtsiTypesParamDefault.end(), e) == kUdp2RosEtsiTypesParamDefault.end()) + ROS12_LOG(WARN, "Invalid value '%s' for parameter '%s', skipping", e.c_str(), kUdp2RosEtsiTypesParam.c_str()); } - if (!has_btp_destination_port_ && etsi_types_.size() > 1) { - ROS12_LOG(WARN, "Parameter '%s' is set to 'false', but multiple 'etsi_types' are configured, dropping all but the first", kHasBtpDestinationPortParam.c_str()); - etsi_types_.resize(1); + if (!has_btp_destination_port_ && udp2ros_etsi_types_.size() > 1) { + ROS12_LOG(WARN, "Parameter '%s' is set to 'false', but multiple 'udp2ros_etsi_types' are configured, dropping all but the first", kHasBtpDestinationPortParam.c_str()); + udp2ros_etsi_types_.resize(1); } // load subscriber_queue_size @@ -223,55 +249,87 @@ void Converter::setup() { #ifdef ROS1 publisher_udp_ = std::make_shared(private_node_handle_.advertise(kOutputTopicUdp, publisher_queue_size_)); subscriber_udp_ = std::make_shared(private_node_handle_.subscribe(kInputTopicUdp, subscriber_queue_size_, &Converter::udpCallback, this)); - if (std::find(etsi_types_.begin(), etsi_types_.end(), "cam") != etsi_types_.end()) { + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "cam") != udp2ros_etsi_types_.end()) { publishers_["cam"] = std::make_shared(private_node_handle_.advertise(kOutputTopicCam, publisher_queue_size_)); + ROS12_LOG(INFO, "Converting UDP messages of type CAM on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["cam"]->getTopic().c_str()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "cam") != ros2udp_etsi_types_.end()) { boost::function callback = boost::bind(&Converter::rosCallback, this, _1, "cam", &asn_DEF_cam_CAM, std::function(etsi_its_cam_conversion::toStruct_CAM)); subscribers_["cam"] = std::make_shared(private_node_handle_.subscribe(kInputTopicCam, subscriber_queue_size_, callback)); - ROS12_LOG(INFO, "Converting UDP messages of type CAM on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["cam"]->getTopic().c_str()); ROS12_LOG(INFO, "Converting native ROS CAMs on '%s' to UDP messages on '%s'", subscribers_["cam"]->getTopic().c_str(), publisher_udp_->getTopic().c_str()); } - if (std::find(etsi_types_.begin(), etsi_types_.end(), "cpm_ts") != etsi_types_.end()) { + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "cam_ts") != udp2ros_etsi_types_.end()) { + publishers_["cam_ts"] = std::make_shared(private_node_handle_.advertise(kOutputTopicCamTs, publisher_queue_size_)); + ROS12_LOG(INFO, "Converting UDP messages of type CAM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["cam_ts"]->getTopic().c_str()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "cam_ts") != ros2udp_etsi_types_.end()) { + boost::function callback = + boost::bind(&Converter::rosCallback, this, _1, "cam_ts", &asn_DEF_cam_ts_CAM, std::function(etsi_its_cam_ts_conversion::toStruct_CAM)); + subscribers_["cam_ts"] = std::make_shared(private_node_handle_.subscribe(kInputTopicCamTs, subscriber_queue_size_, callback)); + ROS12_LOG(INFO, "Converting native ROS CAM (TS) on '%s' to UDP messages on '%s'", subscribers_["cam_ts"]->getTopic().c_str(), publisher_udp_->getTopic().c_str()); + } + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "cpm_ts") != udp2ros_etsi_types_.end()) { publishers_["cpm_ts"] = std::make_shared(private_node_handle_.advertise(kOutputTopicCpmTs, publisher_queue_size_)); + ROS12_LOG(INFO, "Converting UDP messages of type CPM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["cpm_ts"]->getTopic().c_str()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "cpm_ts") != ros2udp_etsi_types_.end()) { boost::function callback = boost::bind(&Converter::rosCallback, this, _1, "cpm_ts", &asn_DEF_cpm_ts_CollectivePerceptionMessage, std::function(etsi_its_cpm_ts_conversion::toStruct_CollectivePerceptionMessage)); subscribers_["cpm_ts"] = std::make_shared(private_node_handle_.subscribe(kInputTopicCpmTs, subscriber_queue_size_, callback)); - ROS12_LOG(INFO, "Converting UDP messages of type CPM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["cpm_ts"]->getTopic().c_str()); ROS12_LOG(INFO, "Converting native ROS CPM (TS) on '%s' to UDP messages on '%s'", subscribers_["cpm_ts"]->getTopic().c_str(), publisher_udp_->getTopic().c_str()); } - if (std::find(etsi_types_.begin(), etsi_types_.end(), "denm") != etsi_types_.end()) { + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "denm") != udp2ros_etsi_types_.end()) { publishers_["denm"] = std::make_shared(private_node_handle_.advertise(kOutputTopicDenm, publisher_queue_size_)); + ROS12_LOG(INFO, "Converting UDP messages of type DENM on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["denm"]->getTopic().c_str()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "denm") != ros2udp_etsi_types_.end()) { boost::function callback = boost::bind(&Converter::rosCallback, this, _1, "denm", &asn_DEF_denm_DENM, std::function(etsi_its_denm_conversion::toStruct_DENM)); subscribers_["denm"] = std::make_shared(private_node_handle_.subscribe(kInputTopicDenm, subscriber_queue_size_, callback)); - ROS12_LOG(INFO, "Converting UDP messages of type DENM on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["denm"]->getTopic().c_str()); ROS12_LOG(INFO, "Converting native ROS DENMs on '%s' to UDP messages on '%s'", subscribers_["denm"]->getTopic().c_str(), publisher_udp_->getTopic().c_str()); } #else publisher_udp_ = this->create_publisher(kOutputTopicUdp, publisher_queue_size_); subscriber_udp_ = this->create_subscription(kInputTopicUdp, subscriber_queue_size_, std::bind(&Converter::udpCallback, this, std::placeholders::_1)); - if (std::find(etsi_types_.begin(), etsi_types_.end(), "cam") != etsi_types_.end()) { + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "cam") != udp2ros_etsi_types_.end()) { publisher_cam_ = this->create_publisher(kOutputTopicCam, publisher_queue_size_); + ROS12_LOG(INFO, "Converting UDP messages of type CAM on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_cam_->get_topic_name()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "cam") != ros2udp_etsi_types_.end()) { std::function callback = std::bind(&Converter::rosCallback, this, std::placeholders::_1, "cam", &asn_DEF_cam_CAM, std::function(etsi_its_cam_conversion::toStruct_CAM)); subscribers_["cam"] = this->create_subscription(kInputTopicCam, subscriber_queue_size_, callback); - ROS12_LOG(INFO, "Converting UDP messages of type CAM on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_cam_->get_topic_name()); ROS12_LOG(INFO, "Converting native ROS CAMs on '%s' to UDP messages on '%s'", subscribers_["cam"]->get_topic_name(), publisher_udp_->get_topic_name()); } - if (std::find(etsi_types_.begin(), etsi_types_.end(), "cpm_ts") != etsi_types_.end()) { + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "cam_ts") != udp2ros_etsi_types_.end()) { + publisher_cam_ts_ = this->create_publisher(kOutputTopicCamTs, publisher_queue_size_); + ROS12_LOG(INFO, "Converting UDP messages of type CAM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_cam_ts_->get_topic_name()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "cam_ts") != ros2udp_etsi_types_.end()) { + std::function callback = + std::bind(&Converter::rosCallback, this, std::placeholders::_1, "cam_ts", &asn_DEF_cam_ts_CAM, std::function(etsi_its_cam_ts_conversion::toStruct_CAM)); + subscribers_["cam_ts"] = this->create_subscription(kInputTopicCamTs, subscriber_queue_size_, callback); + ROS12_LOG(INFO, "Converting native ROS CAM (TS) on '%s' to UDP messages on '%s'", subscribers_["cam_ts"]->get_topic_name(), publisher_udp_->get_topic_name()); + } + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "cpm_ts") != udp2ros_etsi_types_.end()) { publisher_cpm_ts_ = this->create_publisher(kOutputTopicCpmTs, publisher_queue_size_); + ROS12_LOG(INFO, "Converting UDP messages of type CPM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_cpm_ts_->get_topic_name()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "cpm_ts") != ros2udp_etsi_types_.end()) { std::function callback = std::bind(&Converter::rosCallback, this, std::placeholders::_1, "cpm_ts", &asn_DEF_cpm_ts_CollectivePerceptionMessage, std::function(etsi_its_cpm_ts_conversion::toStruct_CollectivePerceptionMessage)); subscribers_["cpm_ts"] = this->create_subscription(kInputTopicCpmTs, subscriber_queue_size_, callback); - ROS12_LOG(INFO, "Converting UDP messages of type CPM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_cpm_ts_->get_topic_name()); ROS12_LOG(INFO, "Converting native ROS CPMs (TS) on '%s' to UDP messages on '%s'", subscribers_["cpm_ts"]->get_topic_name(), publisher_udp_->get_topic_name()); } - if (std::find(etsi_types_.begin(), etsi_types_.end(), "denm") != etsi_types_.end()) { + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "denm") != udp2ros_etsi_types_.end()) { publisher_denm_ = this->create_publisher(kOutputTopicDenm, publisher_queue_size_); + ROS12_LOG(INFO, "Converting UDP messages of type DENM on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_denm_->get_topic_name()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "denm") != ros2udp_etsi_types_.end()) { std::function callback = std::bind(&Converter::rosCallback, this, std::placeholders::_1, "denm", &asn_DEF_denm_DENM, std::function(etsi_its_denm_conversion::toStruct_DENM)); subscribers_["denm"] = this->create_subscription(kInputTopicDenm, subscriber_queue_size_, callback); - ROS12_LOG(INFO, "Converting UDP messages of type DENM on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_denm_->get_topic_name()); ROS12_LOG(INFO, "Converting native ROS DENMs on '%s' to UDP messages on '%s'", subscribers_["denm"]->get_topic_name(), publisher_udp_->get_topic_name()); } #endif @@ -402,7 +460,7 @@ void Converter::udpCallback(const UdpPacket::UniquePtr udp_msg) { ROS12_LOG(DEBUG, "Received bitstring (total payload size: %ld)", udp_msg->data.size()); // auto-detect ETSI message type if BTP destination port is present - std::string detected_etsi_type = etsi_types_[0]; + std::string detected_etsi_type = udp2ros_etsi_types_[0]; if (has_btp_destination_port_) { const uint16_t* btp_destination_port = reinterpret_cast(&udp_msg->data[btp_destination_port_offset_]); uint16_t destination_port = ntohs(*btp_destination_port); @@ -415,22 +473,33 @@ void Converter::udpCallback(const UdpPacket::UniquePtr udp_msg) { else detected_etsi_type = "unknown"; } - int msg_size = udp_msg->data.size() - etsi_message_payload_offset_; - ROS12_LOG(INFO, "Received ETSI message of type '%s' as bitstring (message size: %d | total payload size: %ld)", detected_etsi_type.c_str(), msg_size, udp_msg->data.size()); + const uint8_t* protocol_version = reinterpret_cast(&udp_msg->data[etsi_message_payload_offset_]); - if (detected_etsi_type == "cam") { + int msg_size = udp_msg->data.size() - etsi_message_payload_offset_; + ROS12_LOG(INFO, "Received ETSI message of type '%s' (protocolVersion: %d) as bitstring (message size: %d | total payload size: %ld)", detected_etsi_type.c_str(), *protocol_version , msg_size, udp_msg->data.size()); - // decode buffer to ROS msg - cam_msgs::CAM msg; - bool success = this->decodeBufferToRosMessage(&udp_msg->data[etsi_message_payload_offset_], msg_size, &asn_DEF_cam_CAM, std::function(etsi_its_cam_conversion::toRos_CAM), msg); - if (!success) return; + if (detected_etsi_type == "cam" || detected_etsi_type == "cam_ts") { - // publish msg + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "cam") != udp2ros_etsi_types_.end()) { // CAM EN v1.4.1 + cam_msgs::CAM msg; + bool success = this->decodeBufferToRosMessage(&udp_msg->data[etsi_message_payload_offset_], msg_size, &asn_DEF_cam_CAM, std::function(etsi_its_cam_conversion::toRos_CAM), msg); + if (!success) return; +#ifdef ROS1 + publishers_["cam"]->publish(msg); +#else + publisher_cam_->publish(msg); +#endif + } + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "cam_ts") != udp2ros_etsi_types_.end()) { // CAM TS v2.1.1 + cam_ts_msgs::CAM msg; + bool success = this->decodeBufferToRosMessage(&udp_msg->data[etsi_message_payload_offset_], msg_size, &asn_DEF_cam_ts_CAM, std::function(etsi_its_cam_ts_conversion::toRos_CAM), msg); + if (!success) return; #ifdef ROS1 - publishers_["cam"]->publish(msg); + publishers_["cam_ts"]->publish(msg); #else - publisher_cam_->publish(msg); + publisher_cam_ts_->publish(msg); #endif + } } else if (detected_etsi_type == "cpm_ts") { @@ -480,7 +549,7 @@ void Converter::rosCallback(const typename T_ros::UniquePtr msg, ROS12_LOG(INFO, "Received ETSI message of type '%s' as ROS message", type.c_str()); int btp_header_destination_port = 0; - if (type == "cam") btp_header_destination_port = kBtpHeaderDestinationPortCam; + if (type == "cam" || type == "cam_ts") btp_header_destination_port = kBtpHeaderDestinationPortCam; else if (type == "cpm_ts") btp_header_destination_port = kBtpHeaderDestinationPortCpmTs; else if (type == "denm") btp_header_destination_port = kBtpHeaderDestinationPortDenm; diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/CMakeLists.txt b/etsi_its_msgs/etsi_its_cam_ts_msgs/CMakeLists.txt new file mode 100644 index 000000000..0c17e5da4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/CMakeLists.txt @@ -0,0 +1,398 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_cam_ts_msgs) + +find_package(ros_environment REQUIRED QUIET) +set(ROS_VERSION $ENV{ROS_VERSION}) + +# === ROS 2 (AMENT) ============================================================ +if(${ROS_VERSION} EQUAL 2) + + find_package(ament_cmake REQUIRED) + find_package(rosidl_default_generators REQUIRED) + + set(msg_files + "msg/Acceleration3dWithConfidence.msg" + "msg/AccelerationCartesian.msg" + "msg/AccelerationChangeIndication.msg" + "msg/AccelerationChange.msg" + "msg/AccelerationComponent.msg" + "msg/AccelerationConfidence.msg" + "msg/AccelerationControl.msg" + "msg/AccelerationMagnitude.msg" + "msg/AccelerationMagnitudeValue.msg" + "msg/AccelerationPolarWithZ.msg" + "msg/AccelerationValue.msg" + "msg/AccessTechnologyClass.msg" + "msg/AccidentSubCauseCode.msg" + "msg/ActionIdList.msg" + "msg/ActionId.msg" + "msg/AdverseWeatherConditionAdhesionSubCauseCode.msg" + "msg/AdverseWeatherConditionExtremeWeatherConditionSubCauseCode.msg" + "msg/AdverseWeatherConditionPrecipitationSubCauseCode.msg" + "msg/AdverseWeatherConditionVisibilitySubCauseCode.msg" + "msg/AirHumidity.msg" + "msg/AltitudeConfidence.msg" + "msg/Altitude.msg" + "msg/AltitudeValue.msg" + "msg/AngleConfidence.msg" + "msg/AngularAccelerationConfidence.msg" + "msg/AngularSpeedConfidence.msg" + "msg/AxlesCount.msg" + "msg/BarometricPressure.msg" + "msg/BasicContainer.msg" + "msg/BasicLaneConfiguration.msg" + "msg/BasicLaneInformation.msg" + "msg/BasicVehicleContainerHighFrequency.msg" + "msg/BasicVehicleContainerLowFrequency.msg" + "msg/BogiesCount.msg" + "msg/CAM.msg" + "msg/CamParameters.msg" + "msg/CamPayload.msg" + "msg/CardinalNumber1B.msg" + "msg/CardinalNumber3b.msg" + "msg/CartesianAngle.msg" + "msg/CartesianAngleValue.msg" + "msg/CartesianAngularAccelerationComponent.msg" + "msg/CartesianAngularAccelerationComponentValue.msg" + "msg/CartesianAngularVelocityComponent.msg" + "msg/CartesianAngularVelocityComponentValue.msg" + "msg/CartesianCoordinateLarge.msg" + "msg/CartesianCoordinate.msg" + "msg/CartesianCoordinateSmall.msg" + "msg/CartesianCoordinateWithConfidence.msg" + "msg/CartesianPosition3d.msg" + "msg/CartesianPosition3dWithConfidence.msg" + "msg/CauseCodeChoice.msg" + "msg/CauseCode.msg" + "msg/CauseCodeType.msg" + "msg/CauseCodeV2.msg" + "msg/CenDsrcTollingZoneID.msg" + "msg/CenDsrcTollingZone.msg" + "msg/CircularShape.msg" + "msg/ClosedLanes.msg" + "msg/ClusterBreakupInfo.msg" + "msg/ClusterBreakupReason.msg" + "msg/ClusterJoinInfo.msg" + "msg/ClusterLeaveInfo.msg" + "msg/ClusterLeaveReason.msg" + "msg/CollisionRiskSubCauseCode.msg" + "msg/ConfidenceLevel.msg" + "msg/CoordinateConfidence.msg" + "msg/CorrelationCellValue.msg" + "msg/CorrelationColumn.msg" + "msg/CountryCode.msg" + "msg/CurvatureCalculationMode.msg" + "msg/CurvatureConfidence.msg" + "msg/Curvature.msg" + "msg/CurvatureValue.msg" + "msg/DangerousEndOfQueueSubCauseCode.msg" + "msg/DangerousGoodsBasic.msg" + "msg/DangerousGoodsContainer.msg" + "msg/DangerousGoodsExtended.msg" + "msg/DangerousSituationSubCauseCode.msg" + "msg/DeltaAltitude.msg" + "msg/DeltaLatitude.msg" + "msg/DeltaLongitude.msg" + "msg/DeltaReferencePosition.msg" + "msg/DeltaTimeMilliSecondPositive.msg" + "msg/DeltaTimeMilliSecondSigned.msg" + "msg/DeltaTimeQuarterSecond.msg" + "msg/DeltaTimeSecond.msg" + "msg/DeltaTimeTenSeconds.msg" + "msg/DeltaTimeTenthOfSecond.msg" + "msg/DigitalMap.msg" + "msg/Direction.msg" + "msg/DriveDirection.msg" + "msg/DrivingLaneStatus.msg" + "msg/EllipticalShape.msg" + "msg/EmbarkationStatus.msg" + "msg/EmergencyContainer.msg" + "msg/EmergencyPriority.msg" + "msg/EmergencyVehicleApproachingSubCauseCode.msg" + "msg/EnergyStorageType.msg" + "msg/EulerAnglesWithConfidence.msg" + "msg/EuVehicleCategoryCode.msg" + "msg/EuVehicleCategoryL.msg" + "msg/EuVehicleCategoryM.msg" + "msg/EuVehicleCategoryN.msg" + "msg/EuVehicleCategoryO.msg" + "msg/EventHistory.msg" + "msg/EventPoint.msg" + "msg/EventZone.msg" + "msg/Ext1.msg" + "msg/Ext2.msg" + "msg/Ext3.msg" + "msg/ExteriorLights.msg" + "msg/GeneralizedLanePosition.msg" + "msg/GeneralizedLanePositions.msg" + "msg/GenerationDeltaTime.msg" + "msg/GeoPosition.msg" + "msg/HardShoulderStatus.msg" + "msg/HazardousLocationAnimalOnTheRoadSubCauseCode.msg" + "msg/HazardousLocationDangerousCurveSubCauseCode.msg" + "msg/HazardousLocationObstacleOnTheRoadSubCauseCode.msg" + "msg/HazardousLocationSurfaceConditionSubCauseCode.msg" + "msg/HeadingChangeIndication.msg" + "msg/HeadingConfidence.msg" + "msg/Heading.msg" + "msg/HeadingValue.msg" + "msg/HeightLonCarr.msg" + "msg/HighFrequencyContainer.msg" + "msg/HumanPresenceOnTheRoadSubCauseCode.msg" + "msg/HumanProblemSubCauseCode.msg" + "msg/Identifier1B.msg" + "msg/Identifier2B.msg" + "msg/ImpassabilitySubCauseCode.msg" + "msg/InformationQuality.msg" + "msg/InterferenceManagementChannel.msg" + "msg/InterferenceManagementInfo.msg" + "msg/InterferenceManagementInfoPerChannel.msg" + "msg/InterferenceManagementZoneDefinition.msg" + "msg/InterferenceManagementZone.msg" + "msg/InterferenceManagementZones.msg" + "msg/InterferenceManagementZoneType.msg" + "msg/IntersectionReferenceId.msg" + "msg/Iso3833VehicleType.msg" + "msg/IssuerIdentifier.msg" + "msg/ItineraryPath.msg" + "msg/ItsPduHeader.msg" + "msg/IviIdentificationNumber.msg" + "msg/IvimReference.msg" + "msg/IvimReferences.msg" + "msg/LanePositionAndType.msg" + "msg/LanePosition.msg" + "msg/LanePositionOptions.msg" + "msg/LanePositionWithLateralDetails.msg" + "msg/LaneType.msg" + "msg/LaneWidth.msg" + "msg/LateralAcceleration.msg" + "msg/LateralAccelerationValue.msg" + "msg/Latitude.msg" + "msg/LightBarSirenInUse.msg" + "msg/Longitude.msg" + "msg/LongitudinalAcceleration.msg" + "msg/LongitudinalAccelerationValue.msg" + "msg/LongitudinalLanePositionConfidence.msg" + "msg/LongitudinalLanePosition.msg" + "msg/LongitudinalLanePositionValue.msg" + "msg/LowerTriangularPositiveSemidefiniteMatrices.msg" + "msg/LowerTriangularPositiveSemidefiniteMatrixColumns.msg" + "msg/LowerTriangularPositiveSemidefiniteMatrix.msg" + "msg/LowFrequencyContainer.msg" + "msg/MapemConfiguration.msg" + "msg/MapemConnectionList.msg" + "msg/MapemElementReference.msg" + "msg/MapemLaneList.msg" + "msg/MapPosition.msg" + "msg/MapReference.msg" + "msg/MapReferences.msg" + "msg/MatrixIncludedComponents.msg" + "msg/MessageId.msg" + "msg/MessageRateHz.msg" + "msg/MessageSegmentationInfo.msg" + "msg/MetaInformation.msg" + "msg/MitigationForTechnologies.msg" + "msg/MitigationPerTechnologyClass.msg" + "msg/NumberOfOccupants.msg" + "msg/ObjectClassDescription.msg" + "msg/ObjectClass.msg" + "msg/ObjectClassWithConfidence.msg" + "msg/ObjectDimensionConfidence.msg" + "msg/ObjectDimension.msg" + "msg/ObjectDimensionValue.msg" + "msg/ObjectFace.msg" + "msg/ObjectPerceptionQuality.msg" + "msg/OccupiedLanesWithConfidence.msg" + "msg/OpeningDaysHours.msg" + "msg/OrdinalNumber1B.msg" + "msg/OrdinalNumber3b.msg" + "msg/OtherSubClass.msg" + "msg/PathDeltaTimeChoice.msg" + "msg/PathDeltaTime.msg" + "msg/PathExtended.msg" + "msg/PathHistory.msg" + "msg/PathId.msg" + "msg/Path.msg" + "msg/PathPoint.msg" + "msg/PathPointPredicted.msg" + "msg/PathPredicted2.msg" + "msg/PathPredictedList.msg" + "msg/PathPredicted.msg" + "msg/PathReferences.msg" + "msg/PerceivedObject.msg" + "msg/PerformanceClass.msg" + "msg/PhoneNumber.msg" + "msg/PolygonalShape.msg" + "msg/PosCentMass.msg" + "msg/PosConfidenceEllipse.msg" + "msg/PosFrontAx.msg" + "msg/Position1d.msg" + "msg/PositionConfidenceEllipse.msg" + "msg/PositioningSolutionType.msg" + "msg/PositionOfOccupants.msg" + "msg/PositionOfPillars.msg" + "msg/PosLonCarr.msg" + "msg/PosPillar.msg" + "msg/PostCrashSubCauseCode.msg" + "msg/PrecipitationIntensity.msg" + "msg/ProtectedCommunicationZone.msg" + "msg/ProtectedCommunicationZonesRSU.msg" + "msg/ProtectedZoneId.msg" + "msg/ProtectedZoneRadius.msg" + "msg/ProtectedZoneType.msg" + "msg/Provider.msg" + "msg/PtActivationData.msg" + "msg/PtActivation.msg" + "msg/PtActivationType.msg" + "msg/PublicTransportContainer.msg" + "msg/RadialShapeDetails.msg" + "msg/RadialShape.msg" + "msg/RadialShapesList.msg" + "msg/RadialShapes.msg" + "msg/RailwayLevelCrossingSubCauseCode.msg" + "msg/RectangularShape.msg" + "msg/ReferencePosition.msg" + "msg/ReferencePositionWithConfidence.msg" + "msg/RelevanceDistance.msg" + "msg/RelevanceTrafficDirection.msg" + "msg/RequestResponseIndication.msg" + "msg/RescueAndRecoveryWorkInProgressSubCauseCode.msg" + "msg/RescueContainer.msg" + "msg/RestrictedTypes.msg" + "msg/RoadConfigurationSectionList.msg" + "msg/RoadConfigurationSection.msg" + "msg/RoadSectionDefinition.msg" + "msg/RoadSectionId.msg" + "msg/RoadSegmentReferenceId.msg" + "msg/RoadType.msg" + "msg/RoadWorksContainerBasic.msg" + "msg/RoadworksSubCauseCode.msg" + "msg/RSUContainerHighFrequency.msg" + "msg/SafeDistanceIndication.msg" + "msg/SafeDistanceIndicator.msg" + "msg/SafetyCarContainer.msg" + "msg/SemiAxisLength.msg" + "msg/SensorType.msg" + "msg/SensorTypes.msg" + "msg/SequenceNumber.msg" + "msg/SequenceOfCartesianPosition3d.msg" + "msg/SequenceOfIdentifier1B.msg" + "msg/SequenceOfSafeDistanceIndication.msg" + "msg/SequenceOfTrajectoryInterceptionIndication.msg" + "msg/Shape.msg" + "msg/SignalViolationSubCauseCode.msg" + "msg/SlowVehicleSubCauseCode.msg" + "msg/SpecialTransportContainer.msg" + "msg/SpecialTransportType.msg" + "msg/SpecialVehicleContainer.msg" + "msg/SpeedConfidence.msg" + "msg/SpeedLimit.msg" + "msg/Speed.msg" + "msg/SpeedValue.msg" + "msg/StabilityChangeIndication.msg" + "msg/StabilityLossProbability.msg" + "msg/StandardLength12b.msg" + "msg/StandardLength1B.msg" + "msg/StandardLength2B.msg" + "msg/StandardLength3b.msg" + "msg/StandardLength9b.msg" + "msg/StationarySince.msg" + "msg/StationaryVehicleSubCauseCode.msg" + "msg/StationId.msg" + "msg/StationType.msg" + "msg/SteeringWheelAngleConfidence.msg" + "msg/SteeringWheelAngle.msg" + "msg/SteeringWheelAngleValue.msg" + "msg/StoredInformationType.msg" + "msg/SubCauseCodeType.msg" + "msg/Temperature.msg" + "msg/TimestampIts.msg" + "msg/TracesExtended.msg" + "msg/Traces.msg" + "msg/TrafficConditionSubCauseCode.msg" + "msg/TrafficDirection.msg" + "msg/TrafficIslandPosition.msg" + "msg/TrafficParticipantType.msg" + "msg/TrafficRule.msg" + "msg/TrailerData.msg" + "msg/TrailerPresenceInformation.msg" + "msg/TrajectoryInterceptionConfidence.msg" + "msg/TrajectoryInterceptionIndication.msg" + "msg/TrajectoryInterceptionProbability.msg" + "msg/TransmissionInterval.msg" + "msg/TurningDirection.msg" + "msg/TurningRadius.msg" + "msg/UsageIndication.msg" + "msg/ValidityDuration.msg" + "msg/VarLengthNumber.msg" + "msg/VDS.msg" + "msg/VehicleBreakdownSubCauseCode.msg" + "msg/VehicleHeight.msg" + "msg/VehicleIdentification.msg" + "msg/VehicleLengthConfidenceIndication.msg" + "msg/VehicleLength.msg" + "msg/VehicleLengthV2.msg" + "msg/VehicleLengthValue.msg" + "msg/VehicleMass.msg" + "msg/VehicleRole.msg" + "msg/VehicleWidth.msg" + "msg/Velocity3dWithConfidence.msg" + "msg/VelocityCartesian.msg" + "msg/VelocityComponent.msg" + "msg/VelocityComponentValue.msg" + "msg/VelocityPolarWithZ.msg" + "msg/VerticalAcceleration.msg" + "msg/VerticalAccelerationValue.msg" + "msg/VruClusterInformation.msg" + "msg/VruClusterProfiles.msg" + "msg/VruDeviceUsage.msg" + "msg/VruEnvironment.msg" + "msg/VruExteriorLights.msg" + "msg/VruMovementControl.msg" + "msg/VruProfileAndSubprofile.msg" + "msg/VruSizeClass.msg" + "msg/VruSpecificExteriorLights.msg" + "msg/VruSubProfileAnimal.msg" + "msg/VruSubProfileBicyclist.msg" + "msg/VruSubProfileMotorcyclist.msg" + "msg/VruSubProfilePedestrian.msg" + "msg/Wgs84AngleConfidence.msg" + "msg/Wgs84Angle.msg" + "msg/Wgs84AngleValue.msg" + "msg/WheelBaseVehicle.msg" + "msg/WMInumber.msg" + "msg/WrongWayDrivingSubCauseCode.msg" + "msg/YawRateConfidence.msg" + "msg/YawRate.msg" + "msg/YawRateValue.msg" + ) + + rosidl_generate_interfaces(${PROJECT_NAME} + ${msg_files} + ) + + ament_export_dependencies(rosidl_default_runtime) + + ament_package() + +# === ROS (CATKIN) ============================================================= +elseif(${ROS_VERSION} EQUAL 1) + + find_package(catkin REQUIRED COMPONENTS + message_generation + std_msgs + ) + + add_message_files(DIRECTORY msg) + + generate_messages( + DEPENDENCIES std_msgs + ) + + catkin_package( + CATKIN_DEPENDS + message_runtime + std_msgs + ) + +endif() diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Acceleration3dWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Acceleration3dWithConfidence.msg new file mode 100644 index 000000000..1fc02b591 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Acceleration3dWithConfidence.msg @@ -0,0 +1,75 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Acceleration3dWithConfidence::= CHOICE { +# polarAcceleration AccelerationPolarWithZ, +# cartesianAcceleration AccelerationCartesian +# } +# ------------------------------------------------------------------------------ +# +# +# +# +# +# +# +# +# +# +# Specification of CDD Data Frames: +# +# +# +# +# +# +# +# +# +# +#* +# * This DF represents an acceleration vector with associated confidence value. +# * +# * It shall include the following components: +# * +# * @field polarAcceleration: the representation of the acceleration vector in a polar or cylindrical coordinate system. +# * +# * @field cartesianAcceleration: the representation of the acceleration vector in a cartesian coordinate system. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 choice + +AccelerationPolarWithZ polar_acceleration +uint8 CHOICE_POLAR_ACCELERATION = 0 + +AccelerationCartesian cartesian_acceleration +uint8 CHOICE_CARTESIAN_ACCELERATION = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationCartesian.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationCartesian.msg new file mode 100644 index 000000000..7aede0bba --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationCartesian.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationCartesian::= SEQUENCE{ +# xAcceleration AccelerationComponent, +# yAcceleration AccelerationComponent, +# zAcceleration AccelerationComponent OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a acceleration vector in a cartesian coordinate system. +# +# * It shall include the following components: +# * +# * @field xAcceleration: the x component of the acceleration vector with the associated confidence value. +# * +# * @field yAcceleration: the y component of the acceleration vector with the associated confidence value. +# * +# * @field zAcceleration: the optional z component of the acceleration vector with the associated confidence value. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +AccelerationComponent x_acceleration + +AccelerationComponent y_acceleration + +AccelerationComponent z_acceleration +bool z_acceleration_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationChange.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationChange.msg new file mode 100644 index 000000000..be13b4cb3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationChange.msg @@ -0,0 +1,71 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationChange::= ENUMERATED { +# accelerate (0), +# decelerate (1) +# } +# ------------------------------------------------------------------------------ +# +# +# +# +# +# +# +# +# +# +# +# Specification of CDD Data Elements: +# +# +# +# +# +# +# +# +# +# +# +#* +# * This DE indicates a change of acceleration. +# * +# * The value shall be set to: +# * - 0 - `accelerate` - if the magnitude of the horizontal velocity vector increases. +# * - 1 - `decelerate` - if the magnitude of the horizontal velocity vector decreases. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 ACCELERATE = 0 +uint8 DECELERATE = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationChangeIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationChangeIndication.msg new file mode 100644 index 000000000..7ba77b1b8 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationChangeIndication.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationChangeIndication ::= SEQUENCE { +# accelOrDecel AccelerationChange, +# actionDeltaTime DeltaTimeTenthOfSecond, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents information associated to changes in acceleration. +# * +# * It shall include the following components: +# * +# * @field accelOrDecel: the indication of an acceleration change. +# * +# * @field actionDeltaTime: the period over which the acceleration change action is performed. +# * +# * @category: Kinematic Information +# * @revision: Created in V2.1.1 +# + +AccelerationChange accel_or_decel + +DeltaTimeTenthOfSecond action_delta_time + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationComponent.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationComponent.msg new file mode 100644 index 000000000..1a0ac6916 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationComponent.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationComponent ::= SEQUENCE { +# value AccelerationValue, +# confidence AccelerationConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents an acceleration component along with a confidence value. +# * +# * It shall include the following components: +# * +# * @field value: the value of the acceleration component which can be estimated as the mean of the current distribution. +# * +# * @field confidence: the confidence value associated to the provided value. +# * +# * @category: Kinematic Information +# * @revision: Created in V2.1.1 +# + +AccelerationValue value + +AccelerationConfidence confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationConfidence.msg new file mode 100644 index 000000000..42241d2bb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationConfidence.msg @@ -0,0 +1,62 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationConfidence ::= INTEGER { +# outOfRange (101), +# unavailable (102) +# } (0..102) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2, +# * - `102` if the confidence value is unavailable. +# * +# * The value 0 shall not be used. +# * +# * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the acceleration value may be valid and used by the application. +# * +# * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @unit 0,1 m/s^2 +# * @category: Kinematic information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 102 +uint8 OUT_OF_RANGE = 101 +uint8 UNAVAILABLE = 102 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationControl.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationControl.msg new file mode 100644 index 000000000..6fbbbac3f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationControl.msg @@ -0,0 +1,72 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationControl ::= BIT STRING { +# brakePedalEngaged (0), +# gasPedalEngaged (1), +# emergencyBrakeEngaged (2), +# collisionWarningEngaged (3), +# accEngaged (4), +# cruiseControlEngaged (5), +# speedLimiterEngaged (6) +# } (SIZE(7)) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the current controlling mechanism for longitudinal movement of the vehicle. +# * The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle +# * acceleration control system is engaged or not. Currently, this DE includes the information of the +# * vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise +# * control system, cruise control system and speed limiter system. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `brakePedalEngaged` - Driver is stepping on the brake pedal, +# * - 1 - `gasPedalEngaged` - Driver is stepping on the gas pedal, +# * - 2 - `emergencyBrakeEngaged` - emergency brake system is engaged, +# * - 3 - `collisionWarningEngaged`- collision warning system is engaged, +# * - 4 - `accEngaged` - ACC is engaged, +# * - 5 - `cruiseControlEngaged` - cruise control is engaged, +# * - 6 - `speedLimiterEngaged` - speed limiter is engaged. +# * +# * Otherwise (for example when the corresponding system is not available due to non equipped system +# * or information is unavailable), the corresponding bit shall be set to 0. +# * +# * @note: The system engagement condition is OEM specific and therefore out of scope of the present document. +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 7 +uint8 BIT_INDEX_BRAKE_PEDAL_ENGAGED = 0 +uint8 BIT_INDEX_GAS_PEDAL_ENGAGED = 1 +uint8 BIT_INDEX_EMERGENCY_BRAKE_ENGAGED = 2 +uint8 BIT_INDEX_COLLISION_WARNING_ENGAGED = 3 +uint8 BIT_INDEX_ACC_ENGAGED = 4 +uint8 BIT_INDEX_CRUISE_CONTROL_ENGAGED = 5 +uint8 BIT_INDEX_SPEED_LIMITER_ENGAGED = 6 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationMagnitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationMagnitude.msg new file mode 100644 index 000000000..b3d13a78d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationMagnitude.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationMagnitude::= SEQUENCE { +# accelerationMagnitudeValue AccelerationMagnitudeValue, +# accelerationConfidence AccelerationConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the magnitude of the acceleration vector and associated confidence value. +# * +# * It shall include the following components: +# * +# * @field accelerationMagnitudeValue: the magnitude of the acceleration vector. +# * +# * @field accelerationConfidence: the confidence value of the magnitude value. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +AccelerationMagnitudeValue acceleration_magnitude_value + +AccelerationConfidence acceleration_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationMagnitudeValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationMagnitudeValue.msg new file mode 100644 index 000000000..311b0edbb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationMagnitudeValue.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationMagnitudeValue ::= INTEGER { +# positiveOutOfRange (160), +# unavailable (161) +# } (0.. 161) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the magnitude of the acceleration vector in a defined coordinate system. +# * +# * The value shall be set to: +# * - `0` to indicate no acceleration, +# * - `n` (`n > 0` and `n < 160`) to indicate acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * @unit 0,1 m/s^2 +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 161 +uint8 POSITIVE_OUT_OF_RANGE = 160 +uint8 UNAVAILABLE = 161 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationPolarWithZ.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationPolarWithZ.msg new file mode 100644 index 000000000..0ab8ff30c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationPolarWithZ.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationPolarWithZ::= SEQUENCE{ +# accelerationMagnitude AccelerationMagnitude, +# accelerationDirection CartesianAngle, +# zAcceleration AccelerationComponent OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents an acceleration vector in a polar or cylindrical coordinate system. +# +# * It shall include the following components: +# * +# * @field accelerationMagnitude: magnitude of the acceleration vector projected onto the reference plane, with the associated confidence value. +# * +# * @field accelerationDirection: polar angle of the acceleration vector projected onto the reference plane, with the associated confidence value. +# * +# * @field zAcceleration: the optional z component of the acceleration vector along the reference axis of the cylindrical coordinate system, with the associated confidence value. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +AccelerationMagnitude acceleration_magnitude + +CartesianAngle acceleration_direction + +AccelerationComponent z_acceleration +bool z_acceleration_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationValue.msg new file mode 100644 index 000000000..7985d9951 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationValue.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccelerationValue ::= INTEGER { +# negativeOutOfRange (-160), +# positiveOutOfRange (160), +# unavailable (161) +# } (-160 .. 161) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of an acceleration component in a defined coordinate system. +# * +# * The value shall be set to: +# * - `-160` for acceleration values equal to or less than -16 m/s^2, +# * - `n` (`n > -160` and `n <= 0`) to indicate negative acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `n` (`n > 0` and `n < 160`) to indicate positive acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * @note: the formula for values > -160 and <160 results in rounding up to the next value. Zero acceleration is indicated using n=0. +# * @unit 0,1 m/s^2 +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +int16 value +int16 MIN = -160 +int16 MAX = 161 +int16 NEGATIVE_OUT_OF_RANGE = -160 +int16 POSITIVE_OUT_OF_RANGE = 160 +int16 UNAVAILABLE = 161 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccessTechnologyClass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccessTechnologyClass.msg new file mode 100644 index 000000000..56dbdc56b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccessTechnologyClass.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccessTechnologyClass ::= ENUMERATED { +# any (0), +# itsg5Class (1), +# ltev2xClass (2), +# nrv2xClass (3), +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates an access technology. +# * +# * The value shall be set to: +# * - `0`: in case of any access technology class, +# * - `1`: in case of ITS-G5 access technology class, +# * - `2`: in case of LTE-V2X access technology class, +# * - `3`: in case of NR-V2X access technology class. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 ANY = 0 +uint8 ITSG5_CLASS = 1 +uint8 LTEV2X_CLASS = 2 +uint8 NRV2X_CLASS = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccidentSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccidentSubCauseCode.msg new file mode 100644 index 000000000..d4b86b209 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccidentSubCauseCode.msg @@ -0,0 +1,72 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AccidentSubCauseCode ::= INTEGER { +# unavailable (0), +# multiVehicleAccident (1), +# heavyAccident (2), +# accidentInvolvingLorry (3), +# accidentInvolvingBus (4), +# accidentInvolvingHazardousMaterials (5), +# accidentOnOppositeLane (6), +# unsecuredAccident (7), +# assistanceRequested (8) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause code of the @ref CauseCode `accident`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case the information on the sub cause of the accident is unavailable, +# * - 1 - `multiVehicleAccident` - in case more than two vehicles are involved in accident, +# * - 2 - `heavyAccident` - in case the airbag of the vehicle involved in the accident is triggered, +# * the accident requires important rescue and/or recovery work, +# * - 3 - `accidentInvolvingLorry` - in case the accident involves a lorry, +# * - 4 - `accidentInvolvingBus` - in case the accident involves a bus, +# * - 5 - `accidentInvolvingHazardousMaterials`- in case the accident involves hazardous material, +# * - 6 - `accidentOnOppositeLane` - in case the accident happens on opposite lanes, +# * - 7 - `unsecuredAccident` - in case the accident is not secured, +# * - 8 - `assistanceRequested` - in case rescue and assistance are requested, +# * - 9-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 MULTI_VEHICLE_ACCIDENT = 1 +uint8 HEAVY_ACCIDENT = 2 +uint8 ACCIDENT_INVOLVING_LORRY = 3 +uint8 ACCIDENT_INVOLVING_BUS = 4 +uint8 ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS = 5 +uint8 ACCIDENT_ON_OPPOSITE_LANE = 6 +uint8 UNSECURED_ACCIDENT = 7 +uint8 ASSISTANCE_REQUESTED = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ActionId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ActionId.msg new file mode 100644 index 000000000..89bc5bfcb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ActionId.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ActionId ::= SEQUENCE { +# originatingStationId StationId, +# sequenceNumber SequenceNumber +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents an identifier used to describe a protocol action taken by an ITS-S. +# * +# * It shall include the following components: +# * +# * @field originatingStationId: Id of the ITS-S that takes the action. +# * +# * @field sequenceNumber: a sequence number. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1 based on @ref ActionID. +# + +StationId originating_station_id + +SequenceNumber sequence_number + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ActionIdList.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ActionIdList.msg new file mode 100644 index 000000000..6b1b0d809 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ActionIdList.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ActionIdList::= SEQUENCE (SIZE(1..8, ...)) OF ActionId +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of @ref ActionId. +# +# * @category: Communication Information +# * @revision: Created in V2.1.1 based on ReferenceDenms from DENM Release 1 +# + +ActionId[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionAdhesionSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionAdhesionSubCauseCode.msg new file mode 100644 index 000000000..d8e079cb7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionAdhesionSubCauseCode.msg @@ -0,0 +1,77 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER { +# unavailable (0), +# heavyFrostOnRoad (1), +# fuelOnRoad (2), +# mudOnRoad (3), +# snowOnRoad (4), +# iceOnRoad (5), +# blackIceOnRoad (6), +# oilOnRoad (7), +# looseChippings (8), +# instantBlackIce (9), +# roadsSalted (10) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause code of the @ref CauseCode `adverseWeatherCondition-Adhesion`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the cause of the low road adhesion is unavailable, +# * - 1 - `heavyFrostOnRoad`- in case the low road adhesion is due to heavy frost on the road, +# * - 2 - `fuelOnRoad` - in case the low road adhesion is due to fuel on the road, +# * - 3 - `mudOnRoad` - in case the low road adhesion is due to mud on the road, +# * - 4 - `snowOnRoad` - in case the low road adhesion is due to snow on the road, +# * - 5 - `iceOnRoad` - in case the low road adhesion is due to ice on the road, +# * - 6 - `blackIceOnRoad` - in case the low road adhesion is due to black ice on the road, +# * - 7 - `oilOnRoad` - in case the low road adhesion is due to oil on the road, +# * - 8 - `looseChippings` - in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard, +# * - 9 - `instantBlackIce` - in case the low road adhesion is due to instant black ice on the road surface, +# * - 10 - `roadsSalted` - when the low road adhesion is due to salted road, +# * - 11-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 HEAVY_FROST_ON_ROAD = 1 +uint8 FUEL_ON_ROAD = 2 +uint8 MUD_ON_ROAD = 3 +uint8 SNOW_ON_ROAD = 4 +uint8 ICE_ON_ROAD = 5 +uint8 BLACK_ICE_ON_ROAD = 6 +uint8 OIL_ON_ROAD = 7 +uint8 LOOSE_CHIPPINGS = 8 +uint8 INSTANT_BLACK_ICE = 9 +uint8 ROADS_SALTED = 10 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionExtremeWeatherConditionSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionExtremeWeatherConditionSubCauseCode.msg new file mode 100644 index 000000000..a359e9d0f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionExtremeWeatherConditionSubCauseCode.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER { +# unavailable (0), +# strongWinds (1), +# damagingHail (2), +# hurricane (3), +# thunderstorm (4), +# tornado (5), +# blizzard (6) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of extreme weather condition is unavailable, +# * - 1 - `strongWinds` - in case the type of extreme weather condition is strong wind, +# * - 2 - `damagingHail`- in case the type of extreme weather condition is damaging hail, +# * - 3 - `hurricane` - in case the type of extreme weather condition is hurricane, +# * - 4 - `thunderstorm`- in case the type of extreme weather condition is thunderstorm, +# * - 5 - `tornado` - in case the type of extreme weather condition is tornado, +# * - 6 - `blizzard` - in case the type of extreme weather condition is blizzard. +# * - 7-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 STRONG_WINDS = 1 +uint8 DAMAGING_HAIL = 2 +uint8 HURRICANE = 3 +uint8 THUNDERSTORM = 4 +uint8 TORNADO = 5 +uint8 BLIZZARD = 6 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionPrecipitationSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionPrecipitationSubCauseCode.msg new file mode 100644 index 000000000..05a6b59ed --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionPrecipitationSubCauseCode.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER { +# unavailable (0), +# heavyRain (1), +# heavySnowfall (2), +# softHail (3) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of precipitation is unavailable, +# * - 1 - `heavyRain` - in case the type of precipitation is heavy rain, +# * - 2 - `heavySnowfall` - in case the type of precipitation is heavy snow fall, +# * - 3 - `softHail` - in case the type of precipitation is soft hail. +# * - 4-255 - are reserved for future usage +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 HEAVY_RAIN = 1 +uint8 HEAVY_SNOWFALL = 2 +uint8 SOFT_HAIL = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionVisibilitySubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionVisibilitySubCauseCode.msg new file mode 100644 index 000000000..5d4e69053 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionVisibilitySubCauseCode.msg @@ -0,0 +1,71 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER { +# unavailable (0), +# fog (1), +# smoke (2), +# heavySnowfall (3), +# heavyRain (4), +# heavyHail (5), +# lowSunGlare (6), +# sandstorms (7), +# swarmsOfInsects (8) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the cause of low visibility is unavailable, +# * - 1 - `fog` - in case the cause of low visibility is fog, +# * - 2 - `smoke` - in case the cause of low visibility is smoke, +# * - 3 - `heavySnowfall` - in case the cause of low visibility is heavy snow fall, +# * - 4 - `heavyRain` - in case the cause of low visibility is heavy rain, +# * - 5 - `heavyHail` - in case the cause of low visibility is heavy hail, +# * - 6 - `lowSunGlare` - in case the cause of low visibility is sun glare, +# * - 7 - `sandstorms` - in case the cause of low visibility is sand storm, +# * - 8 - `swarmsOfInsects`- in case the cause of low visibility is swarm of insects. +# * - 9-255 - are reserved for future usage +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 FOG = 1 +uint8 SMOKE = 2 +uint8 HEAVY_SNOWFALL = 3 +uint8 HEAVY_RAIN = 4 +uint8 HEAVY_HAIL = 5 +uint8 LOW_SUN_GLARE = 6 +uint8 SANDSTORMS = 7 +uint8 SWARMS_OF_INSECTS = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AirHumidity.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AirHumidity.msg new file mode 100644 index 000000000..1a87a398d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AirHumidity.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AirHumidity ::= INTEGER { +# oneHundredPercent (1000), +# unavailable (1001) +# } (1..1001) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the air humidity in tenths of percent. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 1001`) indicates that the applicable value is equal to or less than n x 0,1 percent and greater than (n-1) x 0,1 percent. +# * - `1001` indicates that the air humidity is unavailable. +# * +# * @category: Basic information +# * @unit: 0,1 % +# * @revision: created in V2.1.1 +# + +uint16 value +uint16 MIN = 1 +uint16 MAX = 1001 +uint16 ONE_HUNDRED_PERCENT = 1000 +uint16 UNAVAILABLE = 1001 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Altitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Altitude.msg new file mode 100644 index 000000000..cd23af7a6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Altitude.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Altitude ::= SEQUENCE { +# altitudeValue AltitudeValue, +# altitudeConfidence AltitudeConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * It shall include the following components: +# * +# * @field altitudeValue: altitude of a geographical point. +# * +# * @field altitudeConfidence: confidence level of the altitudeValue. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead. +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# + +AltitudeValue altitude_value + +AltitudeConfidence altitude_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeConfidence.msg new file mode 100644 index 000000000..45e848bda --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeConfidence.msg @@ -0,0 +1,101 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AltitudeConfidence ::= ENUMERATED { +# alt-000-01 (0), +# alt-000-02 (1), +# alt-000-05 (2), +# alt-000-10 (3), +# alt-000-20 (4), +# alt-000-50 (5), +# alt-001-00 (6), +# alt-002-00 (7), +# alt-005-00 (8), +# alt-010-00 (9), +# alt-020-00 (10), +# alt-050-00 (11), +# alt-100-00 (12), +# alt-200-00 (13), +# outOfRange (14), +# unavailable (15) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre, +# * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre, +# * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre, +# * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre, +# * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre, +# * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre, +# * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre, +# * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre, +# * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres, +# * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres, +# * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres, +# * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres, +# * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres, +# * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres, +# * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres, +# * - 15 - `unavailable` - if the confidence value is unavailable. +# * +# * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused +# * by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the altitude value may be valid and used by the application. +# * +# * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the +# * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 ALT_000_01 = 0 +uint8 ALT_000_02 = 1 +uint8 ALT_000_05 = 2 +uint8 ALT_000_10 = 3 +uint8 ALT_000_20 = 4 +uint8 ALT_000_50 = 5 +uint8 ALT_001_00 = 6 +uint8 ALT_002_00 = 7 +uint8 ALT_005_00 = 8 +uint8 ALT_010_00 = 9 +uint8 ALT_020_00 = 10 +uint8 ALT_050_00 = 11 +uint8 ALT_100_00 = 12 +uint8 ALT_200_00 = 13 +uint8 OUT_OF_RANGE = 14 +uint8 UNAVAILABLE = 15 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeValue.msg new file mode 100644 index 000000000..5cda57d38 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeValue.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AltitudeValue ::= INTEGER { +# negativeOutOfRange (-100000), +# postiveOutOfRange (800000), +# unavailable (800001) +# } (-100000..800001) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the altitude value in a WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `-100 000` if the altitude is equal to or less than -1 000 m, +# * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre, +# * - `800 000` if the altitude greater than 7 999,99 m, +# * - `800 001` if the information is not available. +# * +# * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary. +# * @unit: 0,01 metre +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed) +# + +int32 value +int32 MIN = -100000 +int32 MAX = 800001 +int32 NEGATIVE_OUT_OF_RANGE = -100000 +int32 POSTIVE_OUT_OF_RANGE = 800000 +int32 UNAVAILABLE = 800001 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngleConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngleConfidence.msg new file mode 100644 index 000000000..8c68734c1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngleConfidence.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AngleConfidence ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# } (1..127) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the angle confidence value which represents the estimated absolute accuracy of an angle value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the accuracy is equal to or less than n * 0,1 degrees and greater than (n-1) x * 0,1 degrees, +# * - `126` if the accuracy is out of range, i.e. greater than 12,5 degrees, +# * - `127` if the accuracy information is not available. +# * +# * @unit: 0,1 degrees +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 127 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngularAccelerationConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngularAccelerationConfidence.msg new file mode 100644 index 000000000..7cd946e5f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngularAccelerationConfidence.msg @@ -0,0 +1,68 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AngularAccelerationConfidence ::= ENUMERATED { +# degSecSquared-01 (0), +# degSecSquared-02 (1), +# degSecSquared-05 (2), +# degSecSquared-10 (3), +# degSecSquared-20 (4), +# degSecSquared-50 (5), +# outOfRange (6), +# unavailable (7) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the angular acceleration confidence value which represents the estimated accuracy of an angular acceleration value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * For correlation computation, maximum interval levels shall be assumed. +# * +# * The value shall be set to: +# * - 0 - `degSecSquared-01` - if the accuracy is equal to or less than 1 degree/second^2, +# * - 1 - `degSecSquared-02` - if the accuracy is equal to or less than 2 degrees/second^2 and greater than 1 degree/second^2, +# * - 2 - `degSecSquared-05` - if the accuracy is equal to or less than 5 degrees/second^2 and greater than 1 degree/second^2, +# * - 3 - `degSecSquared-10` - if the accuracy is equal to or less than 10 degrees/second^2 and greater than 5 degrees/second^2, +# * - 4 - `degSecSquared-20` - if the accuracy is equal to or less than 20 degrees/second^2 and greater than 10 degrees/second^2, +# * - 5 - `degSecSquared-50` - if the accuracy is equal to or less than 50 degrees/second^2 and greater than 20 degrees/second^2, +# * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second^2, +# * - 7 - `unavailable` - if the accuracy information is unavailable. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 DEG_SEC_SQUARED_01 = 0 +uint8 DEG_SEC_SQUARED_02 = 1 +uint8 DEG_SEC_SQUARED_05 = 2 +uint8 DEG_SEC_SQUARED_10 = 3 +uint8 DEG_SEC_SQUARED_20 = 4 +uint8 DEG_SEC_SQUARED_50 = 5 +uint8 OUT_OF_RANGE = 6 +uint8 UNAVAILABLE = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngularSpeedConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngularSpeedConfidence.msg new file mode 100644 index 000000000..38a7c74b9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AngularSpeedConfidence.msg @@ -0,0 +1,68 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AngularSpeedConfidence ::= ENUMERATED { +# degSec-01 (0), +# degSec-02 (1), +# degSec-05 (2), +# degSec-10 (3), +# degSec-20 (4), +# degSec-50 (5), +# outOfRange (6), +# unavailable (7) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the angular speed confidence value which represents the estimated absolute accuracy of an angular speed value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * For correlation computation, maximum interval levels can be assumed. +# * +# * The value shall be set to: +# * - 0 - `degSec-01` - if the accuracy is equal to or less than 1 degree/second, +# * - 1 - `degSec-02` - if the accuracy is equal to or less than 2 degrees/second and greater than 1 degree/second, +# * - 2 - `degSec-05` - if the accuracy is equal to or less than 5 degrees/second and greater than 2 degrees/second, +# * - 3 - `degSec-10` - if the accuracy is equal to or less than 10 degrees/second and greater than 5 degrees/second, +# * - 4 - `degSec-20` - if the accuracy is equal to or less than 20 degrees/second and greater than 10 degrees/second, +# * - 5 - `degSec-50` - if the accuracy is equal to or less than 50 degrees/second and greater than 20 degrees/second, +# * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second, +# * - 7 - `unavailable` - if the accuracy information is unavailable. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 DEG_SEC_01 = 0 +uint8 DEG_SEC_02 = 1 +uint8 DEG_SEC_05 = 2 +uint8 DEG_SEC_10 = 3 +uint8 DEG_SEC_20 = 4 +uint8 DEG_SEC_50 = 5 +uint8 OUT_OF_RANGE = 6 +uint8 UNAVAILABLE = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AxlesCount.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AxlesCount.msg new file mode 100644 index 000000000..246217850 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AxlesCount.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AxlesCount ::= INTEGER{ +# outOfRange (1001), +# unavailable (1002) +# } (2..1002) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the number of axles of a passing train. +# * +# * The value shall be set to: +# * - `n` (`n > 2` and `n < 1001`) indicates that the train has n x axles, +# * - `1001`indicates that the number of axles is out of range, +# * - `1002` the information is unavailable. +# * +# * +# * @unit: Number of axles +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 2 +uint16 MAX = 1002 +uint16 OUT_OF_RANGE = 1001 +uint16 UNAVAILABLE = 1002 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BarometricPressure.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BarometricPressure.msg new file mode 100644 index 000000000..ec2331ef6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BarometricPressure.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# BarometricPressure ::= INTEGER{ +# outOfRangelower (2999), +# outOfRangeUpper (12001), +# unavailable (12002) +# } (2999..12002) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the measured uncompensated atmospheric pressure. +# * +# * The value shall be set to: +# * - `2999` indicates that the applicable value is less than 29990 Pa, +# * - `n` (`n > 2999` and `n <= 12000`) indicates that the applicable value is equal to or less than n x 10 Pa and greater than (n-1) x 10 Pa, +# * - `12001` indicates that the values is greater than 120000 Pa, +# * - `12002` indicates that the information is not available. +# * +# * @category: Basic information +# * @unit: 10 Pascal +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 2999 +uint16 MAX = 12002 +uint16 OUT_OF_RANGELOWER = 2999 +uint16 OUT_OF_RANGE_UPPER = 12001 +uint16 UNAVAILABLE = 12002 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicContainer.msg new file mode 100644 index 000000000..989684a8e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicContainer.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# BasicContainer ::= SEQUENCE { +# stationType TrafficParticipantType, +# referencePosition ReferencePositionWithConfidence, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DE represents a general container for usage in various types of messages. +# * +# * It shall include the following components: +# * +# * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in. +# * +# * @field referencePosition: the reference position of the station that has generated the message that contains the basic container. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +TrafficParticipantType station_type + +ReferencePositionWithConfidence reference_position + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicLaneConfiguration.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicLaneConfiguration.msg new file mode 100644 index 000000000..53091299b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicLaneConfiguration.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# BasicLaneConfiguration::= SEQUENCE(SIZE(1..16,...)) OF BasicLaneInformation +# ------------------------------------------------------------------------------ +# * +# * This DF provides information about the configuration of a road section in terms of lanes using a list of @ref LanePositionAndType . +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +BasicLaneInformation[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicLaneInformation.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicLaneInformation.msg new file mode 100644 index 000000000..6c0cfc198 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicLaneInformation.msg @@ -0,0 +1,70 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# BasicLaneInformation::= SEQUENCE{ +# laneNumber LanePosition, +# direction Direction, +# laneWidth LaneWidth OPTIONAL, +# connectingLane LanePosition OPTIONAL, +# connectingRoadSection RoadSectionId OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides basic information about a single lane of a road segment. +# * It includes the following components: +# * +# * @field laneNumber: the number associated to the lane that provides a transversal identification. +# * +# * @field direction: the direction of traffic flow allowed on the lane. +# * +# * @field laneWidth: the optional width of the lane. +# * +# * @field connectingLane: the number of the connecting lane in the next road section, i.e. the number of the lane which the vehicle will use when travelling from one section to the next, +# * if it does not actively change lanes. If this component is absent, the lane name number remains the same in the next section. +# * +# * @field connectingRoadSection: the identifier of the next road section in direction of traffic, that is connecting to the current road section. +# * If this component is absent, the connecting road section is the one following the instance where this DF is placed in the @ref RoadConfigurationSectionList. +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +LanePosition lane_number + +Direction direction + +LaneWidth lane_width +bool lane_width_is_present + +LanePosition connecting_lane +bool connecting_lane_is_present + +RoadSectionId connecting_road_section +bool connecting_road_section_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerHighFrequency.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerHighFrequency.msg new file mode 100644 index 000000000..5f3afcab6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerHighFrequency.msg @@ -0,0 +1,138 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# BasicVehicleContainerHighFrequency ::= SEQUENCE { +# heading Heading, +# speed Speed, +# driveDirection DriveDirection, +# vehicleLength VehicleLength, +# vehicleWidth VehicleWidth, +# longitudinalAcceleration AccelerationComponent, +# curvature Curvature, +# curvatureCalculationMode CurvatureCalculationMode, +# yawRate YawRate, +# accelerationControl AccelerationControl OPTIONAL, +# lanePosition LanePosition OPTIONAL, +# steeringWheelAngle SteeringWheelAngle OPTIONAL, +# lateralAcceleration AccelerationComponent OPTIONAL, +# verticalAcceleration AccelerationComponent OPTIONAL, +# performanceClass PerformanceClass OPTIONAL, +# cenDsrcTollingZone CenDsrcTollingZone OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Basic Vehicle Container High Frequency. +#* +#* It shall include the following components: +#* +#* @field heading: It represent the heading and heading accuracy of the vehicle movement of the originating ITS-S with regards to the true north. +#* The heading accuracy provided in the heading Confidence value shall provide the accuracy of the measured vehicle heading with a confidence level +#* of 95 %. Otherwise, the value of the headingConfidence shall be set to unavailable. +#* +#* @field speed: It represent driving speed and speed accuracy of the originating ITS-S. The speed accuracy provided in the speedConfidence shall +#* provide the accuracy of the speed value with a confidence level of 95 %. Otherwise, the speedConfidence shall be set to unavailable. +#* +#* @field driveDirection: This component represent the vehicle drive direction (forward or backward) of the originating ITS-S. +#* +#* @field vehicleLength: This component represent the vehicle length value and vehicle length confidence indication of the vehicle ITS-S that +#* originate the CAM. +#* +#* @field vehicleWidth: This component represents the Vehicle Width of the vehicle ITS-S that originates the CAM excluding side mirrors and possible +#* similar extensions. +#* +#* @field longitudinalAcceleration: It represent the vehicle Longitudinal Acceleration of the originating ITS-S in the centre of the mass of the +#* empty vehicle. It shall include the measured vehicle longitudinal acceleration and its accuracy value with the confidence level of 95 %. +#* Otherwise, the longitudinalAccelerationConfidence shall be set to unavailable. +#* +#* @field curvature: this component reppresent the actual trajectory of the vehicle. +#* +#* @field curvatureCalculationMode: It indicates whether vehicle yaw-rate is used in the calculation of the curvature of the vehicle ITS-S that +#* originates the CAM. +#* +#* @field yawRate: It denotes the vehicle rotation around the centre of mass of the empty vehicle. The leading sign denotes the direction of +#* rotation. The value is negative if the motion is clockwise when viewing from the top. +#* yawRateConfidence denotes the accuracy for the 95 % confidence level for the measured yawRateValue. Otherwise, the value of yawRateConfidence +#* shall be set to unavailable. +#* +#* @field accelerationControl: an optional component which represents the current status of the vehcile mechnanisms controlling the longitudinal movement of the vehcile ITS-S +#* (e.g. brake pedal, gas pedal, etc. engaged) that originate the CAM. +#* +#* @field lanePosition: an optional component which represents the lanePosition of the referencePosition of a vehicle. This component shall be present if the data is +#* available at the originating ITS-S. +#* +#* @field steeringWheelAngle: an optional component which indicates the steering wheel angle and accuracy as measured at the vehicle ITS-S that originates the CAM. +#* +#* @field lateralAcceleration: an optional component which represents the vehicle lateral acceleration of the originating ITS-S in the centre of the mass of the empty vehicle. +#* It shall include the measured vehicle lateral acceleration and its accuracy value with the confidence level of 95%. +#* +#* @field verticalAcceleration: an optional component which indicates the originating ITS-S in the centre of the mass of the empty vehicle. +#* +#* @field performanceClass: an optional component characterizes the maximum age of the CAM data elements with regard to the generation delta time. +#* +#* @field cenDsrcTollingZone: an optional component which represents the information about the position of a CEN DSRC Tolling Station operating in the 5,8 GHz frequency band. +# + +Heading heading + +Speed speed + +DriveDirection drive_direction + +VehicleLength vehicle_length + +VehicleWidth vehicle_width + +AccelerationComponent longitudinal_acceleration + +Curvature curvature + +CurvatureCalculationMode curvature_calculation_mode + +YawRate yaw_rate + +AccelerationControl acceleration_control +bool acceleration_control_is_present + +LanePosition lane_position +bool lane_position_is_present + +SteeringWheelAngle steering_wheel_angle +bool steering_wheel_angle_is_present + +AccelerationComponent lateral_acceleration +bool lateral_acceleration_is_present + +AccelerationComponent vertical_acceleration +bool vertical_acceleration_is_present + +PerformanceClass performance_class +bool performance_class_is_present + +CenDsrcTollingZone cen_dsrc_tolling_zone +bool cen_dsrc_tolling_zone_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerLowFrequency.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerLowFrequency.msg new file mode 100644 index 000000000..78a8988ae --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerLowFrequency.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# BasicVehicleContainerLowFrequency ::= SEQUENCE { +# vehicleRole VehicleRole, +# exteriorLights ExteriorLights, +# pathHistory Path +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Basic Vehicle Container Low Frequency. +#* +#* It shall include the following components: +#* +#* @field vehicleRole: represent the role of the vehicle ITS-S that originates the CAM. Only values 0 to 7 shall be used. +#* +#* @field exteriorLights: represent the status of the most important exterior lights switches of the vehicle ITS-S that originates the CAM. +#* +#* @field pathHistory: which represents the vehicle's recent movement over some past time and/or distance. It consists of a list of path points, +#* each represented as DF PathPoint. The list of path points may consist of up to 23 elements. +# + +VehicleRole vehicle_role + +ExteriorLights exterior_lights + +Path path_history + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BogiesCount.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BogiesCount.msg new file mode 100644 index 000000000..f887fd753 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BogiesCount.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# BogiesCount ::= INTEGER{ +# outOfRange (100), +# unavailable (101) +# } (2..101) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the cardinal number of bogies of a train. +# * +# * The value shall be set to: +# * - `n` (`n > 1` and `n < 100`) indicates that the train has n x bogies, +# * - `100`indicates that the number of bogies is out of range, +# * - `101` the information is unavailable. +# * +# * @unit: Number of bogies +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 2 +uint8 MAX = 101 +uint8 OUT_OF_RANGE = 100 +uint8 UNAVAILABLE = 101 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CAM.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CAM.msg new file mode 100644 index 000000000..90a3065f3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CAM.msg @@ -0,0 +1,47 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CAM ::= SEQUENCE { +# header ItsPduHeader (WITH COMPONENTS {... , protocolVersion (2), messageId(cam)}), +# ------------------------------------------------------------------------------ +# The root data frame for cooperative awareness messages +#* +#* This type represents the CAM PDU. +#* +#* It shall include the following componenets: +#* +#* @field header: the header of the CAM PDU. +#* +#* @field cam: the payload of the CAM PDU. +# + +ItsPduHeader header +int64 HEADER_MIN = 0 + +CamPayload cam + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamParameters.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamParameters.msg new file mode 100644 index 000000000..7554dffcc --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamParameters.msg @@ -0,0 +1,57 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CamParameters ::= SEQUENCE { +# basicContainer BasicContainer, +# highFrequencyContainer HighFrequencyContainer, +# lowFrequencyContainer LowFrequencyContainer OPTIONAL, +# specialVehicleContainer SpecialVehicleContainer OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +#* @field basicContainer: the mandatory basic container of the CAM. +#* +#* @field highFrequencyContainer: the mandatory container represents the high frequency of the CAM. +#* +#* @field lowFrequencyContainer: the optional conatainer represents the low frequency of the CAM. +#* +#* @field specialVehicleContainer: The special container of the CAM shall be present as defined in clause 6.1.2. +#* The content of the container shall be set according to the value of the vehicleRole component as specified in Table 5. +# + +BasicContainer basic_container + +HighFrequencyContainer high_frequency_container + +LowFrequencyContainer low_frequency_container +bool low_frequency_container_is_present + +SpecialVehicleContainer special_vehicle_container +bool special_vehicle_container_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamPayload.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamPayload.msg new file mode 100644 index 000000000..57d69b365 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamPayload.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CamPayload ::= SEQUENCE { +# generationDeltaTime GenerationDeltaTime, +# camParameters CamParameters +# } +# ------------------------------------------------------------------------------ +# * +#* This type represents the CAM payload. +#* +#* It shall include the following components: +#* +#* @field generationDeltaTime: Time corresponding to the time of the reference position in the CAM, considered as time of the CAM generation. +#* +#* @field camParameters: The sequence of CAM mandatory and optional container. +#* +# + +GenerationDeltaTime generation_delta_time + +CamParameters cam_parameters + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CardinalNumber1B.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CardinalNumber1B.msg new file mode 100644 index 000000000..5e90825d2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CardinalNumber1B.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CardinalNumber1B ::= INTEGER(0..255) +# ------------------------------------------------------------------------------ +# * +# * The DE represents a cardinal number that counts the size of a set. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CardinalNumber3b.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CardinalNumber3b.msg new file mode 100644 index 000000000..151cdf26e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CardinalNumber3b.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CardinalNumber3b ::= INTEGER(1..8) +# ------------------------------------------------------------------------------ +# * +# * The DE represents a cardinal number that counts the size of a set. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 8 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngle.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngle.msg new file mode 100644 index 000000000..b554fbd9b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngle.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianAngle ::= SEQUENCE { +# value CartesianAngleValue, +# confidence AngleConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system. +# * +# * It shall include the following components: +# * +# * @field value: The angle value which can be estimated as the mean of the current distribution. +# * +# * @field confidence: The confidence value associated to the provided value. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +CartesianAngleValue value + +AngleConfidence confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngleValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngleValue.msg new file mode 100644 index 000000000..b2df26b44 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngleValue.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianAngleValue ::= INTEGER { +# valueNotUsed (3600), +# unavailable (3601) +# } (0..3601) +# ------------------------------------------------------------------------------ +# * +# * This DE represents an angle value described in a local Cartesian coordinate system, per default counted positive in +# * a right-hand local coordinate system from the abscissa. +# * +# * The value shall be set to: +# * - `n` (`n >= 0` and `n < 3600`) if the angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, +# * - `3601` if the information is not available. +# * +# * The value 3600 shall not be used. +# * +# * @unit 0,1 degrees +# * @category: Basic information +# * @revision: Created in V2.1.1, description and value for 3601 corrected in V2.2.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 3601 +uint16 VALUE_NOT_USED = 3600 +uint16 UNAVAILABLE = 3601 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularAccelerationComponent.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularAccelerationComponent.msg new file mode 100644 index 000000000..f15ae3f1a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularAccelerationComponent.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianAngularAccelerationComponent ::= SEQUENCE { +# value CartesianAngularAccelerationComponentValue, +# confidence AngularAccelerationConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a general Data Frame to describe an angular acceleration component along with a confidence value in a cartesian coordinate system. +# * +# * It shall include the following components: +# * +# * @field value: The angular acceleration component value. +# * +# * @field confidence: The confidence value associated to the provided value. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +CartesianAngularAccelerationComponentValue value + +AngularAccelerationConfidence confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularAccelerationComponentValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularAccelerationComponentValue.msg new file mode 100644 index 000000000..e665ce1a6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularAccelerationComponentValue.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianAngularAccelerationComponentValue ::= INTEGER { +# negativeOutOfRange (-255), +# positiveOutOfRange (255), +# unavailable (256) +# } (-255..256) +# ------------------------------------------------------------------------------ +# * +# * This DE represents an angular acceleration value described in a local Cartesian coordinate system, per default counted positive in +# * a right-hand local coordinate system from the abscissa. +# * +# * The value shall be set to: +# * - `-255` if the acceleration is equal to or less than -255 degrees/s^2, +# * - `n` (`n > -255` and `n < 255`) if the acceleration is equal to or less than n x 1 degree/s^2, +# and greater than `(n-1)` x 0,01 degree/s^2, +# * - `255` if the acceleration is greater than 254 degrees/s^2, +# * - `256` if the information is unavailable. +# * +# * @unit: degree/s^2 (degrees per second squared) +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +int16 value +int16 MIN = -255 +int16 MAX = 256 +int16 NEGATIVE_OUT_OF_RANGE = -255 +int16 POSITIVE_OUT_OF_RANGE = 255 +int16 UNAVAILABLE = 256 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularVelocityComponent.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularVelocityComponent.msg new file mode 100644 index 000000000..71358e726 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularVelocityComponent.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianAngularVelocityComponent ::= SEQUENCE { +# value CartesianAngularVelocityComponentValue, +# confidence AngularSpeedConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents an angular velocity component along with a confidence value in a cartesian coordinate system. +# * +# * It shall include the following components: +# * +# * @field value: The angular velocity component. +# * +# * @field confidence: The confidence value associated to the provided value. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +CartesianAngularVelocityComponentValue value + +AngularSpeedConfidence confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularVelocityComponentValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularVelocityComponentValue.msg new file mode 100644 index 000000000..bdd6c856d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianAngularVelocityComponentValue.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianAngularVelocityComponentValue ::= INTEGER { +# negativeOutofRange (-255), +# positiveOutOfRange (255), +# unavailable (256) +# } (-255..256) +# ------------------------------------------------------------------------------ +# * +# * This DE represents an angular velocity component described in a local Cartesian coordinate system, per default counted positive in +# * a right-hand local coordinate system from the abscissa. +# * +# * The value shall be set to: +# * - `-255` if the velocity is equal to or less than -255 degrees/s, +# * - `n` (`n > -255` and `n < 255`) if the velocity is equal to or less than n x 1 degree/s, and greater than (n-1) x 1 degree/s, +# * - `255` if the velocity is greater than 254 degrees/s, +# * - `256` if the information is unavailable. +# * +# * @unit: degree/s +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +int16 value +int16 MIN = -255 +int16 MAX = 256 +int16 NEGATIVE_OUTOF_RANGE = -255 +int16 POSITIVE_OUT_OF_RANGE = 255 +int16 UNAVAILABLE = 256 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinate.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinate.msg new file mode 100644 index 000000000..003f3d7d7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinate.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianCoordinate::= INTEGER{ +# negativeOutOfRange (-32768), +# positiveOutOfRange (32767) +# } (-32768..32767) +# ------------------------------------------------------------------------------ +# * +# * This DF represents the value of a cartesian coordinate with a range of -327,68 metres to +327,66 metres. +# * +# * The value shall be set to: +# * - `-32 768` if the longitudinal offset is out of range, i.e. less than or equal to -327,68 metres, +# * - `n` (`n > -32 768` and `n < 32 767`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, +# * - `32 767` if the longitudinal offset is out of range, i.e. greater than + 327,66 metres. +# * +# * @unit 0,01 m +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +int16 value +int16 MIN = -32768 +int16 MAX = 32767 +int16 NEGATIVE_OUT_OF_RANGE = -32768 +int16 POSITIVE_OUT_OF_RANGE = 32767 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateLarge.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateLarge.msg new file mode 100644 index 000000000..076cf52b6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateLarge.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianCoordinateLarge::= INTEGER{ +# negativeOutOfRange (-131072), +# positiveOutOfRange (131071) +# } (-131072..131071) +# ------------------------------------------------------------------------------ +# * +# * This DF represents the value of a cartesian coordinate with a range of -1 310,72 metres to +1 310,70 metres. +# * +# * The value shall be set to: +# * - `-131072` if the longitudinal offset is out of range, i.e. less than or equal to -1 310,72 metres, +# * - `n` (`n > 131 072` and `n < 131 071`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, +# * - `131 071` if the longitudinal offset is out of range, i.e. greater than + 1 310,70 metres. +# * +# * @unit 0,01 m +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +int32 value +int32 MIN = -131072 +int32 MAX = 131071 +int32 NEGATIVE_OUT_OF_RANGE = -131072 +int32 POSITIVE_OUT_OF_RANGE = 131071 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateSmall.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateSmall.msg new file mode 100644 index 000000000..2b94afb6a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateSmall.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianCoordinateSmall::= INTEGER { +# negativeOutOfRange (-3094), +# positiveOutOfRange (1001) +# } (-3094..1001) +# ------------------------------------------------------------------------------ +# * +# * This DF represents the value of a cartesian coordinate with a range of -30,94 metres to +10,00 metres. +# * +# * The value shall be set to: +# * - `3094` if the longitudinal offset is out of range, i.e. less than or equal to -30,94 metres, +# * - `n` (`n > -3 094` and `n < 1 001`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, +# * - `1001` if the longitudinal offset is out of range, i.e. greater than 10 metres. +# * +# * @unit 0,01 m +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +int16 value +int16 MIN = -3094 +int16 MAX = 1001 +int16 NEGATIVE_OUT_OF_RANGE = -3094 +int16 POSITIVE_OUT_OF_RANGE = 1001 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateWithConfidence.msg new file mode 100644 index 000000000..8229483fe --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianCoordinateWithConfidence.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianCoordinateWithConfidence ::= SEQUENCE { +# value CartesianCoordinateLarge, +# confidence CoordinateConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a coordinate along with a confidence value in a cartesian reference system. +# * +# * It shall include the following components: +# * +# * @field value: the coordinate value, which can be estimated as the mean of the current distribution. +# * +# * @field confidence: the coordinate confidence value associated to the provided value. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +CartesianCoordinateLarge value + +CoordinateConfidence confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianPosition3d.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianPosition3d.msg new file mode 100644 index 000000000..d1a212add --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianPosition3d.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianPosition3d::=SEQUENCE{ +# xCoordinate CartesianCoordinate, +# yCoordinate CartesianCoordinate, +# zCoordinate CartesianCoordinate OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a position in a two- or three-dimensional cartesian coordinate system. +# * +# * It shall include the following components: +# * +# * @field xCoordinate: the X coordinate value. +# * +# * @field yCoordinate: the Y coordinate value. +# * +# * @field zCoordinate: the optional Z coordinate value. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +CartesianCoordinate x_coordinate + +CartesianCoordinate y_coordinate + +CartesianCoordinate z_coordinate +bool z_coordinate_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianPosition3dWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianPosition3dWithConfidence.msg new file mode 100644 index 000000000..f417b994c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CartesianPosition3dWithConfidence.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CartesianPosition3dWithConfidence::= SEQUENCE{ +# xCoordinate CartesianCoordinateWithConfidence, +# yCoordinate CartesianCoordinateWithConfidence, +# zCoordinate CartesianCoordinateWithConfidence OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a position in a two- or three-dimensional cartesian coordinate system with an associated confidence level for each coordinate. +# * +# * It shall include the following components: +# * +# * @field xCoordinate: the X coordinate value with the associated confidence level. +# * +# * @field yCoordinate: the Y coordinate value with the associated confidence level. +# * +# * @field zCoordinate: the optional Z coordinate value with the associated confidence level. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +CartesianCoordinateWithConfidence x_coordinate + +CartesianCoordinateWithConfidence y_coordinate + +CartesianCoordinateWithConfidence z_coordinate +bool z_coordinate_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCode.msg new file mode 100644 index 000000000..8979d65f1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCode.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CauseCode ::= SEQUENCE { +# causeCode CauseCodeType, +# subCauseCode SubCauseCodeType, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF is a representation of the cause code value of a traffic event. +# * +# * It shall include the following components: +# * +# * @field causeCode: the main cause of a detected event. +# * +# * @field subCauseCode: the subordinate cause of a detected event. +# * +# * The semantics of the entire DF are completely defined by the component causeCode. The interpretation of the subCauseCode may +# * provide additional information that is not strictly necessary to understand the causeCode itself, and is therefore optional. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref CauseCodeV2 instead. +# * +# * @category: Traffic information +# * @revision: Editorial update in V2.1.1 +# + +CauseCodeType cause_code + +SubCauseCodeType sub_cause_code + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeChoice.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeChoice.msg new file mode 100644 index 000000000..b623183c2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeChoice.msg @@ -0,0 +1,599 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CauseCodeChoice::= CHOICE { +# reserved0 SubCauseCodeType, +# trafficCondition1 TrafficConditionSubCauseCode, +# accident2 AccidentSubCauseCode, +# roadworks3 RoadworksSubCauseCode, +# reserved4 SubCauseCodeType, +# impassability5 ImpassabilitySubCauseCode, +# adverseWeatherCondition-Adhesion6 AdverseWeatherCondition-AdhesionSubCauseCode, +# aquaplaning7 SubCauseCodeType, +# reserved8 SubCauseCodeType, +# hazardousLocation-SurfaceCondition9 HazardousLocation-SurfaceConditionSubCauseCode, +# hazardousLocation-ObstacleOnTheRoad10 HazardousLocation-ObstacleOnTheRoadSubCauseCode, +# hazardousLocation-AnimalOnTheRoad11 HazardousLocation-AnimalOnTheRoadSubCauseCode, +# humanPresenceOnTheRoad12 HumanPresenceOnTheRoadSubCauseCode, +# reserved13 SubCauseCodeType, +# wrongWayDriving14 WrongWayDrivingSubCauseCode, +# rescueAndRecoveryWorkInProgress15 RescueAndRecoveryWorkInProgressSubCauseCode, +# reserved16 SubCauseCodeType, +# adverseWeatherCondition-ExtremeWeatherCondition17 AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode, +# adverseWeatherCondition-Visibility18 AdverseWeatherCondition-VisibilitySubCauseCode, +# adverseWeatherCondition-Precipitation19 AdverseWeatherCondition-PrecipitationSubCauseCode, +# violence20 SubCauseCodeType, +# reserved21 SubCauseCodeType, +# reserved22 SubCauseCodeType, +# reserved23 SubCauseCodeType, +# reserved24 SubCauseCodeType, +# reserved25 SubCauseCodeType, +# slowVehicle26 SlowVehicleSubCauseCode, +# dangerousEndOfQueue27 DangerousEndOfQueueSubCauseCode, +# publicTransportVehicleApproaching28 SubCauseCodeType, +# reserved29 SubCauseCodeType, +# reserved30 SubCauseCodeType, +# reserved31 SubCauseCodeType, +# reserved32 SubCauseCodeType, +# reserved33 SubCauseCodeType, +# reserved34 SubCauseCodeType, +# reserved35 SubCauseCodeType, +# reserved36 SubCauseCodeType, +# reserved37 SubCauseCodeType, +# reserved38 SubCauseCodeType, +# reserved39 SubCauseCodeType, +# reserved40 SubCauseCodeType, +# reserved41 SubCauseCodeType, +# reserved42 SubCauseCodeType, +# reserved43 SubCauseCodeType, +# reserved44 SubCauseCodeType, +# reserved45 SubCauseCodeType, +# reserved46 SubCauseCodeType, +# reserved47 SubCauseCodeType, +# reserved48 SubCauseCodeType, +# reserved49 SubCauseCodeType, +# reserved50 SubCauseCodeType, +# reserved51 SubCauseCodeType, +# reserved52 SubCauseCodeType, +# reserved53 SubCauseCodeType, +# reserved54 SubCauseCodeType, +# reserved55 SubCauseCodeType, +# reserved56 SubCauseCodeType, +# reserved57 SubCauseCodeType, +# reserved58 SubCauseCodeType, +# reserved59 SubCauseCodeType, +# reserved60 SubCauseCodeType, +# reserved61 SubCauseCodeType, +# reserved62 SubCauseCodeType, +# reserved63 SubCauseCodeType, +# reserved64 SubCauseCodeType, +# reserved65 SubCauseCodeType, +# reserved66 SubCauseCodeType, +# reserved67 SubCauseCodeType, +# reserved68 SubCauseCodeType, +# reserved69 SubCauseCodeType, +# reserved70 SubCauseCodeType, +# reserved71 SubCauseCodeType, +# reserved72 SubCauseCodeType, +# reserved73 SubCauseCodeType, +# reserved74 SubCauseCodeType, +# reserved75 SubCauseCodeType, +# reserved76 SubCauseCodeType, +# reserved77 SubCauseCodeType, +# reserved78 SubCauseCodeType, +# reserved79 SubCauseCodeType, +# reserved80 SubCauseCodeType, +# reserved81 SubCauseCodeType, +# reserved82 SubCauseCodeType, +# reserved83 SubCauseCodeType, +# reserved84 SubCauseCodeType, +# reserved85 SubCauseCodeType, +# reserved86 SubCauseCodeType, +# reserved87 SubCauseCodeType, +# reserved88 SubCauseCodeType, +# reserved89 SubCauseCodeType, +# reserved90 SubCauseCodeType, +# vehicleBreakdown91 VehicleBreakdownSubCauseCode, +# postCrash92 PostCrashSubCauseCode, +# humanProblem93 HumanProblemSubCauseCode, +# stationaryVehicle94 StationaryVehicleSubCauseCode, +# emergencyVehicleApproaching95 EmergencyVehicleApproachingSubCauseCode, +# hazardousLocation-DangerousCurve96 HazardousLocation-DangerousCurveSubCauseCode, +# collisionRisk97 CollisionRiskSubCauseCode, +# signalViolation98 SignalViolationSubCauseCode, +# dangerousSituation99 DangerousSituationSubCauseCode, +# railwayLevelCrossing100 RailwayLevelCrossingSubCauseCode, +# reserved101 SubCauseCodeType, +# reserved102 SubCauseCodeType, +# reserved103 SubCauseCodeType, +# reserved104 SubCauseCodeType, +# reserved105 SubCauseCodeType, +# reserved106 SubCauseCodeType, +# reserved107 SubCauseCodeType, +# reserved108 SubCauseCodeType, +# reserved109 SubCauseCodeType, +# reserved110 SubCauseCodeType, +# reserved111 SubCauseCodeType, +# reserved112 SubCauseCodeType, +# reserved113 SubCauseCodeType, +# reserved114 SubCauseCodeType, +# reserved115 SubCauseCodeType, +# reserved116 SubCauseCodeType, +# reserved117 SubCauseCodeType, +# reserved118 SubCauseCodeType, +# reserved119 SubCauseCodeType, +# reserved120 SubCauseCodeType, +# reserved121 SubCauseCodeType, +# reserved122 SubCauseCodeType, +# reserved123 SubCauseCodeType, +# reserved124 SubCauseCodeType, +# reserved125 SubCauseCodeType, +# reserved126 SubCauseCodeType, +# reserved127 SubCauseCodeType, +# reserved128 SubCauseCodeType +# } +# ------------------------------------------------------------------------------ +# * +# * This DF is a representation of the cause code value and associated sub cause code value of a traffic event. +# * +# * The following options are available: +# * - 0 - reserved for future use, +# * - 1 - `trafficCondition1` - in case the type of event is an abnormal traffic condition, +# * - 2 - `accident2` - in case the type of event is a road accident, +# * - 3 - `roadworks3` - in case the type of event is roadwork, +# * - 4 - reserved for future usage, +# * - 5 - `impassability5` - in case the type of event is unmanaged road blocking, referring to any +# * blocking of a road, partial or total, which has not been adequately secured and signposted, +# * - 6 - `adverseWeatherCondition-Adhesion6` - in case the type of event is low adhesion, +# * - 7 - `aquaplaning7` - danger of aquaplaning on the road, +# * - 8 - reserved for future usage, +# * - 9 - `hazardousLocation-SurfaceCondition9` - in case the type of event is abnormal road surface condition, +# * - 10 - `hazardousLocation-ObstacleOnTheRoad10` - in case the type of event is obstacle on the road, +# * - 11 - `hazardousLocation-AnimalOnTheRoad11` - in case the type of event is animal on the road, +# * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road, +# * - 13 - reserved for future usage, +# * - 14 - `wrongWayDriving14` - in case the type of the event is vehicle driving in wrong way, +# * - 15 - `rescueAndRecoveryWorkInProgress15` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress, +# * - 16 - reserved for future usage, +# * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition17` - in case the type of event is extreme weather condition, +# * - 18 - `adverseWeatherCondition-Visibility18` - in case the type of event is low visibility, +# * - 19 - `adverseWeatherCondition-Precipitation19` - in case the type of event is precipitation, +# * - 20 - `violence20` - in case the the type of event is human violence on or near the road, +# * - 21-25 - reserved for future usage, +# * - 26 - `slowVehicle26` - in case the type of event is slow vehicle driving on the road, +# * - 27 - `dangerousEndOfQueue27` - in case the type of event is dangerous end of vehicle queue, +# * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations, +# * - 29-90 - are reserved for future usage, +# * - 91 - `vehicleBreakdown91` - in case the type of event is break down vehicle on the road, +# * - 92 - `postCrash92` - in case the type of event is a detected crash, +# * - 93 - `humanProblem93` - in case the type of event is human health problem in vehicles involved in traffic, +# * - 94 - `stationaryVehicle94` - in case the type of event is stationary vehicle, +# * - 95 - `emergencyVehicleApproaching95` - in case the type of event is an approaching vehicle operating on a mission for which the +# applicable traffic regulations provide it with defined priority rights in traffic. +# * - 96 - `hazardousLocation-DangerousCurve96` - in case the type of event is dangerous curve, +# * - 97 - `collisionRisk97` - in case the type of event is a collision risk, +# * - 98 - `signalViolation98` - in case the type of event is signal violation, +# * - 99 - `dangerousSituation99` - in case the type of event is dangerous situation in which autonomous safety system in vehicle +# * is activated, +# * - 100 - `railwayLevelCrossing100` - in case the type of event is a railway level crossing. +# * - 101-255 - are reserved for future usage. +# * +# * @note: this DF is defined for use as part of CauseCodeV2. It is recommended to use CauseCodeV2. +# * @category: Traffic information +# * @revision: Created in V2.1.1, the type of impassability5 changed to ImpassabilitySubCauseCode in V2.2.1, value 28 added in V2.2.1, definition of value 12 and 95 changed in V2.2.1 +# + +uint8 choice + +SubCauseCodeType reserved0 +uint8 CHOICE_RESERVED0 = 0 + +TrafficConditionSubCauseCode traffic_condition1 +uint8 CHOICE_TRAFFIC_CONDITION1 = 1 + +AccidentSubCauseCode accident2 +uint8 CHOICE_ACCIDENT2 = 2 + +RoadworksSubCauseCode roadworks3 +uint8 CHOICE_ROADWORKS3 = 3 + +SubCauseCodeType reserved4 +uint8 CHOICE_RESERVED4 = 4 + +ImpassabilitySubCauseCode impassability5 +uint8 CHOICE_IMPASSABILITY5 = 5 + +AdverseWeatherConditionAdhesionSubCauseCode adverse_weather_condition_adhesion6 +uint8 CHOICE_ADVERSE_WEATHER_CONDITION_ADHESION6 = 6 + +SubCauseCodeType aquaplaning7 +uint8 CHOICE_AQUAPLANING7 = 7 + +SubCauseCodeType reserved8 +uint8 CHOICE_RESERVED8 = 8 + +HazardousLocationSurfaceConditionSubCauseCode hazardous_location_surface_condition9 +uint8 CHOICE_HAZARDOUS_LOCATION_SURFACE_CONDITION9 = 9 + +HazardousLocationObstacleOnTheRoadSubCauseCode hazardous_location_obstacle_on_the_road10 +uint8 CHOICE_HAZARDOUS_LOCATION_OBSTACLE_ON_THE_ROAD10 = 10 + +HazardousLocationAnimalOnTheRoadSubCauseCode hazardous_location_animal_on_the_road11 +uint8 CHOICE_HAZARDOUS_LOCATION_ANIMAL_ON_THE_ROAD11 = 11 + +HumanPresenceOnTheRoadSubCauseCode human_presence_on_the_road12 +uint8 CHOICE_HUMAN_PRESENCE_ON_THE_ROAD12 = 12 + +SubCauseCodeType reserved13 +uint8 CHOICE_RESERVED13 = 13 + +WrongWayDrivingSubCauseCode wrong_way_driving14 +uint8 CHOICE_WRONG_WAY_DRIVING14 = 14 + +RescueAndRecoveryWorkInProgressSubCauseCode rescue_and_recovery_work_in_progress15 +uint8 CHOICE_RESCUE_AND_RECOVERY_WORK_IN_PROGRESS15 = 15 + +SubCauseCodeType reserved16 +uint8 CHOICE_RESERVED16 = 16 + +AdverseWeatherConditionExtremeWeatherConditionSubCauseCode adverse_weather_condition_extreme_weather_condition17 +uint8 CHOICE_ADVERSE_WEATHER_CONDITION_EXTREME_WEATHER_CONDITION17 = 17 + +AdverseWeatherConditionVisibilitySubCauseCode adverse_weather_condition_visibility18 +uint8 CHOICE_ADVERSE_WEATHER_CONDITION_VISIBILITY18 = 18 + +AdverseWeatherConditionPrecipitationSubCauseCode adverse_weather_condition_precipitation19 +uint8 CHOICE_ADVERSE_WEATHER_CONDITION_PRECIPITATION19 = 19 + +SubCauseCodeType violence20 +uint8 CHOICE_VIOLENCE20 = 20 + +SubCauseCodeType reserved21 +uint8 CHOICE_RESERVED21 = 21 + +SubCauseCodeType reserved22 +uint8 CHOICE_RESERVED22 = 22 + +SubCauseCodeType reserved23 +uint8 CHOICE_RESERVED23 = 23 + +SubCauseCodeType reserved24 +uint8 CHOICE_RESERVED24 = 24 + +SubCauseCodeType reserved25 +uint8 CHOICE_RESERVED25 = 25 + +SlowVehicleSubCauseCode slow_vehicle26 +uint8 CHOICE_SLOW_VEHICLE26 = 26 + +DangerousEndOfQueueSubCauseCode dangerous_end_of_queue27 +uint8 CHOICE_DANGEROUS_END_OF_QUEUE27 = 27 + +SubCauseCodeType public_transport_vehicle_approaching28 +uint8 CHOICE_PUBLIC_TRANSPORT_VEHICLE_APPROACHING28 = 28 + +SubCauseCodeType reserved29 +uint8 CHOICE_RESERVED29 = 29 + +SubCauseCodeType reserved30 +uint8 CHOICE_RESERVED30 = 30 + +SubCauseCodeType reserved31 +uint8 CHOICE_RESERVED31 = 31 + +SubCauseCodeType reserved32 +uint8 CHOICE_RESERVED32 = 32 + +SubCauseCodeType reserved33 +uint8 CHOICE_RESERVED33 = 33 + +SubCauseCodeType reserved34 +uint8 CHOICE_RESERVED34 = 34 + +SubCauseCodeType reserved35 +uint8 CHOICE_RESERVED35 = 35 + +SubCauseCodeType reserved36 +uint8 CHOICE_RESERVED36 = 36 + +SubCauseCodeType reserved37 +uint8 CHOICE_RESERVED37 = 37 + +SubCauseCodeType reserved38 +uint8 CHOICE_RESERVED38 = 38 + +SubCauseCodeType reserved39 +uint8 CHOICE_RESERVED39 = 39 + +SubCauseCodeType reserved40 +uint8 CHOICE_RESERVED40 = 40 + +SubCauseCodeType reserved41 +uint8 CHOICE_RESERVED41 = 41 + +SubCauseCodeType reserved42 +uint8 CHOICE_RESERVED42 = 42 + +SubCauseCodeType reserved43 +uint8 CHOICE_RESERVED43 = 43 + +SubCauseCodeType reserved44 +uint8 CHOICE_RESERVED44 = 44 + +SubCauseCodeType reserved45 +uint8 CHOICE_RESERVED45 = 45 + +SubCauseCodeType reserved46 +uint8 CHOICE_RESERVED46 = 46 + +SubCauseCodeType reserved47 +uint8 CHOICE_RESERVED47 = 47 + +SubCauseCodeType reserved48 +uint8 CHOICE_RESERVED48 = 48 + +SubCauseCodeType reserved49 +uint8 CHOICE_RESERVED49 = 49 + +SubCauseCodeType reserved50 +uint8 CHOICE_RESERVED50 = 50 + +SubCauseCodeType reserved51 +uint8 CHOICE_RESERVED51 = 51 + +SubCauseCodeType reserved52 +uint8 CHOICE_RESERVED52 = 52 + +SubCauseCodeType reserved53 +uint8 CHOICE_RESERVED53 = 53 + +SubCauseCodeType reserved54 +uint8 CHOICE_RESERVED54 = 54 + +SubCauseCodeType reserved55 +uint8 CHOICE_RESERVED55 = 55 + +SubCauseCodeType reserved56 +uint8 CHOICE_RESERVED56 = 56 + +SubCauseCodeType reserved57 +uint8 CHOICE_RESERVED57 = 57 + +SubCauseCodeType reserved58 +uint8 CHOICE_RESERVED58 = 58 + +SubCauseCodeType reserved59 +uint8 CHOICE_RESERVED59 = 59 + +SubCauseCodeType reserved60 +uint8 CHOICE_RESERVED60 = 60 + +SubCauseCodeType reserved61 +uint8 CHOICE_RESERVED61 = 61 + +SubCauseCodeType reserved62 +uint8 CHOICE_RESERVED62 = 62 + +SubCauseCodeType reserved63 +uint8 CHOICE_RESERVED63 = 63 + +SubCauseCodeType reserved64 +uint8 CHOICE_RESERVED64 = 64 + +SubCauseCodeType reserved65 +uint8 CHOICE_RESERVED65 = 65 + +SubCauseCodeType reserved66 +uint8 CHOICE_RESERVED66 = 66 + +SubCauseCodeType reserved67 +uint8 CHOICE_RESERVED67 = 67 + +SubCauseCodeType reserved68 +uint8 CHOICE_RESERVED68 = 68 + +SubCauseCodeType reserved69 +uint8 CHOICE_RESERVED69 = 69 + +SubCauseCodeType reserved70 +uint8 CHOICE_RESERVED70 = 70 + +SubCauseCodeType reserved71 +uint8 CHOICE_RESERVED71 = 71 + +SubCauseCodeType reserved72 +uint8 CHOICE_RESERVED72 = 72 + +SubCauseCodeType reserved73 +uint8 CHOICE_RESERVED73 = 73 + +SubCauseCodeType reserved74 +uint8 CHOICE_RESERVED74 = 74 + +SubCauseCodeType reserved75 +uint8 CHOICE_RESERVED75 = 75 + +SubCauseCodeType reserved76 +uint8 CHOICE_RESERVED76 = 76 + +SubCauseCodeType reserved77 +uint8 CHOICE_RESERVED77 = 77 + +SubCauseCodeType reserved78 +uint8 CHOICE_RESERVED78 = 78 + +SubCauseCodeType reserved79 +uint8 CHOICE_RESERVED79 = 79 + +SubCauseCodeType reserved80 +uint8 CHOICE_RESERVED80 = 80 + +SubCauseCodeType reserved81 +uint8 CHOICE_RESERVED81 = 81 + +SubCauseCodeType reserved82 +uint8 CHOICE_RESERVED82 = 82 + +SubCauseCodeType reserved83 +uint8 CHOICE_RESERVED83 = 83 + +SubCauseCodeType reserved84 +uint8 CHOICE_RESERVED84 = 84 + +SubCauseCodeType reserved85 +uint8 CHOICE_RESERVED85 = 85 + +SubCauseCodeType reserved86 +uint8 CHOICE_RESERVED86 = 86 + +SubCauseCodeType reserved87 +uint8 CHOICE_RESERVED87 = 87 + +SubCauseCodeType reserved88 +uint8 CHOICE_RESERVED88 = 88 + +SubCauseCodeType reserved89 +uint8 CHOICE_RESERVED89 = 89 + +SubCauseCodeType reserved90 +uint8 CHOICE_RESERVED90 = 90 + +VehicleBreakdownSubCauseCode vehicle_breakdown91 +uint8 CHOICE_VEHICLE_BREAKDOWN91 = 91 + +PostCrashSubCauseCode post_crash92 +uint8 CHOICE_POST_CRASH92 = 92 + +HumanProblemSubCauseCode human_problem93 +uint8 CHOICE_HUMAN_PROBLEM93 = 93 + +StationaryVehicleSubCauseCode stationary_vehicle94 +uint8 CHOICE_STATIONARY_VEHICLE94 = 94 + +EmergencyVehicleApproachingSubCauseCode emergency_vehicle_approaching95 +uint8 CHOICE_EMERGENCY_VEHICLE_APPROACHING95 = 95 + +HazardousLocationDangerousCurveSubCauseCode hazardous_location_dangerous_curve96 +uint8 CHOICE_HAZARDOUS_LOCATION_DANGEROUS_CURVE96 = 96 + +CollisionRiskSubCauseCode collision_risk97 +uint8 CHOICE_COLLISION_RISK97 = 97 + +SignalViolationSubCauseCode signal_violation98 +uint8 CHOICE_SIGNAL_VIOLATION98 = 98 + +DangerousSituationSubCauseCode dangerous_situation99 +uint8 CHOICE_DANGEROUS_SITUATION99 = 99 + +RailwayLevelCrossingSubCauseCode railway_level_crossing100 +uint8 CHOICE_RAILWAY_LEVEL_CROSSING100 = 100 + +SubCauseCodeType reserved101 +uint8 CHOICE_RESERVED101 = 101 + +SubCauseCodeType reserved102 +uint8 CHOICE_RESERVED102 = 102 + +SubCauseCodeType reserved103 +uint8 CHOICE_RESERVED103 = 103 + +SubCauseCodeType reserved104 +uint8 CHOICE_RESERVED104 = 104 + +SubCauseCodeType reserved105 +uint8 CHOICE_RESERVED105 = 105 + +SubCauseCodeType reserved106 +uint8 CHOICE_RESERVED106 = 106 + +SubCauseCodeType reserved107 +uint8 CHOICE_RESERVED107 = 107 + +SubCauseCodeType reserved108 +uint8 CHOICE_RESERVED108 = 108 + +SubCauseCodeType reserved109 +uint8 CHOICE_RESERVED109 = 109 + +SubCauseCodeType reserved110 +uint8 CHOICE_RESERVED110 = 110 + +SubCauseCodeType reserved111 +uint8 CHOICE_RESERVED111 = 111 + +SubCauseCodeType reserved112 +uint8 CHOICE_RESERVED112 = 112 + +SubCauseCodeType reserved113 +uint8 CHOICE_RESERVED113 = 113 + +SubCauseCodeType reserved114 +uint8 CHOICE_RESERVED114 = 114 + +SubCauseCodeType reserved115 +uint8 CHOICE_RESERVED115 = 115 + +SubCauseCodeType reserved116 +uint8 CHOICE_RESERVED116 = 116 + +SubCauseCodeType reserved117 +uint8 CHOICE_RESERVED117 = 117 + +SubCauseCodeType reserved118 +uint8 CHOICE_RESERVED118 = 118 + +SubCauseCodeType reserved119 +uint8 CHOICE_RESERVED119 = 119 + +SubCauseCodeType reserved120 +uint8 CHOICE_RESERVED120 = 120 + +SubCauseCodeType reserved121 +uint8 CHOICE_RESERVED121 = 121 + +SubCauseCodeType reserved122 +uint8 CHOICE_RESERVED122 = 122 + +SubCauseCodeType reserved123 +uint8 CHOICE_RESERVED123 = 123 + +SubCauseCodeType reserved124 +uint8 CHOICE_RESERVED124 = 124 + +SubCauseCodeType reserved125 +uint8 CHOICE_RESERVED125 = 125 + +SubCauseCodeType reserved126 +uint8 CHOICE_RESERVED126 = 126 + +SubCauseCodeType reserved127 +uint8 CHOICE_RESERVED127 = 127 + +SubCauseCodeType reserved128 +uint8 CHOICE_RESERVED128 = 128 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeType.msg new file mode 100644 index 000000000..6d9d2aaab --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeType.msg @@ -0,0 +1,142 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CauseCodeType ::= INTEGER { +# trafficCondition (1), +# accident (2), +# roadworks (3), +# impassability (5), +# adverseWeatherCondition-Adhesion (6), +# aquaplaning (7), +# hazardousLocation-SurfaceCondition (9), +# hazardousLocation-ObstacleOnTheRoad (10), +# hazardousLocation-AnimalOnTheRoad (11), +# humanPresenceOnTheRoad (12), +# wrongWayDriving (14), +# rescueAndRecoveryWorkInProgress (15), +# adverseWeatherCondition-ExtremeWeatherCondition (17), +# adverseWeatherCondition-Visibility (18), +# adverseWeatherCondition-Precipitation (19), +# violence (20), +# slowVehicle (26), +# dangerousEndOfQueue (27), +# publicTransportVehicleApproaching (28), +# vehicleBreakdown (91), +# postCrash (92), +# humanProblem (93), +# stationaryVehicle (94), +# emergencyVehicleApproaching (95), +# hazardousLocation-DangerousCurve (96), +# collisionRisk (97), +# signalViolation (98), +# dangerousSituation (99), +# railwayLevelCrossing (100) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# *The DE represents the value of the cause code of an event. +# * +# * The value shall be set to: +# * - 0 - reserved for future use, +# * - 1 - `trafficCondition` - in case the type of event is an abnormal traffic condition, +# * - 2 - `accident` - in case the type of event is a road accident, +# * - 3 - `roadworks` - in case the type of event is roadwork, +# * - 4 - reserved for future usage, +# * - 5 - `impassability` - in case the type of event is unmanaged road blocking, referring to any +# * blocking of a road, partial or total, which has not been adequately +# * secured and signposted, +# * - 6 - `adverseWeatherCondition-Adhesion` - in case the type of event is low adhesion, +# * - 7 - `aquaplaning` - danger of aquaplaning on the road, +# * - 8 - reserved for future usage, +# * - 9 - `hazardousLocation-SurfaceCondition` - in case the type of event is abnormal road surface condition, +# * - 10 - `hazardousLocation-ObstacleOnTheRoad` - in case the type of event is obstacle on the road, +# * - 11 - `hazardousLocation-AnimalOnTheRoad` - in case the type of event is animal on the road, +# * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road, +# * - 13 - reserved for future usage, +# * - 14 - `wrongWayDriving` - in case the type of the event is vehicle driving in wrong way, +# * - 15 - `rescueAndRecoveryWorkInProgress` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress, +# * - 16 - reserved for future usage, +# * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition`- in case the type of event is extreme weather condition, +# * - 18 - `adverseWeatherCondition-Visibility` - in case the type of event is low visibility, +# * - 19 - `adverseWeatherCondition-Precipitation` - in case the type of event is precipitation, +# * - 20 - `violence` - in case the the type of event is human violence on or near the road, +# * - 21-25 - reserved for future usage, +# * - 26 - `slowVehicle` - in case the type of event is slow vehicle driving on the road, +# * - 27 - `dangerousEndOfQueue` - in case the type of event is dangerous end of vehicle queue, +# * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations, +# * - 29-90 - are reserved for future usage, +# * - 91 - `vehicleBreakdown` - in case the type of event is break down vehicle on the road, +# * - 92 - `postCrash` - in case the type of event is a detected crash, +# * - 93 - `humanProblem` - in case the type of event is human health problem in vehicles involved in traffic, +# * - 94 - `stationaryVehicle` - in case the type of event is stationary vehicle, +# * - 95 - `emergencyVehicleApproaching` - in case the type of event is an approaching vehicle operating on a mission for which the applicable +# traffic regulations provide it with defined priority rights in traffic. +# * - 96 - `hazardousLocation-DangerousCurve` - in case the type of event is dangerous curve, +# * - 97 - `collisionRisk` - in case the type of event is a collision risk, +# * - 98 - `signalViolation` - in case the type of event is signal violation, +# * - 99 - `dangerousSituation` - in case the type of event is dangerous situation in which autonomous safety system in vehicle +# * is activated, +# * - 100 - `railwayLevelCrossing` - in case the type of event is a railway level crossing. +# * - 101-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1, value 28 added in V2.2.1, definition of values 12 and 95 changed in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 TRAFFIC_CONDITION = 1 +uint8 ACCIDENT = 2 +uint8 ROADWORKS = 3 +uint8 IMPASSABILITY = 5 +uint8 ADVERSE_WEATHER_CONDITION_ADHESION = 6 +uint8 AQUAPLANING = 7 +uint8 HAZARDOUS_LOCATION_SURFACE_CONDITION = 9 +uint8 HAZARDOUS_LOCATION_OBSTACLE_ON_THE_ROAD = 10 +uint8 HAZARDOUS_LOCATION_ANIMAL_ON_THE_ROAD = 11 +uint8 HUMAN_PRESENCE_ON_THE_ROAD = 12 +uint8 WRONG_WAY_DRIVING = 14 +uint8 RESCUE_AND_RECOVERY_WORK_IN_PROGRESS = 15 +uint8 ADVERSE_WEATHER_CONDITION_EXTREME_WEATHER_CONDITION = 17 +uint8 ADVERSE_WEATHER_CONDITION_VISIBILITY = 18 +uint8 ADVERSE_WEATHER_CONDITION_PRECIPITATION = 19 +uint8 VIOLENCE = 20 +uint8 SLOW_VEHICLE = 26 +uint8 DANGEROUS_END_OF_QUEUE = 27 +uint8 PUBLIC_TRANSPORT_VEHICLE_APPROACHING = 28 +uint8 VEHICLE_BREAKDOWN = 91 +uint8 POST_CRASH = 92 +uint8 HUMAN_PROBLEM = 93 +uint8 STATIONARY_VEHICLE = 94 +uint8 EMERGENCY_VEHICLE_APPROACHING = 95 +uint8 HAZARDOUS_LOCATION_DANGEROUS_CURVE = 96 +uint8 COLLISION_RISK = 97 +uint8 SIGNAL_VIOLATION = 98 +uint8 DANGEROUS_SITUATION = 99 +uint8 RAILWAY_LEVEL_CROSSING = 100 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeV2.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeV2.msg new file mode 100644 index 000000000..c39bc2c33 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeV2.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CauseCodeV2 ::= SEQUENCE { +# ccAndScc CauseCodeChoice, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF is an alternative representation of the cause code value of a traffic event. +# * +# * It shall include the following components: +# * +# * @field ccAndScc: the main cause of a detected event. Each entry is of a different type and represents the sub cause code. +# +# * The semantics of the entire DF are completely defined by the choice value which represents the cause code value. +# * The interpretation of the sub cause code value may provide additional information that is not strictly necessary to understand +# * the cause code itself, and is therefore optional. +# * +# * @category: Traffic information +# * @revision: Created in V2.1.1, description amended in V2.2.1 +# + +CauseCodeChoice cc_and_scc + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZone.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZone.msg new file mode 100644 index 000000000..fc0a4c60f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZone.msg @@ -0,0 +1,57 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CenDsrcTollingZone ::= SEQUENCE { +# protectedZoneLatitude Latitude, +# protectedZoneLongitude Longitude, +# cenDsrcTollingZoneId ProtectedZoneId OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * The DF describes the position of a CEN DSRC road side equipment. +# * +# * It shall include the following components: +# * +# * @field protectedZoneLatitude: the latitude of the CEN DSRC road side equipment. +# * +# * @field protectedZoneLongitude: the latitude of the CEN DSRC road side equipment. +# * +# * @field cenDsrcTollingZoneID: the optional ID of the CEN DSRC road side equipment. +# * +# * @category: Infrastructure information, Communication information +# * @revision: revised in V2.1.1 (cenDsrcTollingZoneId is directly of type ProtectedZoneId) +# + +Latitude protected_zone_latitude + +Longitude protected_zone_longitude + +ProtectedZoneId cen_dsrc_tolling_zone_id +bool cen_dsrc_tolling_zone_id_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZoneID.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZoneID.msg new file mode 100644 index 000000000..aae9fa7b6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZoneID.msg @@ -0,0 +1,39 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CenDsrcTollingZoneID::= ProtectedZoneId +# ------------------------------------------------------------------------------ +# * +# * This DE represents the ID of a CEN DSRC tolling zone. +# * +# * @category: Communication information +# * @revision: V1.3.1 +# * @note: this DE is deprecated and shall not be used anymore. +# + +ProtectedZoneId value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CircularShape.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CircularShape.msg new file mode 100644 index 000000000..5cb04be21 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CircularShape.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CircularShape ::= SEQUENCE { +# shapeReferencePoint CartesianPosition3d OPTIONAL, +# radius StandardLength12b, +# height StandardLength12b OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * +# * This DF represents the shape of a circular area or a right cylinder that is centred on the shape's reference point. +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: optional reference point that represents the centre of the circle, relative to an externally specified reference position. +# * If this component is absent, the externally specified reference position represents the shape's reference point. +# * +# * @field radius: the radius of the circular area. +# * +# * @field height: the optional height, present if the shape is a right cylinder extending in the positive z-axis. +# * +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +CartesianPosition3d shape_reference_point +bool shape_reference_point_is_present + +StandardLength12b radius + +StandardLength12b height +bool height_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClosedLanes.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClosedLanes.msg new file mode 100644 index 000000000..801cc2ab6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClosedLanes.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ClosedLanes ::= SEQUENCE { +# innerhardShoulderStatus HardShoulderStatus OPTIONAL, +# outerhardShoulderStatus HardShoulderStatus OPTIONAL, +# drivingLaneStatus DrivingLaneStatus OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates the opening/closure status of the lanes of a carriageway. +# * +# * It shall include the following components: +# * +# * @field innerhardShoulderStatus: this information is optional and shall be included if an inner hard shoulder is present and the information is known. +# * It indicates the open/closing status of inner hard shoulder lanes. +# * +# * @field outerhardShoulderStatus: this information is optional and shall be included if an outer hard shoulder is present and the information is known. +# * It indicates the open/closing status of outer hard shoulder lanes. +# * +# * @field drivingLaneStatus: this information is optional and shall be included if the information is known. +# * It indicates the open/closing status of driving lanes. +# * For carriageways with more than 13 driving lanes, the drivingLaneStatus component shall not be present. +# * +# * @category: Infrastructure information, Road topology information +# * @revision: Description revised in V2.1.1 +# + +HardShoulderStatus innerhard_shoulder_status +bool innerhard_shoulder_status_is_present + +HardShoulderStatus outerhard_shoulder_status +bool outerhard_shoulder_status_is_present + +DrivingLaneStatus driving_lane_status +bool driving_lane_status_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterBreakupInfo.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterBreakupInfo.msg new file mode 100644 index 000000000..8905ad1a5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterBreakupInfo.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ClusterBreakupInfo ::= SEQUENCE { +# clusterBreakupReason ClusterBreakupReason, +# breakupTime DeltaTimeQuarterSecond, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides information about the breakup of a cluster. +# * +# * It shall include the following components: +# * +# * @field clusterBreakupReason: indicates the reason for breakup. +# * +# * @field breakupTime: indicates the time of breakup. +# * +# * @category: Cluster Information +# * @revision: Created in V2.1.1 +# + +ClusterBreakupReason cluster_breakup_reason + +DeltaTimeQuarterSecond breakup_time + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterBreakupReason.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterBreakupReason.msg new file mode 100644 index 000000000..408d9c33c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterBreakupReason.msg @@ -0,0 +1,62 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ClusterBreakupReason ::= INTEGER { +# notProvided (0), +# clusteringPurposeCompleted (1), +# leaderMovedOutOfClusterBoundingBox (2), +# joiningAnotherCluster (3), +# enteringLowRiskAreaBasedOnMaps (4), +# receptionOfCpmContainingCluster (5) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the reason why a cluster leader intends to break up the cluster. +# * +# * The value shall be set to: +# * - 0 - `notProvided` - if the information is not provided, +# * - 1 - `clusteringPurposeCompleted` - if the cluster purpose has been completed, +# * - 2 - `leaderMovedOutOfClusterBoundingBox` - if the leader moved out of the cluster's bounding box, +# * - 3 - `joiningAnotherCluster` - if the cluster leader is about to join another cluster, +# * - 4 - `enteringLowRiskAreaBasedOnMaps` - if the cluster is entering an area idenrified as low risk based on the use of maps, +# * - 5 - `receptionOfCpmContainingCluster` - if the leader received a Collective Perception Message containing information about the same cluster. +# * - 6 to 15 - are reserved for future use. +# * +# * @category: Cluster information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 NOT_PROVIDED = 0 +uint8 CLUSTERING_PURPOSE_COMPLETED = 1 +uint8 LEADER_MOVED_OUT_OF_CLUSTER_BOUNDING_BOX = 2 +uint8 JOINING_ANOTHER_CLUSTER = 3 +uint8 ENTERING_LOW_RISK_AREA_BASED_ON_MAPS = 4 +uint8 RECEPTION_OF_CPM_CONTAINING_CLUSTER = 5 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterJoinInfo.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterJoinInfo.msg new file mode 100644 index 000000000..eb993b9be --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterJoinInfo.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ClusterJoinInfo ::= SEQUENCE { +# clusterId Identifier1B, +# joinTime DeltaTimeQuarterSecond, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides information about the joining of a cluster. +# * +# * It shall include the following components: +# * +# * @field clusterId: indicates the identifier of the cluster. +# * +# * @field joinTime: indicates the time of joining. +# * +# * @category: Cluster Information +# * @revision: Created in V2.1.1 +# + +Identifier1B cluster_id + +DeltaTimeQuarterSecond join_time + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterLeaveInfo.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterLeaveInfo.msg new file mode 100644 index 000000000..0aa601bd6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterLeaveInfo.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ClusterLeaveInfo ::= SEQUENCE { +# clusterId Identifier1B, +# clusterLeaveReason ClusterLeaveReason, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * The DF provides information about the leaving of a cluster. +# * +# * It shall include the following components: +# * +# * @field clusterId: indicates the cluster. +# * +# * @field clusterLeaveReason: indicates the reason for leaving. +# * +# * @category: Cluster Information +# * @revision: Created in V2.1.1 +# + +Identifier1B cluster_id + +ClusterLeaveReason cluster_leave_reason + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterLeaveReason.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterLeaveReason.msg new file mode 100644 index 000000000..74f674f78 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClusterLeaveReason.msg @@ -0,0 +1,71 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ClusterLeaveReason ::= INTEGER { +# notProvided (0), +# clusterLeaderLost (1), +# clusterDisbandedByLeader (2), +# outOfClusterBoundingBox (3), +# outOfClusterSpeedRange (4), +# joiningAnotherCluster (5), +# cancelledJoin (6), +# failedJoin (7), +# safetyCondition (8) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the reason why a cluster participant is leaving the cluster. +# * +# * The value shall be set to: +# * - 0 - `notProvided ` - if the information is not provided, +# * - 1 - `clusterLeaderLost` - if the cluster leader cannot be found anymore, +# * - 2 - `clusterDisbandedByLeader` - if the cluster has been disbanded by the leader, +# * - 3 - `outOfClusterBoundingBox` - if the participants moved out of the cluster's bounding box, +# * - 4 - `outOfClusterSpeedRange` - if the cluster speed moved out of a defined range, +# * - 5 - `joiningAnotherCluster` - if the participant is joining another cluster, +# * - 6 - `cancelledJoin` - if the participant is cancelling a joining procedure, +# * - 7 - `failedJoin` - if the participant failed to join the cluster, +# * - 8 - `safetyCondition` - if a safety condition applies. +# * - 9 to 15 - are reserved for future use +# * +# * @category: Cluster information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 NOT_PROVIDED = 0 +uint8 CLUSTER_LEADER_LOST = 1 +uint8 CLUSTER_DISBANDED_BY_LEADER = 2 +uint8 OUT_OF_CLUSTER_BOUNDING_BOX = 3 +uint8 OUT_OF_CLUSTER_SPEED_RANGE = 4 +uint8 JOINING_ANOTHER_CLUSTER = 5 +uint8 CANCELLED_JOIN = 6 +uint8 FAILED_JOIN = 7 +uint8 SAFETY_CONDITION = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CollisionRiskSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CollisionRiskSubCauseCode.msg new file mode 100644 index 000000000..a49900d37 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CollisionRiskSubCauseCode.msg @@ -0,0 +1,70 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CollisionRiskSubCauseCode ::= INTEGER { +# unavailable (0), +# longitudinalCollisionRisk (1), +# crossingCollisionRisk (2), +# lateralCollisionRisk (3), +# vulnerableRoadUser (4), +# collisionRiskWithPedestrian (5), +# collisionRiskWithCyclist (6), +# collisionRiskWithMotorVehicle (7) +# }(0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of collision risk is unavailable, +# * - 1 - `longitudinalCollisionRisk` - in case the type of detected collision risk is longitudinal collision risk, +# * e.g. forward collision or face to face collision, +# * - 2 - `crossingCollisionRisk` - in case the type of detected collision risk is crossing collision risk, +# * - 3 - `lateralCollisionRisk` - in case the type of detected collision risk is lateral collision risk, +# * - 4 - `vulnerableRoadUser` - in case the type of detected collision risk involves vulnerable road users +# * e.g. pedestrians or bicycles. +# * - 5 - `collisionRiskWithPedestrian` - in case the type of detected collision risk involves at least one pedestrian, +# * - 6 - `collisionRiskWithCyclist` - in case the type of detected collision risk involves at least one cyclist (and no pedestrians), +# * - 7 - `collisionRiskWithMotorVehicle` - in case the type of detected collision risk involves at least one motor vehicle (and no pedestrians or cyclists), +# * - 8-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1, values 5-7 assigned in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 LONGITUDINAL_COLLISION_RISK = 1 +uint8 CROSSING_COLLISION_RISK = 2 +uint8 LATERAL_COLLISION_RISK = 3 +uint8 VULNERABLE_ROAD_USER = 4 +uint8 COLLISION_RISK_WITH_PEDESTRIAN = 5 +uint8 COLLISION_RISK_WITH_CYCLIST = 6 +uint8 COLLISION_RISK_WITH_MOTOR_VEHICLE = 7 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ConfidenceLevel.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ConfidenceLevel.msg new file mode 100644 index 000000000..dd97f1544 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ConfidenceLevel.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ConfidenceLevel ::= INTEGER { +# unavailable (101) +# } (1..101) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a confidence level in percentage. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 101`) : for the confidence level in %, +# * - `101` : in case the confidence level is not available. +# * +# * @unit Percent +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 101 +uint8 UNAVAILABLE = 101 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CoordinateConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CoordinateConfidence.msg new file mode 100644 index 000000000..8ec8a7883 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CoordinateConfidence.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CoordinateConfidence ::= INTEGER { +# outOfRange (4095), +# unavailable (4096) +# } (1..4096) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the coordinate confidence value which represents the estimated absolute accuracy of a position coordinate with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 4095`) if the confidence value is is equal to or less than n x 0,01 metre, and greater than (n-1) x 0,01 metre, +# * - `4095` if the confidence value is greater than 40,94 metres, +# * - `4096` if the confidence value is not available. +# * +# * @unit 0,01 m +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 1 +uint16 MAX = 4096 +uint16 OUT_OF_RANGE = 4095 +uint16 UNAVAILABLE = 4096 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CorrelationCellValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CorrelationCellValue.msg new file mode 100644 index 000000000..9e8fd6fc3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CorrelationCellValue.msg @@ -0,0 +1,58 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CorrelationCellValue ::= INTEGER { +# full-negative-correlation (-100), +# no-correlation (0), +# full-positive-correlation (100), +# unavailable (101) +# } (-100..101) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the Bravais-Pearson correlation value for each cell of a lower triangular correlation matrix. +# * +# * The value shall be set to: +# * - `-100` in case of full negative correlation, +# * - `n` (`n > -100` and `n < 0`) if the correlation is negative and equal to n x 100, +# * - `0` in case of no correlation, +# * - `n` (`n > 0` and `n < 100`) if the correlation is positive and equal to n x 100, +# * - `100` in case of full positive correlation, +# * - `101` in case the correlation information is unavailable. +# * +# * @unit: the value is scaled by 100 +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +int8 value +int8 MIN = -100 +int8 MAX = 101 +int8 FULL_NEGATIVE_CORRELATION = -100 +int8 NO_CORRELATION = 0 +int8 FULL_POSITIVE_CORRELATION = 100 +int8 UNAVAILABLE = 101 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CorrelationColumn.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CorrelationColumn.msg new file mode 100644 index 000000000..63b17f5f6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CorrelationColumn.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CorrelationColumn ::= SEQUENCE SIZE (1..13,...) OF CorrelationCellValue +# ------------------------------------------------------------------------------ +# * +# * This DF represents a column of a lower triangular positive semi-definite matrix and consists of a list of correlation cell values ordered by rows. +# * Given a matrix "A" of size n x n, the number of columns to be included in the lower triangular matrix is k=n-1. +# * Each column "i" of the lower triangular matrix then contains k-(i-1) values (ordered by rows from 1 to n-1), where "i" refers to the column number count +# * starting at 1 from the left. +# * +# * @category: Sensing Information +# * @revision: Created in V2.1.1 +# + +CorrelationCellValue[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 13 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CountryCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CountryCode.msg new file mode 100644 index 000000000..2b14b565a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CountryCode.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CountryCode ::= BIT STRING(SIZE(10)) +# ------------------------------------------------------------------------------ +# * +# * This DE represents an ISO 3166-1 [25] country code encoded using ITA-2 encoding. +# * +# * @category: Basic information +# * @revision: Created in V2.2.1 based on ISO 14816 [23] +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 10 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Curvature.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Curvature.msg new file mode 100644 index 000000000..a58893dce --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Curvature.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Curvature ::= SEQUENCE { +# curvatureValue CurvatureValue, +# curvatureConfidence CurvatureConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the curvature of the vehicle trajectory and the associated confidence value. +# * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory. +# * +# * It shall include the following components: +# * +# * @field curvatureValue: Detected curvature of the vehicle trajectory. +# * +# * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# + +CurvatureValue curvature_value + +CurvatureConfidence curvature_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureCalculationMode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureCalculationMode.msg new file mode 100644 index 000000000..325ebcf7e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureCalculationMode.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CurvatureCalculationMode ::= ENUMERATED { +# yawRateUsed (0), +# yawRateNotUsed (1), +# unavailable (2), +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value. +# * +# * The value shall be set to: +# * - 0 - `yawRateUsed` - if the yaw rate is used, +# * - 1 - `yawRateNotUsed` - if the yaw rate is not used, +# * - 2 - `unavailable` - if the information of curvature calculation mode is unknown. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +uint8 value +uint8 YAW_RATE_USED = 0 +uint8 YAW_RATE_NOT_USED = 1 +uint8 UNAVAILABLE = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureConfidence.msg new file mode 100644 index 000000000..0354524a5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureConfidence.msg @@ -0,0 +1,77 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CurvatureConfidence ::= ENUMERATED { +# onePerMeter-0-00002 (0), +# onePerMeter-0-0001 (1), +# onePerMeter-0-0005 (2), +# onePerMeter-0-002 (3), +# onePerMeter-0-01 (4), +# onePerMeter-0-1 (5), +# outOfRange (6), +# unavailable (7) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1, +# * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1, +# * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1, +# * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1, +# * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1, +# * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1, +# * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1, +# * - 7 - `unavailable` - if the confidence value is not available. +# * +# * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by +# * several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the curvature value may be valid and used by the application. +# * +# * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid +# * and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 ONE_PER_METER_0_00002 = 0 +uint8 ONE_PER_METER_0_0001 = 1 +uint8 ONE_PER_METER_0_0005 = 2 +uint8 ONE_PER_METER_0_002 = 3 +uint8 ONE_PER_METER_0_01 = 4 +uint8 ONE_PER_METER_0_1 = 5 +uint8 OUT_OF_RANGE = 6 +uint8 UNAVAILABLE = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureValue.msg new file mode 100644 index 000000000..446401a65 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureValue.msg @@ -0,0 +1,67 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# CurvatureValue ::= INTEGER { +# outOfRangeNegative (-1023), +# straight (0), +# outOfRangePositive (1022), +# unavailable (1023) +# } (-1023..1023) +# ------------------------------------------------------------------------------ +# * +# * This DE describes vehicle turning curve with the following information: +# * ``` +# * Value = 1 / Radius * 10000 +# * ``` +# * wherein radius is the vehicle turning curve radius in metres. +# * +# * Positive values indicate a turning curve to the left hand side of the driver. +# * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21]. +# * +# * The value shall be set to: +# * - `-1023` for values smaller than -1023, +# * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`, +# * - `0` when the vehicle is moving straight, +# * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`, +# * - `1022`, for values greater than 1021, +# * - `1023`, if the information is not available. +# * +# * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21]. +# * +# * @unit: 1 over 10 000 metres +# * @category: Vehicle information +# * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly) +# + +int16 value +int16 MIN = -1023 +int16 MAX = 1023 +int16 OUT_OF_RANGE_NEGATIVE = -1023 +int16 STRAIGHT = 0 +int16 OUT_OF_RANGE_POSITIVE = 1022 +int16 UNAVAILABLE = 1023 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousEndOfQueueSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousEndOfQueueSubCauseCode.msg new file mode 100644 index 000000000..1ea2ecf45 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousEndOfQueueSubCauseCode.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DangerousEndOfQueueSubCauseCode ::= INTEGER { +# unavailable (0), +# suddenEndOfQueue (1), +# queueOverHill (2), +# queueAroundBend (3), +# queueInTunnel (4) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of dangerous queue is unavailable, +# * - 1 - `suddenEndOfQueue`- in case a sudden end of queue is detected, e.g. due to accident or obstacle, +# * - 2 - `queueOverHill` - in case the dangerous end of queue is detected on the road hill, +# * - 3 - `queueAroundBend` - in case the dangerous end of queue is detected around the road bend, +# * - 4 - `queueInTunnel` - in case queue is detected in tunnel, +# * - 5-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 SUDDEN_END_OF_QUEUE = 1 +uint8 QUEUE_OVER_HILL = 2 +uint8 QUEUE_AROUND_BEND = 3 +uint8 QUEUE_IN_TUNNEL = 4 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsBasic.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsBasic.msg new file mode 100644 index 000000000..6915b8721 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsBasic.msg @@ -0,0 +1,83 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DangerousGoodsBasic::= ENUMERATED { +# explosives1 (0), +# explosives2 (1), +# explosives3 (2), +# explosives4 (3), +# explosives5 (4), +# explosives6 (5), +# flammableGases (6), +# nonFlammableGases (7), +# toxicGases (8), +# flammableLiquids (9), +# flammableSolids (10), +# substancesLiableToSpontaneousCombustion (11), +# substancesEmittingFlammableGasesUponContactWithWater (12), +# oxidizingSubstances (13), +# organicPeroxides (14), +# toxicSubstances (15), +# infectiousSubstances (16), +# radioactiveMaterial (17), +# corrosiveSubstances (18), +# miscellaneousDangerousSubstances (19) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the type of the dangerous goods being carried by a heavy vehicle. +# * The value is assigned according to `class` and `division` definitions of dangerous goods as specified in part II, +# * chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [3]. +# * +# * +# * @category Vehicle information +# * @revision: V1.3.1 +# + +uint8 value +uint8 EXPLOSIVES1 = 0 +uint8 EXPLOSIVES2 = 1 +uint8 EXPLOSIVES3 = 2 +uint8 EXPLOSIVES4 = 3 +uint8 EXPLOSIVES5 = 4 +uint8 EXPLOSIVES6 = 5 +uint8 FLAMMABLE_GASES = 6 +uint8 NON_FLAMMABLE_GASES = 7 +uint8 TOXIC_GASES = 8 +uint8 FLAMMABLE_LIQUIDS = 9 +uint8 FLAMMABLE_SOLIDS = 10 +uint8 SUBSTANCES_LIABLE_TO_SPONTANEOUS_COMBUSTION = 11 +uint8 SUBSTANCES_EMITTING_FLAMMABLE_GASES_UPON_CONTACT_WITH_WATER = 12 +uint8 OXIDIZING_SUBSTANCES = 13 +uint8 ORGANIC_PEROXIDES = 14 +uint8 TOXIC_SUBSTANCES = 15 +uint8 INFECTIOUS_SUBSTANCES = 16 +uint8 RADIOACTIVE_MATERIAL = 17 +uint8 CORROSIVE_SUBSTANCES = 18 +uint8 MISCELLANEOUS_DANGEROUS_SUBSTANCES = 19 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsContainer.msg new file mode 100644 index 000000000..2882f699e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsContainer.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DangerousGoodsContainer ::= SEQUENCE { +# dangerousGoodsBasic DangerousGoodsBasic +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Dangerous Goods Container. +#* +#* It shall include the following components: +#* +#* @field dangerousGoodsBasic: identifies the type of the dangerous goods transported by the vehicle that originates the CAM. It shall be present if +#* the data is available in the originating ITS S. +# + +DangerousGoodsBasic dangerous_goods_basic + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsExtended.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsExtended.msg new file mode 100644 index 000000000..e07776001 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsExtended.msg @@ -0,0 +1,97 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DangerousGoodsExtended ::= SEQUENCE { +# dangerousGoodsType DangerousGoodsBasic, +# unNumber INTEGER (0..9999), +# elevatedTemperature BOOLEAN, +# tunnelsRestricted BOOLEAN, +# limitedQuantity BOOLEAN, +# emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, +# phoneNumber PhoneNumber OPTIONAL, +# companyName UTF8String (SIZE (1..24)) OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides a description of dangerous goods being carried by a heavy vehicle. +# * +# * It shall include the following components: +# * +# * @field dangerousGoodsType: Type of dangerous goods. +# * +# * @field unNumber: a 4-digit number that identifies the substance of the dangerous goods as specified in +# * United Nations Recommendations on the Transport of Dangerous Goods - Model Regulations [4], +# * +# * @field elevatedTemperature: whether the carried dangerous goods are transported at high temperature. +# * If yes, the value shall be set to TRUE, +# * +# * @field tunnelsRestricted: whether the heavy vehicle carrying dangerous goods is restricted to enter tunnels. +# * If yes, the value shall be set to TRUE, +# * +# * @field limitedQuantity: whether the carried dangerous goods are packed with limited quantity. +# * If yes, the value shall be set to TRUE, +# * +# * @field emergencyActionCode: physical signage placard at the vehicle that carries information on how an emergency +# * service should deal with an incident. This component is optional; it shall be present if the information is available. +# * +# * @field phoneNumber: contact phone number of assistance service in case of incident or accident. +# * This component is optional, it shall be present if the information is available. +# * +# * @field companyName: name of company that manages the transportation of the dangerous goods. +# * This component is optional; it shall be present if the information is available. +# * +# * @category Vehicle information +# * @revision: V1.3.1 +# + +DangerousGoodsBasic dangerous_goods_type + +uint16 un_number +uint16 UN_NUMBER_MIN = 0 +uint16 UN_NUMBER_MAX = 9999 + +bool elevated_temperature + +bool tunnels_restricted + +bool limited_quantity + +string emergency_action_code +bool emergency_action_code_is_present +uint8 EMERGENCY_ACTION_CODE_MIN_SIZE = 1 +uint8 EMERGENCY_ACTION_CODE_MAX_SIZE = 24 + +PhoneNumber phone_number +bool phone_number_is_present + +string company_name +bool company_name_is_present +uint8 COMPANY_NAME_MIN_SIZE = 1 +uint8 COMPANY_NAME_MAX_SIZE = 24 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousSituationSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousSituationSubCauseCode.msg new file mode 100644 index 000000000..dd172b5ca --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousSituationSubCauseCode.msg @@ -0,0 +1,68 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DangerousSituationSubCauseCode ::= INTEGER { +# unavailable (0), +# emergencyElectronicBrakeEngaged (1), +# preCrashSystemEngaged (2), +# espEngaged (3), +# absEngaged (4), +# ebEngaged (5), +# brakeWarningEngaged (6), +# collisionRiskWarningEngaged (7) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousSituation` +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of dangerous situation is unavailable, +# * - 1 - `emergencyElectronicBrakeEngaged` - in case emergency electronic brake is engaged, +# * - 2 - `preCrashSystemEngaged` - in case pre-crash system is engaged, +# * - 3 - `espEngaged` - in case Electronic Stability Program (ESP) system is engaged, +# * - 4 - `absEngaged` - in case Anti-lock Braking System (ABS) is engaged, +# * - 5 - `aebEngaged` - in case Autonomous Emergency Braking (AEB) system is engaged, +# * - 6 - `brakeWarningEngaged` - in case brake warning is engaged, +# * - 7 - `collisionRiskWarningEngaged` - in case collision risk warning is engaged, +# * - 8-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 EMERGENCY_ELECTRONIC_BRAKE_ENGAGED = 1 +uint8 PRE_CRASH_SYSTEM_ENGAGED = 2 +uint8 ESP_ENGAGED = 3 +uint8 ABS_ENGAGED = 4 +uint8 EB_ENGAGED = 5 +uint8 BRAKE_WARNING_ENGAGED = 6 +uint8 COLLISION_RISK_WARNING_ENGAGED = 7 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaAltitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaAltitude.msg new file mode 100644 index 000000000..b7f1dbf7b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaAltitude.msg @@ -0,0 +1,57 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaAltitude ::= INTEGER { +# negativeOutOfRange (-12700), +# positiveOutOfRange (12799), +# unavailable (12800) +# } (-12700..12800) +# ------------------------------------------------------------------------------ +# * +# * This DE represents an offset altitude with regards to a defined altitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `-12 700` for values equal to or lower than -127 metres, +# * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position, +# * - `0` for no altitudinal offset, +# * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position, +# * - `12 799` for values equal to or greater than 127,99 metres, +# * - `12 800` when the information is unavailable. +# * +# * @unit: 0,01 metre +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# + +int16 value +int16 MIN = -12700 +int16 MAX = 12800 +int16 NEGATIVE_OUT_OF_RANGE = -12700 +int16 POSITIVE_OUT_OF_RANGE = 12799 +int16 UNAVAILABLE = 12800 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLatitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLatitude.msg new file mode 100644 index 000000000..8dc6a9935 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLatitude.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaLatitude ::= INTEGER { +# unavailable (131072) +# } (-131071..131072) +# ------------------------------------------------------------------------------ +# * +# * This DE represents an offset latitude with regards to a defined latitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position, +# * - `0` for no latitudinal offset, +# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position, +# * - `131 072` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# + +int32 value +int32 MIN = -131071 +int32 MAX = 131072 +int32 UNAVAILABLE = 131072 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLongitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLongitude.msg new file mode 100644 index 000000000..3952ee467 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLongitude.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaLongitude ::= INTEGER { +# unavailable (131072) +# } (-131071..131072) +# ------------------------------------------------------------------------------ +# * +# * This DE represents an offset longitude with regards to a defined longitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position, +# * - `0` for no longitudinal offset, +# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position, +# * - `131 072` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# + +int32 value +int32 MIN = -131071 +int32 MAX = 131072 +int32 UNAVAILABLE = 131072 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaReferencePosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaReferencePosition.msg new file mode 100644 index 000000000..36ab2016c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaReferencePosition.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaReferencePosition ::= SEQUENCE { +# deltaLatitude DeltaLatitude, +# deltaLongitude DeltaLongitude, +# deltaAltitude DeltaAltitude +# } +# ------------------------------------------------------------------------------ +# * +# * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point. +# * +# * It shall include the following components: +# * +# * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position. +# * +# * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position. +# * +# * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position. +# * +# * @category: GeoReference information +# * @revision: V1.3.1 +# + +DeltaLatitude delta_latitude + +DeltaLongitude delta_longitude + +DeltaAltitude delta_altitude + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeMilliSecondPositive.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeMilliSecondPositive.msg new file mode 100644 index 000000000..9ccccd814 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeMilliSecondPositive.msg @@ -0,0 +1,47 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaTimeMilliSecondPositive ::= INTEGER (1..10000) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a difference in time with respect to a reference time. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 10001`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s, +# * +# * Example: a time interval between two consecutive message transmissions. +# * +# * @unit: 0,001 s +# * @category: Basic information +# * @revision: Created in V2.1.1 from the DE TransmissionInterval in [2] +# + +uint16 value +uint16 MIN = 1 +uint16 MAX = 10000 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeMilliSecondSigned.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeMilliSecondSigned.msg new file mode 100644 index 000000000..f09c67dee --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeMilliSecondSigned.msg @@ -0,0 +1,47 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaTimeMilliSecondSigned ::= INTEGER (-2048..2047) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a signed difference in time with respect to a reference time. +# * +# * The value shall be set to: +# * - `-2048` for time values equal to or less than -2,048 s, +# * - `n` (`n > -2048` and `n < 2047`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s, +# * - `2047` for time values greater than 2,046 s +# * +# * @unit: 0,001 s +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +int16 value +int16 MIN = -2048 +int16 MAX = 2047 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeQuarterSecond.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeQuarterSecond.msg new file mode 100644 index 000000000..3ab1fa52d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeQuarterSecond.msg @@ -0,0 +1,46 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaTimeQuarterSecond::= INTEGER { +# unavailable (255) +# } (1..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a difference in time with respect to a reference time. +# * It can be interpreted as the first 8 bits of a GenerationDeltaTime. To convert it to a @ref GenerationDeltaTime, +# * multiply by 256 (i.e. append a `00` byte) +# * +# * @unit: 256 * 0,001 s +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 255 +uint8 UNAVAILABLE = 255 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeSecond.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeSecond.msg new file mode 100644 index 000000000..a0cf79131 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeSecond.msg @@ -0,0 +1,46 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaTimeSecond ::= INTEGER (0..86400) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a difference in time with respect to a reference time. +# * +# * The value shall be set to: +# * - `-0` for a difference in time of 0 seconds. +# * - `n` (`n > 0` and `n <= 86400`) to indicate a time value equal to or less than n x 1 s, and greater than (n-1) x 1 s, +# * +# * @unit: 1 s +# * @category: Basic information +# * @revision: Created in V2.1.1 from ValidityDuration +# + +uint32 value +uint32 MIN = 0 +uint32 MAX = 86400 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeTenSeconds.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeTenSeconds.msg new file mode 100644 index 000000000..9cfc67b06 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeTenSeconds.msg @@ -0,0 +1,46 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaTimeTenSeconds ::= INTEGER (0..127) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a difference in time with respect to a reference time. +# * +# * The value shall be set to: +# * - `-0` for a difference in time of 0 seconds. +# * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 10 s, and greater than (n-1) x 10 s, +# * +# * @unit: 10 s +# * @category: Basic information +# * @revision: Created in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 127 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeTenthOfSecond.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeTenthOfSecond.msg new file mode 100644 index 000000000..faf78f7a3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaTimeTenthOfSecond.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaTimeTenthOfSecond::= INTEGER { +# unavailable (127) +# } (0..127) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a difference in time with respect to a reference time. +# * +# * The value shall be set to: +# * - `0` for a difference in time of 0 seconds. +# * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 0,1 s, and greater than (n-1) x 0,1 s, +# * +# * @unit: 0,1 s +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 127 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DigitalMap.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DigitalMap.msg new file mode 100644 index 000000000..35e24ee09 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DigitalMap.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition +# ------------------------------------------------------------------------------ +# * +# * This DF represents a portion of digital map. It shall contain a list of waypoints @ref ReferencePosition. +# * +# * @category: GeoReference information +# * @revision: V1.3.1 +# + +ReferencePosition[] array +uint16 MIN_SIZE = 1 +uint16 MAX_SIZE = 256 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Direction.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Direction.msg new file mode 100644 index 000000000..52e0684ec --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Direction.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Direction::= INTEGER{ +# sameDirection (0), +# oppositeDirection (1), +# bothDirections (2), +# unavailable (3) +# } (0..3) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates a direction with respect to a defined reference direction. +# * Example: a reference direction may be implicitly defined by the definition of a geographical zone. +# * +# * The value shall be set to: +# * - 0 - `sameDirection` - to indicate the same direction as the reference direction, +# * - 1 - `oppositeDirection` - to indicate opposite direction as the reference direction, +# * - 2 - `bothDirections` - to indicate both directions, i.e. the same and the opposite direction, +# * - 3 - `unavailable` - to indicate that the information is unavailable. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 3 +uint8 SAME_DIRECTION = 0 +uint8 OPPOSITE_DIRECTION = 1 +uint8 BOTH_DIRECTIONS = 2 +uint8 UNAVAILABLE = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DriveDirection.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DriveDirection.msg new file mode 100644 index 000000000..32917d5e9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DriveDirection.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DriveDirection ::= ENUMERATED { +# forward (0), +# backward (1), +# unavailable (2) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates in which direction something is moving. +# * +# * The value shall be set to: +# * - 0 - `forward` - to indicate it is moving forward, +# * - 1 - `backwards` - to indicate it is moving backwards, +# * - 2 - `unavailable` - to indicate that the information is unavailable. +# * +# * @category: Kinematic information +# * @revision: editorial update in V2.1.1 +# + +uint8 value +uint8 FORWARD = 0 +uint8 BACKWARD = 1 +uint8 UNAVAILABLE = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DrivingLaneStatus.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DrivingLaneStatus.msg new file mode 100644 index 000000000..155c59a34 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DrivingLaneStatus.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates whether a driving lane is open to traffic. +# * +# * A lane is counted from inside border of the road excluding the hard shoulder. The size of the bit string shall +# * correspond to the total number of the driving lanes in the carriageway. +# * +# * The numbering is matched to @ref LanePosition. +# * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border. +# * +# * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`. +# * +# * @note: hard shoulder status is not provided by this DE but in @ref HardShoulderStatus. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8[] value +uint8 bits_unused +uint8 MIN_SIZE_BITS = 1 +uint8 MAX_SIZE_BITS = 13 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EllipticalShape.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EllipticalShape.msg new file mode 100644 index 000000000..ccaa084c1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EllipticalShape.msg @@ -0,0 +1,75 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EllipticalShape ::= SEQUENCE { +# shapeReferencePoint CartesianPosition3d OPTIONAL, +# semiMajorAxisLength StandardLength12b, +# semiMinorAxisLength StandardLength12b, +# orientation CartesianAngleValue OPTIONAL, +# height StandardLength12b OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * +# * This DF represents the shape of an elliptical area or right elliptical cylinder that is centred +# * on the shape's reference point defined outside of the context of this DF and oriented w.r.t. a +# * cartesian coordinate system defined outside of the context of this DF. +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: optional reference point which represents the centre of the ellipse, +# * relative to an externally specified reference position. If this component is absent, the +# * externally specified reference position represents the shape's reference point. +# * +# * @field semiMajorAxisLength: half length of the major axis of the ellipse located in the X-Y Plane. +# * +# * @field semiMinorAxisLength: half length of the minor axis of the ellipse located in the X-Y Plane. +# * +# * @field orientation: the optional orientation of the major axis of the ellipse, measured with +# * positive values turning around the z-axis using the right-hand rule, starting from the X-axis. +# * +# * @field height: the optional height, present if the shape is a right elliptical cylinder extending +# * in the positive Z-axis. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1, the type of the field orientation changed and the description revised in V2.2.1 +# + +CartesianPosition3d shape_reference_point +bool shape_reference_point_is_present + +StandardLength12b semi_major_axis_length + +StandardLength12b semi_minor_axis_length + +CartesianAngleValue orientation +bool orientation_is_present + +StandardLength12b height +bool height_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmbarkationStatus.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmbarkationStatus.msg new file mode 100644 index 000000000..68ecd3d99 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmbarkationStatus.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EmbarkationStatus ::= BOOLEAN +# ------------------------------------------------------------------------------ +# * +# * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process. +# * If that is the case, the value is *TRUE*, otherwise *FALSE*. +# * +# * @category: Vehicle information +# * @revision: editorial update in V2.1.1 +# + +bool value + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyContainer.msg new file mode 100644 index 000000000..f63bb4cbe --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyContainer.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EmergencyContainer ::= SEQUENCE { +# lightBarSirenInUse LightBarSirenInUse, +# incidentIndication CauseCodeV2 OPTIONAL, +# emergencyPriority EmergencyPriority OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Emergency Container. +#* +#* It shall include the following components: +#* +#* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +#* +#* @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. +#* +#* @field emergencyPriority: the optional component represent right of way indicator of the vehicle ITS-S that originates the CAM PDU. +# + +LightBarSirenInUse light_bar_siren_in_use + +CauseCodeV2 incident_indication +bool incident_indication_is_present + +EmergencyPriority emergency_priority +bool emergency_priority_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyPriority.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyPriority.msg new file mode 100644 index 000000000..44cd87f9a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyPriority.msg @@ -0,0 +1,39 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EmergencyPriority ::= BIT STRING { +# requestForRightOfWay (0), +# requestForFreeCrossingAtATrafficLight (1) +# } (SIZE(2)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 2 +uint8 BIT_INDEX_REQUEST_FOR_RIGHT_OF_WAY = 0 +uint8 BIT_INDEX_REQUEST_FOR_FREE_CROSSING_AT_A_TRAFFIC_LIGHT = 1 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyVehicleApproachingSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyVehicleApproachingSubCauseCode.msg new file mode 100644 index 000000000..50e38fc36 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyVehicleApproachingSubCauseCode.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EmergencyVehicleApproachingSubCauseCode ::= INTEGER { +# unavailable (0), +# emergencyVehicleApproaching (1), +# prioritizedVehicleApproaching (2) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching". +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the emergency vehicle approaching event +# * is unavailable, +# * - 1 - `emergencyVehicleApproaching` - in case an operating emergency vehicle is approaching, +# * - 2 - `prioritizedVehicleApproaching` - in case a prioritized vehicle is approaching, +# * - 3-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 EMERGENCY_VEHICLE_APPROACHING = 1 +uint8 PRIORITIZED_VEHICLE_APPROACHING = 2 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EnergyStorageType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EnergyStorageType.msg new file mode 100644 index 000000000..bfd4fe6ed --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EnergyStorageType.msg @@ -0,0 +1,66 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EnergyStorageType ::= BIT STRING { +# hydrogenStorage (0), +# electricEnergyStorage (1), +# liquidPropaneGas (2), +# compressedNaturalGas (3), +# diesel (4), +# gasoline (5), +# ammonia (6) +# }(SIZE(7)) +# ------------------------------------------------------------------------------ +# * +# * This DE indicated the type of energy being used and stored in vehicle. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `hydrogenStorage` - when hydrogen is being used and stored in vehicle, +# * - 1 - `electricEnergyStorage` - when electric energy is being used and stored in vehicle, +# * - 2 - `liquidPropaneGas` - when liquid Propane Gas (LPG) is being used and stored in vehicle, +# * - 3 - `compressedNaturalGas ` - when compressedNaturalGas (CNG) is being used and stored in vehicle, +# * - 4 - `diesel` - when diesel is being used and stored in vehicle, +# * - 5 - `gasoline` - when gasoline is being used and stored in vehicle, +# * - 6 - `ammonia` - when ammonia is being used and stored in vehicle. +# * +# * - Otherwise, the corresponding bit shall be set to `0`. +# * +# * @category: Vehicle information +# * @revision: editorial revision in V2.1.1 +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 7 +uint8 BIT_INDEX_HYDROGEN_STORAGE = 0 +uint8 BIT_INDEX_ELECTRIC_ENERGY_STORAGE = 1 +uint8 BIT_INDEX_LIQUID_PROPANE_GAS = 2 +uint8 BIT_INDEX_COMPRESSED_NATURAL_GAS = 3 +uint8 BIT_INDEX_DIESEL = 4 +uint8 BIT_INDEX_GASOLINE = 5 +uint8 BIT_INDEX_AMMONIA = 6 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryCode.msg new file mode 100644 index 000000000..3814dc610 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryCode.msg @@ -0,0 +1,78 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EuVehicleCategoryCode ::= CHOICE { +# euVehicleCategoryL EuVehicleCategoryL, +# euVehicleCategoryM EuVehicleCategoryM, +# euVehicleCategoryN EuVehicleCategoryN, +# euVehicleCategoryO EuVehicleCategoryO, +# euVehicleCategoryT NULL, +# euVehicleCategoryG NULL +# } +# ------------------------------------------------------------------------------ +# * +# * +# * This DF represents a vehicle category according to the UNECE/TRANS/WP.29/78/Rev.4 [16]. +# * The following options are available: +# * +# * @field euVehicleCategoryL: indicates a vehicle in the L category. +# * +# * @field euVehicleCategoryM: indicates a vehicle in the M category. +# * +# * @field euVehicleCategoryN: indicates a vehicle in the N category. +# * +# * @field euVehicleCategoryO: indicates a vehicle in the O category. +# * +# * @field euVehicleCategoryT: indicates a vehicle in the T category. +# * +# * @field euVehicleCategoryG: indicates a vehicle in the G category. +# * +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# + +uint8 choice + +EuVehicleCategoryL eu_vehicle_category_l +uint8 CHOICE_EU_VEHICLE_CATEGORY_L = 0 + +EuVehicleCategoryM eu_vehicle_category_m +uint8 CHOICE_EU_VEHICLE_CATEGORY_M = 1 + +EuVehicleCategoryN eu_vehicle_category_n +uint8 CHOICE_EU_VEHICLE_CATEGORY_N = 2 + +EuVehicleCategoryO eu_vehicle_category_o +uint8 CHOICE_EU_VEHICLE_CATEGORY_O = 3 + +byte eu_vehicle_category_t +uint8 CHOICE_EU_VEHICLE_CATEGORY_T = 4 + +byte eu_vehicle_category_g +uint8 CHOICE_EU_VEHICLE_CATEGORY_G = 5 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryL.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryL.msg new file mode 100644 index 000000000..e10d56112 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryL.msg @@ -0,0 +1,47 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EuVehicleCategoryL ::= ENUMERATED { l1, l2, l3, l4, l5, l6, l7 } +# ------------------------------------------------------------------------------ +# * +# * This DE represents one of the specific categories in the L category: L1, L2, L3, L4, L5, L6, or L7 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. +# * +# * +# * @category: Vehicle information +# * @revision: V2.1.1 +# + +uint8 value +uint8 L1 = 0 +uint8 L2 = 1 +uint8 L3 = 2 +uint8 L4 = 3 +uint8 L5 = 4 +uint8 L6 = 5 +uint8 L7 = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryM.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryM.msg new file mode 100644 index 000000000..0d74fe276 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryM.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EuVehicleCategoryM ::= ENUMERATED {m1, m2, m3} +# ------------------------------------------------------------------------------ +# * +# * This DE represents one of the specific categories in the M category: M1, M2, or M3 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. +# * +# * +# * @category: Vehicle information +# * @revision: V2.1.1 +# + +uint8 value +uint8 M1 = 0 +uint8 M2 = 1 +uint8 M3 = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryN.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryN.msg new file mode 100644 index 000000000..ebe309c7d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryN.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EuVehicleCategoryN ::= ENUMERATED {n1, n2, n3} +# ------------------------------------------------------------------------------ +# * +# * This DE represents one of the specific categories in the N category: N1, N2, or N3 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. +# * +# * +# * @category: Vehicle information +# * @revision: V2.1.1 +# + +uint8 value +uint8 N1 = 0 +uint8 N2 = 1 +uint8 N3 = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryO.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryO.msg new file mode 100644 index 000000000..ba206cd22 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EuVehicleCategoryO.msg @@ -0,0 +1,44 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EuVehicleCategoryO ::= ENUMERATED {o1, o2, o3, o4} +# ------------------------------------------------------------------------------ +# * +# * This DE represents one of the specific categories in the O category: O1, O2, O3 or O4 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. +# * +# * +# * @category: Vehicle information +# * @revision: V2.1.1 +# + +uint8 value +uint8 O1 = 0 +uint8 O2 = 1 +uint8 O3 = 2 +uint8 O4 = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EulerAnglesWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EulerAnglesWithConfidence.msg new file mode 100644 index 000000000..438ebb1ef --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EulerAnglesWithConfidence.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EulerAnglesWithConfidence ::= SEQUENCE { +# zAngle CartesianAngle, +# yAngle CartesianAngle OPTIONAL, +# xAngle CartesianAngle OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the Euler angles which describe the orientation of an object bounding box in a Cartesian coordinate system with an associated confidence level for each angle. +# * +# * It shall include the following components: +# * +# * @field zAngle: z-angle of object bounding box at the time of measurement, with the associated confidence. +# * The angle is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule, starting from the x-axis. +# * This extrinsic rotation shall be applied around the centre point of the object bounding box before all other rotations. +# * +# * @field yAngle: optional y-angle of object bounding box at the time of measurement, with the associated confidence. +# * The angle is measured with positive values considering the object orientation turning around the y-axis using the right-hand rule, starting from the z-axis. +# * This extrinsic rotation shall be applied around the centre point of the object bounding box after the rotation by zAngle and before the rotation by xAngle. +# * +# * @field xAngle: optional x-angle of object bounding box at the time of measurement, with the associated confidence. +# * The angle is measured with positive values considering the object orientation turning around the x-axis using the right-hand rule, starting from the z-axis. +# * This extrinsic rotation shall be applied around the centre point of the object bounding box after all other rotations. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +CartesianAngle z_angle + +CartesianAngle y_angle +bool y_angle_is_present + +CartesianAngle x_angle +bool x_angle_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventHistory.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventHistory.msg new file mode 100644 index 000000000..48d54b1e9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventHistory.msg @@ -0,0 +1,44 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint +# ------------------------------------------------------------------------------ +# * +# * The DF shall contain a list of @ref EventPoint. +# * +# * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list. +# * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF. +# * +# * @category: GeoReference information, Traffic information +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref EventZone instead. +# * @revision: Generalized the semantics in V2.1.1 +# + +EventPoint[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 23 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventPoint.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventPoint.msg new file mode 100644 index 000000000..0712c4755 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventPoint.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EventPoint ::= SEQUENCE { +# eventPosition DeltaReferencePosition, +# eventDeltaTime PathDeltaTime OPTIONAL, +# informationQuality InformationQuality +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides information related to an event at a defined position. +# * +# * It shall include the following components: +# * +# * @field eventPosition: offset position of a detected event point to a defined position. +# * +# * @field eventDeltaTime: optional time travelled by the detecting ITS-S since the previous detected event point. +# * +# * @field informationQuality: Information quality of the detection for this event point. +# * +# * @category: GeoReference information, Traffic information +# * @revision: generalized the semantics in V2.1.1 +# + +DeltaReferencePosition event_position + +PathDeltaTime event_delta_time +bool event_delta_time_is_present + +InformationQuality information_quality + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventZone.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventZone.msg new file mode 100644 index 000000000..a86cc9463 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EventZone.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EventZone::= EventHistory +# ------------------------------------------------------------------------------ +# * +# * The DF shall contain a list of @ref EventPoint, where all @ref EventPoint either contain the COMPONENT eventDeltaTime +# * or do not contain the COMPONENT eventDeltaTime. +# * +# * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list. +# * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF. +# * +# * @category: GeoReference information, Traffic information +# * @revision: created in V2.1.1 based on EventHistory +# + +EventHistory value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext1.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext1.msg new file mode 100644 index 000000000..120ae9e77 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext1.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Ext1::=CHOICE{ +# content [0] INTEGER(128..16511), -- two octets length +# extension [1] Ext2 +# } +# ------------------------------------------------------------------------------ +uint8 choice + +uint16 content +uint8 CHOICE_CONTENT = 0 + +Ext2 extension +uint8 CHOICE_EXTENSION = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext2.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext2.msg new file mode 100644 index 000000000..4eb7dd3f0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext2.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Ext2::=CHOICE{ +# content [0] INTEGER(16512..2113663), -- three octets length +# extension [1] Ext3 +# } +# ------------------------------------------------------------------------------ +uint8 choice + +uint32 content +uint8 CHOICE_CONTENT = 0 + +Ext3 extension +uint8 CHOICE_EXTENSION = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext3.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext3.msg new file mode 100644 index 000000000..bf9314c48 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Ext3.msg @@ -0,0 +1,35 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Ext3::= INTEGER(2113664..270549119,...) -- four and more octets length +# ------------------------------------------------------------------------------ + +int64 value +int64 MIN = 2113664 +int64 MAX = 270549119 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ExteriorLights.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ExteriorLights.msg new file mode 100644 index 000000000..57d954342 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ExteriorLights.msg @@ -0,0 +1,80 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ExteriorLights ::= BIT STRING { +# lowBeamHeadlightsOn (0), +# highBeamHeadlightsOn (1), +# leftTurnSignalOn (2), +# rightTurnSignalOn (3), +# daytimeRunningLightsOn (4), +# reverseLightOn (5), +# fogLightOn (6), +# parkingLightsOn (7) +# } (SIZE(8)) +# ------------------------------------------------------------------------------ +# * +# * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on, +# * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on, +# * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on, +# * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on, +# * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on, +# * - 5 - `reverseLightOn` - when the reverse light switch is on, +# * - 6 - `fogLightOn` - when the tail fog light switch is on, +# * - 7 - `parkingLightsOn` - when the parking light switch is on. +# * +# * @note: The value of each bit indicates the state of the switch, which commands the corresponding light. +# * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on, +# * either manually by the driver or automatically by a vehicle system. The bit value does not indicate +# * if the corresponding lamps are alight or not. +# * +# * If a vehicle is not equipped with a certain light or if the light switch status information is not available, +# * the corresponding bit shall be set to `0`. +# * +# * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not +# * alternate with the blinking interval. +# * +# * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`. +# * +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 8 +uint8 BIT_INDEX_LOW_BEAM_HEADLIGHTS_ON = 0 +uint8 BIT_INDEX_HIGH_BEAM_HEADLIGHTS_ON = 1 +uint8 BIT_INDEX_LEFT_TURN_SIGNAL_ON = 2 +uint8 BIT_INDEX_RIGHT_TURN_SIGNAL_ON = 3 +uint8 BIT_INDEX_DAYTIME_RUNNING_LIGHTS_ON = 4 +uint8 BIT_INDEX_REVERSE_LIGHT_ON = 5 +uint8 BIT_INDEX_FOG_LIGHT_ON = 6 +uint8 BIT_INDEX_PARKING_LIGHTS_ON = 7 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeneralizedLanePosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeneralizedLanePosition.msg new file mode 100644 index 000000000..6da8d6528 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeneralizedLanePosition.msg @@ -0,0 +1,66 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# GeneralizedLanePosition ::= SEQUENCE { +# lanePositionBased LanePositionOptions, +# mapBased MapPosition OPTIONAL, +# confidence MetaInformation, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the top-level DF to represent a lane position. A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. +# * +# * @note: This DF is the most general way to represent a lane position: it provides a complete set of information regarding a transversal (dimensionless) position on the carriageway at a specific +# * reference position, i.e. it provides different options and synonyms to represent the lane at which the reference position (the point) is located. A confidence is used to describe the probability +# * that the object is located in the provided lane. The dimension of the object or extension of an area are not considered: See @ref OccupiedLanesWithConfidence for describing the occupation of lanes, +# * where the dimensions of an object or the extension of an area is considered. +# * +# * It shall include the following components: +# * +# * @field lanePositionBased: lane position information for a defined reference position. +# * +# * @field mapBased: optional lane position information described in the context of a MAPEM as specified in ETSI TS 103 301 [15]. +# * If present, it shall describe the same reference position using the lane identification in the MAPEM. This component can be used only if a MAPEM is available for the reference position +# * (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased. +# * +# * @field confidence: confidence information for expressing the probability that the object is located at the indicated lane. +# * If the value of the component lanePositionBased is generated directly from the absolute reference position and reference topology information, +# * no sensor shall be indicated in the component usedDetectionInformation of the @ref MetaInformation. +# * +# * @category: Road Topology information +# * @revision: newly created in V2.2.1. The previous DF GeneralizedLanePosition is now renamed to @ref LanePositionOptions. +# + +LanePositionOptions lane_position_based + +MapPosition map_based +bool map_based_is_present + +MetaInformation confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeneralizedLanePositions.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeneralizedLanePositions.msg new file mode 100644 index 000000000..8fb23b5a5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeneralizedLanePositions.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# GeneralizedLanePositions ::= SEQUENCE (SIZE(1..4)) OF GeneralizedLanePosition +# ------------------------------------------------------------------------------ +# * +# * This DF represents transversal position information with respect to the road, at an externally defined reference position. It shall contain a set of up to `4` @ref GeneralizedLanePosition. +# * Multiple entries can be used to describe several lane positions with the associated confidence, in cases where the reference position cannot be mapped to a single lane. +# * +# * @category: Road Topology information +# * @revision: Created in V2.2.1 +# + +GeneralizedLanePosition[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 4 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GenerationDeltaTime.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GenerationDeltaTime.msg new file mode 100644 index 000000000..4232eb4b9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GenerationDeltaTime.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a timestamp based on TimestampIts modulo 65 536. +# * This means that generationDeltaTime = TimestampIts mod 65 536. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1] +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 +uint16 ONE_MILLI_SEC = 1 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeoPosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeoPosition.msg new file mode 100644 index 000000000..af5bbb534 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GeoPosition.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# GeoPosition::= SEQUENCE{ +# latitude Latitude, +# longitude Longitude, +# altitude AltitudeValue DEFAULT unavailable +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates a geographical position. +# * +# * It shall include the following components: +# * +# * @field latitude: the latitude of the geographical position. +# * +# * @field longitude: the longitude of the geographical position. +# * +# * @field altitude: the altitude of the geographical position with default value unavailable. +# * +# + +Latitude latitude + +Longitude longitude + +AltitudeValue altitude + + +int32 ALTITUDE_DEFAULT = 800001 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HardShoulderStatus.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HardShoulderStatus.msg new file mode 100644 index 000000000..e974c173c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HardShoulderStatus.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HardShoulderStatus ::= ENUMERATED { +# availableForStopping (0), +# closed (1), +# availableForDriving (2) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the current status of a hard shoulder: whether it is available for special usage +# * (e.g. for stopping or for driving) or closed for all vehicles. +# * +# * The value shall be set to: +# * - 0 - `availableForStopping` - if the hard shoulder is available for stopping in e.g. emergency situations, +# * - 1 - `closed` - if the hard shoulder is closed and cannot be occupied in any case, +# * - 2 - `availableForDriving` - if the hard shoulder is available for regular driving. +# * +# * @category: Traffic information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 AVAILABLE_FOR_STOPPING = 0 +uint8 CLOSED = 1 +uint8 AVAILABLE_FOR_DRIVING = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationAnimalOnTheRoadSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationAnimalOnTheRoadSubCauseCode.msg new file mode 100644 index 000000000..bac1ed3a7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationAnimalOnTheRoadSubCauseCode.msg @@ -0,0 +1,74 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER { +# unavailable (0), +# wildAnimals (1), +# herdOfAnimals (2), +# smallAnimals (3), +# largeAnimals (4), +# wildAnimalsSmall (5), +# wildAnimalsLarge (6), +# domesticAnimals (7), +# domesticAnimalsSmall (8), +# domesticAnimalsLarge (9) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the animal(s) on the road is unavailable, +# * - 1 - `wildAnimals` - in case wild animals of unknown size are present on the road, +# * - 2 - `herdOfAnimals` - in case a herd of animals is present on the road, +# * - 3 - `smallAnimals` - in case small size animals of unknown type are present on the road, +# * - 4 - `largeAnimals` - in case large size animals of unknown type are present on the road, +# * - 5 - `wildAnimalsSmall` - in case small size wild animal(s) are present on the road, +# * - 6 - `wildAnimalsLarge` - in case large size wild animal(s) are present on the road, +# * - 7 - `domesticAnimals` - in case domestic animal(s) of unknown size are detected on the road, +# * - 8 - `domesticAnimalsSmall` - in case small size domestic animal(s) are present on the road, +# * - 9 - `domesticAnimalsLarge` - in case large size domestic animal(s) are present on the road. +# * - 10-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1, named values 5 to 9 added in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 WILD_ANIMALS = 1 +uint8 HERD_OF_ANIMALS = 2 +uint8 SMALL_ANIMALS = 3 +uint8 LARGE_ANIMALS = 4 +uint8 WILD_ANIMALS_SMALL = 5 +uint8 WILD_ANIMALS_LARGE = 6 +uint8 DOMESTIC_ANIMALS = 7 +uint8 DOMESTIC_ANIMALS_SMALL = 8 +uint8 DOMESTIC_ANIMALS_LARGE = 9 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationDangerousCurveSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationDangerousCurveSubCauseCode.msg new file mode 100644 index 000000000..bb48ce389 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationDangerousCurveSubCauseCode.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER { +# unavailable (0), +# dangerousLeftTurnCurve (1), +# dangerousRightTurnCurve (2), +# multipleCurvesStartingWithUnknownTurningDirection (3), +# multipleCurvesStartingWithLeftTurn (4), +# multipleCurvesStartingWithRightTurn (5) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the sub cause code of the @ref CauseCode `hazardousLocation-DangerousCurve`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the dangerous curve is unavailable, +# * - 1 - `dangerousLeftTurnCurve` - in case the dangerous curve is a left turn curve, +# * - 2 - `dangerousRightTurnCurve` - in case the dangerous curve is a right turn curve, +# * - 3 - `multipleCurvesStartingWithUnknownTurningDirection` - in case of multiple curves for which the starting curve turning direction is not known, +# * - 4 - `multipleCurvesStartingWithLeftTurn` - in case of multiple curves starting with a left turn curve, +# * - 5 - `multipleCurvesStartingWithRightTurn` - in case of multiple curves starting with a right turn curve. +# * - 6-255 - are reserved for future usage. +# * +# * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass +# * and vehicle speed driving on the curve. This definition is out of scope of the present document. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 DANGEROUS_LEFT_TURN_CURVE = 1 +uint8 DANGEROUS_RIGHT_TURN_CURVE = 2 +uint8 MULTIPLE_CURVES_STARTING_WITH_UNKNOWN_TURNING_DIRECTION = 3 +uint8 MULTIPLE_CURVES_STARTING_WITH_LEFT_TURN = 4 +uint8 MULTIPLE_CURVES_STARTING_WITH_RIGHT_TURN = 5 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationObstacleOnTheRoadSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationObstacleOnTheRoadSubCauseCode.msg new file mode 100644 index 000000000..84d912dae --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationObstacleOnTheRoadSubCauseCode.msg @@ -0,0 +1,68 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER { +# unavailable (0), +# shedLoad (1), +# partsOfVehicles (2), +# partsOfTyres (3), +# bigObjects (4), +# fallenTrees (5), +# hubCaps (6), +# waitingVehicles (7) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the detected obstacle is unavailable, +# * - 1 - `shedLoad` - in case detected obstacle is large amount of obstacles (shedload), +# * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles, +# * - 3 - `partsOfTyres` - in case the detected obstacles are parts of tyres, +# * - 4 - `bigObjects` - in case the detected obstacles are big objects, +# * - 5 - `fallenTrees` - in case the detected obstacles are fallen trees, +# * - 6 - `hubCaps` - in case the detected obstacles are hub caps, +# * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles. +# * - 8-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 SHED_LOAD = 1 +uint8 PARTS_OF_VEHICLES = 2 +uint8 PARTS_OF_TYRES = 3 +uint8 BIG_OBJECTS = 4 +uint8 FALLEN_TREES = 5 +uint8 HUB_CAPS = 6 +uint8 WAITING_VEHICLES = 7 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationSurfaceConditionSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationSurfaceConditionSubCauseCode.msg new file mode 100644 index 000000000..f6571a866 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationSurfaceConditionSubCauseCode.msg @@ -0,0 +1,77 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER { +# unavailable (0), +# rockfalls (1), +# earthquakeDamage (2), +# sewerCollapse (3), +# subsidence (4), +# snowDrifts (5), +# stormDamage (6), +# burstPipe (7), +# volcanoEruption (8), +# fallingIce (9), +# fire (10) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`. +# * +#The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the road surface condition is unavailable, +# * - 1 - `rockfalls` - in case rock falls are detected on the road surface, +# * - 2 - `earthquakeDamage`- in case the road surface is damaged by earthquake, +# * - 3 - `sewerCollapse` - in case of sewer collapse on the road surface, +# * - 4 - `subsidence` - in case road surface is damaged by subsidence, +# * - 5 - `snowDrifts` - in case road surface is damaged due to snow drift, +# * - 6 - `stormDamage` - in case road surface is damaged by strong storm, +# * - 7 - `burstPipe` - in case road surface is damaged due to pipe burst, +# * - 8 - `volcanoEruption` - in case road surface is damaged due to volcano eruption, +# * - 9 - `fallingIce` - in case road surface damage is due to falling ice, +# * - 10 - `fire` - in case there is fire on or near to the road surface. +# * - 11-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 ROCKFALLS = 1 +uint8 EARTHQUAKE_DAMAGE = 2 +uint8 SEWER_COLLAPSE = 3 +uint8 SUBSIDENCE = 4 +uint8 SNOW_DRIFTS = 5 +uint8 STORM_DAMAGE = 6 +uint8 BURST_PIPE = 7 +uint8 VOLCANO_ERUPTION = 8 +uint8 FALLING_ICE = 9 +uint8 FIRE = 10 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Heading.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Heading.msg new file mode 100644 index 000000000..5748f1257 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Heading.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Heading ::= SEQUENCE { +# headingValue HeadingValue, +# headingConfidence HeadingConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the Heading in a WGS84 co-ordinates system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * It shall include the following components: +# * +# * @field headingValue: the heading value. +# * +# * @field headingConfidence: the confidence value of the heading value with a predefined confidence level. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84Angle instead. +# * @category: Kinematic Information +# * @revision: Description revised in V2.1.1 +# + +HeadingValue heading_value + +HeadingConfidence heading_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingChangeIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingChangeIndication.msg new file mode 100644 index 000000000..608bc5df0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingChangeIndication.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HeadingChangeIndication ::= SEQUENCE { +# direction TurningDirection, +# actionDeltaTime DeltaTimeTenthOfSecond, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides information associated to heading change indicators such as a change of direction. +# * +# * It shall include the following components: +# * +# * @field direction: the direction of heading change value. +# * +# * @field actionDeltaTime: the period over which a direction change action is performed. +# * +# * @category: Kinematic Information +# * @revision: created in V2.1.1 +# + +TurningDirection direction + +DeltaTimeTenthOfSecond action_delta_time + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingConfidence.msg new file mode 100644 index 000000000..ee7cc026b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingConfidence.msg @@ -0,0 +1,62 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HeadingConfidence ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# } (1..127) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the heading confidence value which represents the estimated absolute accuracy of a heading value with a confidence level of 95 %. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree, +# * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, +# * - `127` if the confidence value information is not available. +# * +# * @note: The fact that a value is received with confidence value set to `unavailable(127)` can be caused by several reasons, +# * such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the heading value may be valid and used by the application. +# * +# * @note: If a heading value is received and its confidence value is set to `outOfRange(126)`, it means that the +# * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application. +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleConfidence instead. +# * +# * @unit: 0,1 degree +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 127 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingValue.msg new file mode 100644 index 000000000..1269552bd --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingValue.msg @@ -0,0 +1,57 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HeadingValue ::= INTEGER { +# wgs84North (0), +# wgs84East (900), +# wgs84South (1800), +# wgs84West (2700), +# doNotUse (3600), +# unavailable (3601) +# } (0..3601) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north. +# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead. +# * +# * Unit: 0,1 degree +# * Categories: GeoReference information +# * @revision: Description revised in V2.1.1 (usage of value 3600 specified) +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 3601 +uint16 WGS84_NORTH = 0 +uint16 WGS84_EAST = 900 +uint16 WGS84_SOUTH = 1800 +uint16 WGS84_WEST = 2700 +uint16 DO_NOT_USE = 3600 +uint16 UNAVAILABLE = 3601 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeightLonCarr.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeightLonCarr.msg new file mode 100644 index 000000000..efaf69f53 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeightLonCarr.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HeightLonCarr ::= INTEGER { +# outOfRange(99), +# unavailable(100) +# } (1..100) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the height of the left or right longitude carrier of vehicle from base to top (left or right carrier seen from vehicle +# * rear to front). +# * +# * The value shall be set to: +# * - `n` (`n >= 1` and `n < 99`) if the height information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, +# * - `99` if the height is out of range, i.e. equal to or greater than 0,98 m, +# * - `100` if the height information is not available. +# * +# * @unit 0,01 metre +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 (the definition of 99 has changed slightly) +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 100 +uint8 OUT_OF_RANGE = 99 +uint8 UNAVAILABLE = 100 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HighFrequencyContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HighFrequencyContainer.msg new file mode 100644 index 000000000..6bb99d244 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HighFrequencyContainer.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HighFrequencyContainer ::= CHOICE { +# basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, +# rsuContainerHighFrequency RSUContainerHighFrequency, +# ... +# } +# ------------------------------------------------------------------------------ +# * +#* This type represents the high frequency container. +#* +#* It shall include the following components: +#* +#* @field basicVehicleContainerHighFrequency: The mandatory high frequency container of the CAM when the originating ITS-S is of the type vehicle ITS-S. +#* +#* @field rsuContainerHighFrequency: The mandatory high frequency container of CAM when the type of the originating ITS-S is RSU ITS-S. +# + +uint8 choice + +BasicVehicleContainerHighFrequency basic_vehicle_container_high_frequency +uint8 CHOICE_BASIC_VEHICLE_CONTAINER_HIGH_FREQUENCY = 0 + +RSUContainerHighFrequency rsu_container_high_frequency +uint8 CHOICE_RSU_CONTAINER_HIGH_FREQUENCY = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanPresenceOnTheRoadSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanPresenceOnTheRoadSubCauseCode.msg new file mode 100644 index 000000000..fec366474 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanPresenceOnTheRoadSubCauseCode.msg @@ -0,0 +1,110 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HumanPresenceOnTheRoadSubCauseCode ::= INTEGER { +# unavailable (0), +# childrenOnRoadway (1), +# cyclistOnRoadway (2), +# motorcyclistOnRoadway (3), +# pedestrian (4), +# ordinary-pedestrian (5), +# road-worker (6), +# first-responder (7), +# lightVruVehicle (8), +# bicyclist (9), +# wheelchair-user (10), +# horse-and-rider (11), +# rollerskater (12), +# e-scooter (13), +# personal-transporter (14), +# pedelec (15), +# speed-pedelec (16), +# ptw (17), +# moped (18), +# motorcycle (19), +# motorcycle-and-sidecar-right (20), +# motorcycle-and-sidecar-left (21) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information abou the human presence on the road is unavailable, +# * - 1 - `childrenOnRoadway` - in case children are present on the road, +# * - 2 - `cyclistOnRoadway` - in case cyclist(s) are present on the road, +# * - 3 - `motorcyclistOnRoadway` - in case motorcyclist(s) are present on the road, +# * - 4 - `pedestrian` - in case pedestrian(s) of any type are present on the road, +# * - 5 - `ordinary-pedestrian` - in case pedestrian(s) to which no more-specific profile applies are present on the road, +# * - 6 - `road-worker` - in case pedestrian(s) with the role of a road worker applies are present on the road, +# * - 7 - `first-responder` - in case pedestrian(s) with the role of a first responder applies are present on the road, +# * - 8 - `lightVruVehicle - in case light vru vehicle(s) of any type are present on the road, +# * - 9 - `bicyclist ` - in case cycle(s) and their bicyclist(s) are present on the road, +# * - 10 - `wheelchair-user` - in case wheelchair(s) and their user(s) are present on the road, +# * - 11 - `horse-and-rider` - in case horse(s) and rider(s) are present on the road, +# * - 12 - `rollerskater` - in case rolleskater(s) and skater(s) are present on the road, +# * - 13 - `e-scooter` - in case e-scooter(s) and rider(s) are present on the road, +# * - 14 - `personal-transporter` - in case personal-transporter(s) and rider(s) are present on the road, +# * - 15 - `pedelec` - in case pedelec(s) and rider(s) are present on the road, +# * - 16 - `speed-pedelec` - in case speed-pedelec(s) and rider(s) are present on the road, +# * - 17 - `ptw` - in case powered-two-wheeler(s) of any type are present on the road, +# * - 18 - `moped` - in case moped(s) and rider(s) are present on the road, +# * - 19 - `motorcycle` - in case motorcycle(s) and rider(s) are present on the road, +# * - 20 - `motorcycle-and-sidecar-right` - in case motorcycle(s) with sidecar(s) on the right and rider are present on the road, +# * - 21 - `motorcycle-and-sidecar-left` - in case motorcycle(s) with sidecar(s) on the left and rider are present on the road. +# * - 22-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: editorial revision in V2.1.1, named values 4-21 added in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 CHILDREN_ON_ROADWAY = 1 +uint8 CYCLIST_ON_ROADWAY = 2 +uint8 MOTORCYCLIST_ON_ROADWAY = 3 +uint8 PEDESTRIAN = 4 +uint8 ORDINARY_PEDESTRIAN = 5 +uint8 ROAD_WORKER = 6 +uint8 FIRST_RESPONDER = 7 +uint8 LIGHT_VRU_VEHICLE = 8 +uint8 BICYCLIST = 9 +uint8 WHEELCHAIR_USER = 10 +uint8 HORSE_AND_RIDER = 11 +uint8 ROLLERSKATER = 12 +uint8 E_SCOOTER = 13 +uint8 PERSONAL_TRANSPORTER = 14 +uint8 PEDELEC = 15 +uint8 SPEED_PEDELEC = 16 +uint8 PTW = 17 +uint8 MOPED = 18 +uint8 MOTORCYCLE = 19 +uint8 MOTORCYCLE_AND_SIDECAR_RIGHT = 20 +uint8 MOTORCYCLE_AND_SIDECAR_LEFT = 21 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanProblemSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanProblemSubCauseCode.msg new file mode 100644 index 000000000..48f1078aa --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanProblemSubCauseCode.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# HumanProblemSubCauseCode ::= INTEGER { +# unavailable (0), +# glycemiaProblem (1), +# heartProblem (2) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem". +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on human health problem is unavailable, +# * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem, +# * - 2 - `heartProblem` - in case human problem is due to heart problem. +# * - 3-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 GLYCEMIA_PROBLEM = 1 +uint8 HEART_PROBLEM = 2 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Identifier1B.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Identifier1B.msg new file mode 100644 index 000000000..59debf843 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Identifier1B.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Identifier1B ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE is a general identifier. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Identifier2B.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Identifier2B.msg new file mode 100644 index 000000000..01236d896 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Identifier2B.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Identifier2B ::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ +# * +# * This DE is a general identifier. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ImpassabilitySubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ImpassabilitySubCauseCode.msg new file mode 100644 index 000000000..3d5798bf6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ImpassabilitySubCauseCode.msg @@ -0,0 +1,98 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ImpassabilitySubCauseCode ::= INTEGER { +# unavailable (0), +# flooding (1), +# dangerOfAvalanches (2), +# blastingOfAvalanches (3), +# landslips (4), +# chemicalSpillage (5), +# winterClosure (6), +# sinkhole (7), +# earthquakeDamage (8), +# fallenTrees (9), +# rockfalls (10), +# sewerOverflow (11), +# stormDamage (12), +# subsidence (13), +# burstPipe (14), +# burstWaterMain (15), +# fallenPowerCables (16), +# snowDrifts (17) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `impassability` +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information about the unmanaged road blockage is unavailable, +# * - 1 `flooding ` - in case the road is affected by flooding, +# * - 2 `dangerOfAvalanches` - in case the road is at risk of being affected or blocked by avalanches, +# * - 3 `blastingOfAvalanches` - in case there is an active blasting of avalanches on or near the road, +# * - 4 `landslips` - in case the road is affected by landslips, +# * - 5 `chemicalSpillage` - in case the road is affected by chemical spillage, +# * - 6 `winterClosure` - in case the road is impassable due to a winter closure. +# * - 7 `sinkhole` - in case the road is impassable due to large holes in the road surface. +# * - 8 `earthquakeDamage` - in case the road is obstructed or partially obstructed because of damage caused by an earthquake. +# * - 9 `fallenTrees` - in case the road is obstructed or partially obstructed by one or more fallen trees. +# * - 10 `rockfalls` - in case the road is obstructed or partially obstructed due to fallen rocks. +# * - 11 `sewerOverflow` - in case the road is obstructed or partially obstructed by overflows from one or more sewers. +# * - 12 `stormDamage` - in case the road is obstructed or partially obstructed by debris caused by strong winds. +# * - 13 `subsidence` - in case the road surface has sunken or collapsed in places. +# * - 14 `burstPipe` - in case the road surface has sunken or collapsed in places due to burst pipes. +# * - 15 `burstWaterMain` - in case the road is obstructed due to local flooding and/or subsidence. +# * - 16 `fallenPowerCables` - in case the road is obstructed or partly obstructed by one or more fallen power cables. +# * - 17 `snowDrifts` - in case the road is obstructed or partially obstructed by snow drifting in progress or patches of deep snow due to earlier drifting. +# * - 15-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: Created in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 FLOODING = 1 +uint8 DANGER_OF_AVALANCHES = 2 +uint8 BLASTING_OF_AVALANCHES = 3 +uint8 LANDSLIPS = 4 +uint8 CHEMICAL_SPILLAGE = 5 +uint8 WINTER_CLOSURE = 6 +uint8 SINKHOLE = 7 +uint8 EARTHQUAKE_DAMAGE = 8 +uint8 FALLEN_TREES = 9 +uint8 ROCKFALLS = 10 +uint8 SEWER_OVERFLOW = 11 +uint8 STORM_DAMAGE = 12 +uint8 SUBSIDENCE = 13 +uint8 BURST_PIPE = 14 +uint8 BURST_WATER_MAIN = 15 +uint8 FALLEN_POWER_CABLES = 16 +uint8 SNOW_DRIFTS = 17 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InformationQuality.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InformationQuality.msg new file mode 100644 index 000000000..570a01f63 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InformationQuality.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# InformationQuality ::= INTEGER (0..7) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the quality level of provided information. +# * +# * The value shall be set to: +# * - `0` if the information is unavailable, +# * - `1` if the quality level is lowest, +# * - `n` (`n > 1` and `n < 7`) if the quality level is n, +# * - `7` if the quality level is highest. +# * +# * @note: Definition of quality level is out of scope of the present document. +# * @category: Basic information +# * @revision: Editorial update in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementChannel.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementChannel.msg new file mode 100644 index 000000000..22c7b520a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementChannel.msg @@ -0,0 +1,61 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# InterferenceManagementChannel ::= SEQUENCE { +# centreFrequency INTEGER (1 .. 99999), +# channelWidth INTEGER (0 .. 9999), +# exponent INTEGER (0 .. 15) +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a frequency channel +# * +# * It shall include the following components: +# * +# * @field centreFrequency: the centre frequency of the channel in 10^(exp+2) Hz (where exp is exponent) +# * +# * @field channelWidth: width of the channel in 10^exp Hz (where exp is exponent) +# * +# * @field exponent: exponent of the power of 10 used in the calculation of the components above. +# * +# * @category: Communication information +# * @revision: created in V2.1.1 +# + +uint32 centre_frequency +uint32 CENTRE_FREQUENCY_MIN = 1 +uint32 CENTRE_FREQUENCY_MAX = 99999 + +uint16 channel_width +uint16 CHANNEL_WIDTH_MIN = 0 +uint16 CHANNEL_WIDTH_MAX = 9999 + +uint8 exponent +uint8 EXPONENT_MIN = 0 +uint8 EXPONENT_MAX = 15 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementInfo.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementInfo.msg new file mode 100644 index 000000000..46595670f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementInfo.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of up to 16 definitions containing interference management information, per affected frequency channels. +# * +# * @category: Communication information. +# * @revision: created in V2.1.1 +# + +InterferenceManagementInfoPerChannel[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementInfoPerChannel.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementInfoPerChannel.msg new file mode 100644 index 000000000..bb4e57827 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementInfoPerChannel.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# InterferenceManagementInfoPerChannel ::= SEQUENCE { +# interferenceManagementChannel InterferenceManagementChannel, +# interferenceManagementZoneType InterferenceManagementZoneType, +# interferenceManagementMitigationType MitigationForTechnologies OPTIONAL, +# expiryTime TimestampIts OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF contains interference management information for one affected frequency channel. +# * +# * It shall include the following components: +# * +# * @field interferenceManagementChannel: frequency channel for which the zone should be applied interference management +# * +# * @field interferenceManagementZoneType: type of the interference management zone. +# * +# * @field interferenceManagementMitigationType: optional type of the mitigation to be used in the interference management zone. +# * In the case where no mitigation should be applied by the ITS-S, this is indicated by the field interferenceManagementMitigationType being absent. +# * +# * @field expiryTime: optional time at which the validity of the interference management communication zone will expire. +# * This component is present when the interference management is temporarily valid +# * +# * @category: Communication information +# * @revision: created in V2.1.1 +# + +InterferenceManagementChannel interference_management_channel + +InterferenceManagementZoneType interference_management_zone_type + +MitigationForTechnologies interference_management_mitigation_type +bool interference_management_mitigation_type_is_present + +TimestampIts expiry_time +bool expiry_time_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZone.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZone.msg new file mode 100644 index 000000000..3faf1dd02 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZone.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# InterferenceManagementZone ::= SEQUENCE { +# zoneDefinition InterferenceManagementZoneDefinition, +# managementInfo InterferenceManagementInfo +# } +# ------------------------------------------------------------------------------ +# * +# * +# * This DF represents a zone inside which the ITS communication should be restricted in order to manage interference. +# * +# * It shall include the following components: +# * +# * @field zoneDefinition: contains the geographical definition of the zone. +# * +# * @field managementInfo: contains interference management information applicable in the zone defined in the component zoneDefinition. +# * +# * @category: Communication information +# * @revision: created in V2.1.1 +# + +InterferenceManagementZoneDefinition zone_definition + +InterferenceManagementInfo management_info + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZoneDefinition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZoneDefinition.msg new file mode 100644 index 000000000..0edc2f8fc --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZoneDefinition.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# InterferenceManagementZoneDefinition::= SEQUENCE{ +# interferenceManagementZoneLatitude Latitude, +# interferenceManagementZoneLongitude Longitude, +# interferenceManagementZoneId ProtectedZoneId OPTIONAL, +# interferenceManagementZoneShape Shape +# (WITH COMPONENTS{..., radial ABSENT, radialShapes ABSENT}) OPTIONAL, +# ------------------------------------------------------------------------------ +# * +# * This DF represents the geographical definition of the zone where band sharing occurs. +# * +# * It shall include the following components: +# * +# * @field interferenceManagementZoneLatitude: Latitude of the centre point of the interference management zone. +# * +# * @field interferenceManagementZoneLongitude: Longitude of the centre point of the interference management zone. +# * +# * @field interferenceManagementZoneId: optional identification of the interference management zone. +# * +# * @field interferenceManagementZoneShape: shape of the interference management zone placed at the centre point. +# * +# * @category: Communication information +# * @revision: created in V2.1.1 +# + +Latitude interference_management_zone_latitude + +Longitude interference_management_zone_longitude + +ProtectedZoneId interference_management_zone_id +bool interference_management_zone_id_is_present + +Shape interference_management_zone_shape +bool interference_management_zone_shape_is_present +int64 INTERFERENCE_MANAGEMENT_ZONE_SHAPE_MIN = 0 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZoneType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZoneType.msg new file mode 100644 index 000000000..7cffca3d7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZoneType.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# InterferenceManagementZoneType ::= ENUMERATED { +# permanentCenDsrcTolling (0), +# temporaryCenDsrcTolling (1), +# unavailable (2), +# urbanRail (3), +# satelliteStation (4), +# fixedLinks (5), +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DE defines the type of an interference management zone, so that an ITS-S can +# * assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). +# * It is an extension of the type @ref ProtectedZoneType. +# * +# * The value shall be set to: +# * - 0 - `permanentCenDsrcTolling` - as specified in ETSI TS 102 792 [14], +# * - 1 - `temporaryCenDsrcTolling` - as specified in ETSI TS 102 792 [14], +# * - 2 - `unavailable` - default value. Set to 2 for backwards compatibility with DSRC tolling, +# * - 3 - `urbanRail` - as specified in ETSI TS 103 724 [13], clause 7, +# * - 4 - `satelliteStation` - as specified in ETSI TS 103 724 [13], clause 7, +# * - 5 - `fixedLinks` - as specified in ETSI TS 103 724 [13], clause 7. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 PERMANENT_CEN_DSRC_TOLLING = 0 +uint8 TEMPORARY_CEN_DSRC_TOLLING = 1 +uint8 UNAVAILABLE = 2 +uint8 URBAN_RAIL = 3 +uint8 SATELLITE_STATION = 4 +uint8 FIXED_LINKS = 5 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZones.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZones.msg new file mode 100644 index 000000000..484722613 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/InterferenceManagementZones.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of up to 16 interference management zones. +# * +# * **EXAMPLE**: An interference management communication zone may be defined around a CEN DSRC road side equipment or an urban rail operational area. +# * +# * @category: Communication information +# * @revision: created in V2.1.1 +# + +InterferenceManagementZone[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IntersectionReferenceId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IntersectionReferenceId.msg new file mode 100644 index 000000000..d11d5ad62 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IntersectionReferenceId.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionReferenceId ::= SEQUENCE { +# region Identifier2B OPTIONAL, +# id Identifier2B +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a unique id for an intersection, in accordance with ETSI TS 103 301 [15]. +# * +# * It shall include the following components: +# * +# * @field region: the optional identifier of the entity that is responsible for the region in which the intersection is placed. +# * It is the duty of that entity to guarantee that the @ref Id is unique within the region. +# * +# * @field id: the identifier of the intersection +# * +# * @note: when the component region is present, the IntersectionReferenceId is guaranteed to be globally unique. +# * @category: Road topology information +# * @revision: created in V2.1.1 +# + +Identifier2B region +bool region_is_present + +Identifier2B id + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Iso3833VehicleType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Iso3833VehicleType.msg new file mode 100644 index 000000000..149feeba5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Iso3833VehicleType.msg @@ -0,0 +1,168 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Iso3833VehicleType ::= INTEGER { +# passengerCar (0), +# saloon (1), +# convertibleSaloon (2), +# pullmanSaloon (3), +# stationWagon (4), +# truckStationWagon (5), +# coupe (6), +# convertible (7), +# multipurposePassengerCar (8), +# forwardControlPassengerCar (9), +# specialPassengerCar (10), +# bus (11), +# minibus (12), +# urbanBus (13), +# interurbanCoach (14), +# longDistanceCoach (15), +# articulatedBus (16), +# trolleyBus (17), +# specialBus (18), +# commercialVehicle (19), +# specialCommercialVehicle (20), +# specialVehicle (21), +# trailingTowingVehicle (22), +# semiTrailerTowingVehicle (23), +# trailer (24), +# busTrailer (25), +# generalPurposeTrailer (26), +# caravan (27), +# specialTrailer (28), +# semiTrailer (29), +# busSemiTrailer (30), +# generalPurposeSemiTrailer (31), +# specialSemiTrailer (32), +# roadTrain (33), +# passengerRoadTrain (34), +# articulatedRoadTrain (35), +# doubleRoadTrain (36), +# compositeRoadTrain (37), +# specialRoadTrain (38), +# moped (39), +# motorCycle (40) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the vehicle type according to ISO 3833 [22]. +# * A "term No" refers to the number of the corresponding term and its definition in ISO 3833. +# * +# * The value shall be set to: +# * - 0 - `passengerCar` - term No 3.1.1 +# * - 1 - `saloon` - term No 3.1.1.1 (sedan) +# * - 2 - `convertibleSaloon` - term No 3.1.1.2 +# * - 3 - `pullmanSaloon` - term No 3.1.1.3 +# * - 4 - `stationWagon` - term No 3.1.1.4 +# * - 5 - `truckStationWagon` - term No 3.1.1.4.1 +# * - 6 - `coupe` - term No 3.1.1.5 (coupe) +# * - 7 - `convertible` - term No 3.1.1.6 (open tourer, roadstar, spider) +# * - 8 - `multipurposePassengerCar` - term No 3.1.1.7 +# * - 9 - `forwardControlPassengerCar`- term No 3.1.1.8 +# * - 10 - `specialPassengerCar` - term No 3.1.1.9 +# * - 11 - `bus` - term No 3.1.2 +# * - 12 - `minibus` - term No 3.1.2.1 +# * - 13 - `urbanBus` - term No 3.1.2.2 +# * - 14 - `interurbanCoach` - term No 3.1.2.3 +# * - 15 - `longDistanceCoach` - term No 3.1.2.4 +# * - 16 - `articulatedBus` - term No 3.1.2.5 +# * - 17 - `trolleyBus ` - term No 3.1.2.6 +# * - 18 - `specialBus` - term No 3.1.2.7 +# * - 19 - `commercialVehicle` - term No 3.1.3 +# * - 20 - `specialCommercialVehicle` - term No 3.1.3.1 +# * - 21 - `specialVehicle` - term No 3.1.4 +# * - 22 - `trailingTowingVehicle` - term No 3.1.5 (draw-bar tractor) +# * - 23 - `semiTrailerTowingVehicle` - term No 3.1.6 (fifth wheel tractor) +# * - 24 - `trailer` - term No 3.2.1 +# * - 25 - `busTrailer` - term No 3.2.1.1 +# * - 26 - `generalPurposeTrailer` - term No 3.2.1.2 +# * - 27 - `caravan` - term No 3.2.1.3 +# * - 28 - `specialTrailer` - term No 3.2.1.4 +# * - 29 - `semiTrailer` - term No 3.2.2 +# * - 30 - `busSemiTrailer` - term No 3.2.2.1 +# * - 31 - `generalPurposeSemiTrailer` - term No 3.2.2.2 +# * - 32 - `specialSemiTrailer` - term No 3.2.2.3 +# * - 33 - `roadTrain` - term No 3.3.1 +# * - 34 - `passengerRoadTrain` - term No 3.3.2 +# * - 35 - `articulatedRoadTrain` - term No 3.3.3 +# * - 36 - `doubleRoadTrain` - term No 3.3.4 +# * - 37 - `compositeRoadTrain` - term No 3.3.5 +# * - 38 - `specialRoadTrain` - term No 3.3.6 +# * - 39 - `moped` - term No 3.4 +# * - 40 - `motorCycle` - term No 3.5 +# * - 41-255 - reserved for future use +# * +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 PASSENGER_CAR = 0 +uint8 SALOON = 1 +uint8 CONVERTIBLE_SALOON = 2 +uint8 PULLMAN_SALOON = 3 +uint8 STATION_WAGON = 4 +uint8 TRUCK_STATION_WAGON = 5 +uint8 COUPE = 6 +uint8 CONVERTIBLE = 7 +uint8 MULTIPURPOSE_PASSENGER_CAR = 8 +uint8 FORWARD_CONTROL_PASSENGER_CAR = 9 +uint8 SPECIAL_PASSENGER_CAR = 10 +uint8 BUS = 11 +uint8 MINIBUS = 12 +uint8 URBAN_BUS = 13 +uint8 INTERURBAN_COACH = 14 +uint8 LONG_DISTANCE_COACH = 15 +uint8 ARTICULATED_BUS = 16 +uint8 TROLLEY_BUS = 17 +uint8 SPECIAL_BUS = 18 +uint8 COMMERCIAL_VEHICLE = 19 +uint8 SPECIAL_COMMERCIAL_VEHICLE = 20 +uint8 SPECIAL_VEHICLE = 21 +uint8 TRAILING_TOWING_VEHICLE = 22 +uint8 SEMI_TRAILER_TOWING_VEHICLE = 23 +uint8 TRAILER = 24 +uint8 BUS_TRAILER = 25 +uint8 GENERAL_PURPOSE_TRAILER = 26 +uint8 CARAVAN = 27 +uint8 SPECIAL_TRAILER = 28 +uint8 SEMI_TRAILER = 29 +uint8 BUS_SEMI_TRAILER = 30 +uint8 GENERAL_PURPOSE_SEMI_TRAILER = 31 +uint8 SPECIAL_SEMI_TRAILER = 32 +uint8 ROAD_TRAIN = 33 +uint8 PASSENGER_ROAD_TRAIN = 34 +uint8 ARTICULATED_ROAD_TRAIN = 35 +uint8 DOUBLE_ROAD_TRAIN = 36 +uint8 COMPOSITE_ROAD_TRAIN = 37 +uint8 SPECIAL_ROAD_TRAIN = 38 +uint8 MOPED = 39 +uint8 MOTOR_CYCLE = 40 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IssuerIdentifier.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IssuerIdentifier.msg new file mode 100644 index 000000000..63d37b948 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IssuerIdentifier.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IssuerIdentifier ::= INTEGER(0 .. 16383) +# ------------------------------------------------------------------------------ +# * +# * This DE represent the identifier of an organization according to the applicable registry. +# * +# * @category: Basic information +# * @revision: Created in V2.2.1 based on ISO 14816 [23] +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 16383 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItineraryPath.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItineraryPath.msg new file mode 100644 index 000000000..77e6e56d7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItineraryPath.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of waypoints @ref ReferencePosition. +# * +# * @category: GeoReference information +# * @revision: Editorial update in V2.1.1 +# + +ReferencePosition[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 40 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItsPduHeader.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItsPduHeader.msg new file mode 100644 index 000000000..207a10e1e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItsPduHeader.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ItsPduHeader ::= SEQUENCE { +# protocolVersion OrdinalNumber1B, +# messageId MessageId, +# stationId StationId +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a common message header for application and facilities layer messages. +# * It is included at the beginning of an ITS message as the message header. +# * +# * It shall include the following components: +# * +# * @field protocolVersion: version of the ITS message. +# * +# * @field messageId: type of the ITS message. +# * +# * @field stationId: the identifier of the ITS-S that generated the ITS message. +# * +# * @category: Communication information +# * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId. +# + +OrdinalNumber1B protocol_version + +MessageId message_id + +StationId station_id + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IviIdentificationNumber.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IviIdentificationNumber.msg new file mode 100644 index 000000000..3f4b5fe6a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IviIdentificationNumber.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IviIdentificationNumber::= INTEGER(1..32767,..., 8388607) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the identifier of the IVIM. +# * +# * @category: Basic information +# * @revision: Created in V2.2.1 based on ETSI TS 103 301 [15] +# + +int64 value +int64 MIN = 1 +int64 MAX = 32767 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IvimReference.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IvimReference.msg new file mode 100644 index 000000000..352aebb32 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IvimReference.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IvimReference::= SEQUENCE { +# serviceProviderId Provider, +# iviIdentificationNumber IviIdentificationNumber +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides the reference to the information contained in a IVIM according to ETSI TS 103 301 [15]. +# * +# * It shall include the following components: +# * +# * @field serviceProviderId: identifier of the organization that provided the IVIM. +# * +# * @field iviIdentificationNumber: identifier of the IVIM, as assigned by the organization identified in serviceProviderId. +# * +# * @category: Communication information +# * @revision: Created in V2.2.1 +# + +Provider service_provider_id + +IviIdentificationNumber ivi_identification_number + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IvimReferences.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IvimReferences.msg new file mode 100644 index 000000000..40b49f4c3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/IvimReferences.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IvimReferences::= SEQUENCE (SIZE(1..8,...)) OF IvimReference +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of @ref IvimReference. +# * +# * @category: Communication information +# * @revision: Created in V2.2.1 +# + +IvimReference[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePosition.msg new file mode 100644 index 000000000..86ae5c0b3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePosition.msg @@ -0,0 +1,71 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LanePosition ::= INTEGER { +# offTheRoad (-1), +# innerHardShoulder (0), +# outerHardShoulder (14) +# } (-1..14) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. +# * +# * For right-hand traffic roads, the value shall be set to: +# * - `-1` if the position is off, i.e. besides the road, +# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane, +# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction, +# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present). +# * +# * For left-hand traffic roads, the value shall be set to: +# * - `-1` if the position is off, i.e. besides the road, +# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane, +# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction, +# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present). +# * +# * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used. +# * +# * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. +# * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), +# * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). +# * +# * If not indicated otherwise (by lane markings or traffic signs), the legal separation on carriageways allowing traffic on both directions is identified as follows: +# * - If the total number of lanes N is even, the lanes are divided evenly between the traffic directions starting from the outside of the carriageway on both sides and the +# * imaginary separation between traffic directions is on the border between the even number of lanes N/2. +# * - If the total number of lanes N is odd, the lanes are divided evenly between traffic direction starting from the outside of the carriageway on both sides. +# * The remaining middle lane is assigned to both traffic directions as innermost lane. +# * +# * @category: Road topology information +# * @revision: Description of the legal separation of carriageways added in V2.2.1 +# + +int8 value +int8 MIN = -1 +int8 MAX = 14 +int8 OFF_THE_ROAD = -1 +int8 INNER_HARD_SHOULDER = 0 +int8 OUTER_HARD_SHOULDER = 14 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionAndType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionAndType.msg new file mode 100644 index 000000000..62200cefe --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionAndType.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LanePositionAndType::= SEQUENCE { +# transversalPosition LanePosition, +# laneType LaneType DEFAULT traffic, +# direction Direction DEFAULT sameDirection, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates a transversal position in resolution of lanes and other associated details. +# * +# * It shall include the following components: +# * +# * @field transversalPosition: the transversal position. +# * +# * @field laneType: the type of the lane identified in the component transversalPosition. By default set to `traffic`. +# * +# * @field direction: the traffic direction for the lane position relative to a defined reference direction. By default set to `sameDirection`, i.e. following the reference direction. +# * +# * @category Road topology information +# * @revision: direction added in V2.2.1 +# + +LanePosition transversal_position + +LaneType lane_type + +Direction direction + + +uint8 LANE_TYPE_DEFAULT = 0 +uint8 DIRECTION_DEFAULT = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionOptions.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionOptions.msg new file mode 100644 index 000000000..cc10860a0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionOptions.msg @@ -0,0 +1,75 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LanePositionOptions ::= CHOICE { +# simplelanePosition LanePosition, +# simpleLaneType LaneType, +# detailedlanePosition LanePositionAndType, +# lanePositionWithLateralDetails LanePositionWithLateralDetails, +# trafficIslandPosition TrafficIslandPosition, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a set of options to describe a lane position and is the second level DF to represent a lane position. The top-level DFs are @ref GeneralizedLanePosition or @ref OccupiedLanesWithConfidence. +# * A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. +# * +# * The following options are available: +# * +# * @field simplelanePosition: a single lane position without any additional context information. +# * +# * @field simpleLaneType: a lane type, to be used when the lane position is unknown but the type of lane is known. This can be used in scenarios where a certain confidence about the used lane type is given +# * but no or limited knowledge about the absolute lane number is available. For example, a cyclist on a cycle-lane or vehicles on a specific lane that is unique for the part of the road (e.g. a bus lane). +# * +# * @field detailedlanePosition: a single lane position with additional lane details. +# * +# * @field lanePositionWithLateralDetails: a single lane position with additional details and the lateral position within the lane. +# * +# * @field trafficIslandPosition: a position on a traffic island, i.e. between two lanes. +# * +# * @category: Road Topology information +# * @revision: Created in V2.2.1 from the DF GeneralizedLanePosition of V2.1.1. +# + +uint8 choice + +LanePosition simplelane_position +uint8 CHOICE_SIMPLELANE_POSITION = 0 + +LaneType simple_lane_type +uint8 CHOICE_SIMPLE_LANE_TYPE = 1 + +LanePositionAndType detailedlane_position +uint8 CHOICE_DETAILEDLANE_POSITION = 2 + +LanePositionWithLateralDetails lane_position_with_lateral_details +uint8 CHOICE_LANE_POSITION_WITH_LATERAL_DETAILS = 3 + +TrafficIslandPosition traffic_island_position +uint8 CHOICE_TRAFFIC_ISLAND_POSITION = 4 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionWithLateralDetails.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionWithLateralDetails.msg new file mode 100644 index 000000000..8d7d52234 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePositionWithLateralDetails.msg @@ -0,0 +1,61 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LanePositionWithLateralDetails ::= SEQUENCE { +# COMPONENTS OF LanePositionAndType, +# distanceToLeftBorder StandardLength9b, +# distanceToRightBorder StandardLength9b, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF is a third-level DF that represents a lane position and is an extended version of @ref LanePositionAndType that adds the distances to the left and right lane border. +# * +# * It shall additionally include the following components: +# * +# * @field distanceToLeftBorder: the distance of the transversal position to the left lane border. The real value shall be rounded to the next lower encoding-value. +# * +# * @field distanceToRightBorder: the distance of the transversal position to the right lane border. The real value shall be rounded to the next lower encoding-value. +# * +# * @category: Road Topology information +# * @revision: Created in V2.2.1 +# + +StandardLength9b distance_to_left_border + +StandardLength9b distance_to_right_border + +LanePosition transversal_position + +LaneType lane_type + +Direction direction + + +uint8 LANE_TYPE_DEFAULT = 0 +uint8 DIRECTION_DEFAULT = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LaneType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LaneType.msg new file mode 100644 index 000000000..2c23dbfd9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LaneType.msg @@ -0,0 +1,114 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneType::= INTEGER{ +# traffic (0), +# through (1), +# reversible (2), +# acceleration (3), +# deceleration (4), +# leftHandTurning (5), +# rightHandTurning (6), +# dedicatedVehicle (7), +# bus (8), +# taxi (9), +# hov (10), +# hot (11), +# pedestrian (12), +# cycleLane (13), +# median (14), +# striping (15), +# trackedVehicle (16), +# parking (17), +# emergency (18), +# verge (19), +# minimumRiskManoeuvre (20), +# exclusiveCycleLane (21), +# unknown (31) +# }(0..31) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the type of a lane. +# * +# * The value shall be set to: +# * - 0 - `traffic` - Lane dedicated to the movement of vehicles, +# * - 1 - `through` - Lane dedicated to the movement of vehicles travelling ahead and not turning, +# * - 2 - `reversible` - Lane where the direction of traffic can be changed to match the peak flow, +# * - 3 - `acceleration` - Lane that allows vehicles entering a road to accelerate to the speed of through traffic before merging with it, +# * - 4 - `deceleration` - Lane that allows vehicles exiting a road to decelerate before leaving it, +# * - 5 - `leftHandTurning` - Lane reserved for slowing down and making a left turn, so as not to disrupt traffic, +# * - 6 - `rightHandTurning` - Lane reserved for slowing down and making a right turn so as not to disrupt traffic, +# * - 7 - `dedicatedVehicle` - Lane dedicated to movement of motor vehicles with specific characteristics, such as heavy goods vehicles, etc., +# * - 8 - `bus` - Lane dedicated to movement of buses providing public transport, +# * - 9 - `taxi` - Lane dedicated to movement of taxis, +# * - 10 - `hov` - Carpooling lane or high occupancy vehicle lane, +# * - 11 - `hot` - High occupancy vehicle lanes that is allowed to be used without meeting the occupancy criteria by paying a toll, +# * - 12 - `pedestrian` - Lanes dedicated to pedestrians such as pedestrian sidewalk paths, +# * - 13 - `cycleLane` - Lane dedicated to exclusive or preferred use by bicycles, +# * - 14 - `median` - Lane not dedicated to movement of vehicles but representing a median / central reservation such as the central median, +# separating the two directional carriageways of the highway, +# * - 15 - `striping` - Lane not dedicated to movement of vehicles but covered with roadway markings, +# * - 16 - `trackedVehicle` - Lane dedicated to movement of trains, trams and trolleys, +# * - 17 - `parking` - Lanes dedicated to vehicles parking, stopping and loading lanes, +# * - 18 - `emergency` - Lane dedicated to vehicles in breakdown or to emergency vehicles also called hard shoulder, +# * - 19 - `verge` - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between +# the road surface edge and the boundary of a road, +# * - 20 `minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre, +# * - 21 `separatedCycleLane` - Lane dedicated to exclusive or preferred use by bicycles that is phyisically separated from the vehicle-traffic lanes, e.g. by a verge. +# * - values 22 to 30 reserved for future use. +# * +# * @category: Road topology information +# * @revision: Created in V2.1.1, named value 21 added in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 31 +uint8 TRAFFIC = 0 +uint8 THROUGH = 1 +uint8 REVERSIBLE = 2 +uint8 ACCELERATION = 3 +uint8 DECELERATION = 4 +uint8 LEFT_HAND_TURNING = 5 +uint8 RIGHT_HAND_TURNING = 6 +uint8 DEDICATED_VEHICLE = 7 +uint8 BUS = 8 +uint8 TAXI = 9 +uint8 HOV = 10 +uint8 HOT = 11 +uint8 PEDESTRIAN = 12 +uint8 CYCLE_LANE = 13 +uint8 MEDIAN = 14 +uint8 STRIPING = 15 +uint8 TRACKED_VEHICLE = 16 +uint8 PARKING = 17 +uint8 EMERGENCY = 18 +uint8 VERGE = 19 +uint8 MINIMUM_RISK_MANOEUVRE = 20 +uint8 EXCLUSIVE_CYCLE_LANE = 21 +uint8 UNKNOWN = 31 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LaneWidth.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LaneWidth.msg new file mode 100644 index 000000000..cd71e3e98 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LaneWidth.msg @@ -0,0 +1,49 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneWidth::= INTEGER (0..1023) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the width of a lane measured at a defined position. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 1022`) if the lane width information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, +# * - `1022` if the lane width is out of range, i.e. greater than 10,21 m, +# * - `1023` if the lane width information is not available. +# * +# * The value 0 shall not be used. +# * +# * @unit: 0,01 metre +# * @category: Road topology information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 1023 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LateralAcceleration.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LateralAcceleration.msg new file mode 100644 index 000000000..322e647be --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LateralAcceleration.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LateralAcceleration ::= SEQUENCE { +# lateralAccelerationValue LateralAccelerationValue, +# lateralAccelerationConfidence AccelerationConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates the vehicle acceleration at lateral direction and the confidence value of the lateral acceleration. +# * +# * It shall include the following components: +# * +# * @field lateralAccelerationValue: lateral acceleration value at a point in time. +# * +# * @field lateralAccelerationConfidence: confidence value of the lateral acceleration value. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# + +LateralAccelerationValue lateral_acceleration_value + +AccelerationConfidence lateral_acceleration_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LateralAccelerationValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LateralAccelerationValue.msg new file mode 100644 index 000000000..6acc843bb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LateralAccelerationValue.msg @@ -0,0 +1,61 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LateralAccelerationValue ::= INTEGER { +# negativeOutOfRange (-160), +# positiveOutOfRange (160), +# unavailable (161) +# } (-160 .. 161) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle. +# * It corresponds to the vehicle coordinate system as specified in ISO 8855 [21]. +# * +# * The value shall be set to: +# * - `-160` for acceleration values equal to or less than -16 m/s^2, +# * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation +# * with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, +# * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation +# with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * @note: the empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. +# * +# * @unit: 0,1 m/s^2 +# * @category: Vehicle information +# * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly). +# + +int16 value +int16 MIN = -160 +int16 MAX = 161 +int16 NEGATIVE_OUT_OF_RANGE = -160 +int16 POSITIVE_OUT_OF_RANGE = 160 +int16 UNAVAILABLE = 161 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Latitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Latitude.msg new file mode 100644 index 000000000..ed06fe8bc --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Latitude.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Latitude ::= INTEGER { +# unavailable(900000001) +# } (-900000000..900000001) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or +# * in south hemisphere. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator, +# * - `0` is used for the latitude of the equator, +# * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator, +# * - `900 000 001` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: Editorial update in V2.1.1 +# + +int32 value +int32 MIN = -900000000 +int32 MAX = 900000001 +int32 UNAVAILABLE = 900000001 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LightBarSirenInUse.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LightBarSirenInUse.msg new file mode 100644 index 000000000..715179897 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LightBarSirenInUse.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LightBarSirenInUse ::= BIT STRING { +# lightBarActivated (0), +# sirenActivated (1) +# } (SIZE(2)) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the status of light bar and any sort of audible alarm system besides the horn. +# * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `lightBarActivated` - when the light bar is activated, +# * - 1 - `sirenActivated` - when the siren is activated. +# * +# * Otherwise, it shall be set to 0. +# * +# * @category Vehicle information +# * @revision: Editorial update in V2.1.1 +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 2 +uint8 BIT_INDEX_LIGHT_BAR_ACTIVATED = 0 +uint8 BIT_INDEX_SIREN_ACTIVATED = 1 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Longitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Longitude.msg new file mode 100644 index 000000000..260a21905 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Longitude.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Longitude ::= INTEGER { +# valueNotUsed (-1800000000), +# unavailable (1800000001) +# } (-1800000000..1800000001) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees +# * to the east or to the west of the prime meridian. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west, +# * - `0` to indicate the prime meridian, +# * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east, +# * - `1 800 000 001` when the information is unavailable. +# * +# * The value -1 800 000 000 shall not be used. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# + +int32 value +int32 MIN = -1800000000 +int32 MAX = 1800000001 +int32 VALUE_NOT_USED = -1800000000 +int32 UNAVAILABLE = 1800000001 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalAcceleration.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalAcceleration.msg new file mode 100644 index 000000000..846d2ebbd --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalAcceleration.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LongitudinalAcceleration ::= SEQUENCE { +# longitudinalAccelerationValue LongitudinalAccelerationValue, +# longitudinalAccelerationConfidence AccelerationConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates the vehicle acceleration at longitudinal direction and the confidence value of the longitudinal acceleration. +# * +# * It shall include the following components: +# * +# * @field longitudinalAccelerationValue: longitudinal acceleration value at a point in time. +# +# * @field longitudinalAccelerationConfidence: confidence value of the longitudinal acceleration value. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +LongitudinalAccelerationValue longitudinal_acceleration_value + +AccelerationConfidence longitudinal_acceleration_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalAccelerationValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalAccelerationValue.msg new file mode 100644 index 000000000..3d1992914 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalAccelerationValue.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LongitudinalAccelerationValue::= INTEGER { +# negativeOutOfRange (-160), +# positiveOutOfRange (160), +# unavailable (161) +# } (-160 .. 161) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle. +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-160` for acceleration values equal to or less than -16 m/s^2, +# * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is braking with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2 +# * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * This acceleration is along the tangent plane of the road surface and does not include gravity components. +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * @unit: 0,1 m/s^2 +# * @category: Vehicle information +# * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). T +# + +int16 value +int16 MIN = -160 +int16 MAX = 161 +int16 NEGATIVE_OUT_OF_RANGE = -160 +int16 POSITIVE_OUT_OF_RANGE = 160 +int16 UNAVAILABLE = 161 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePosition.msg new file mode 100644 index 000000000..6ba25cd36 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePosition.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LongitudinalLanePosition ::= SEQUENCE { +# longitudinalLanePositionValue LongitudinalLanePositionValue, +# longitudinalLanePositionConfidence LongitudinalLanePositionConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the estimated position along the longitudinal extension of a carriageway or lane. +# * +# * It shall include the following components: +# * +# * @field longitudinalLanePositionValue: the mean value of the longitudinal position along the carriageway or lane w.r.t. an externally defined start position. +# * +# * @field longitudinalLanePositionConfidence: The confidence value associated to the value. +# * +# * @category: Road topology information +# * @revision: created in V2.1.1, description revised in V2.2.1 +# + +LongitudinalLanePositionValue longitudinal_lane_position_value + +LongitudinalLanePositionConfidence longitudinal_lane_position_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePositionConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePositionConfidence.msg new file mode 100644 index 000000000..de81be18f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePositionConfidence.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LongitudinalLanePositionConfidence ::= INTEGER { +# outOfRange (1022), +# unavailable (1023) +# } (0..1023) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the longitudinal lane position confidence value which represents the estimated accuracy of longitudinal lane position measurement with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 1 022`) if the confidence value is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m, +# * - `1 022` if the confidence value is out of range i.e. greater than 102,1 m, +# * - `1 023` if the confidence value is unavailable. +# * +# * @unit 0,1 metre +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 1023 +uint16 OUT_OF_RANGE = 1022 +uint16 UNAVAILABLE = 1023 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePositionValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePositionValue.msg new file mode 100644 index 000000000..6f86cf3f2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LongitudinalLanePositionValue.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LongitudinalLanePositionValue ::= INTEGER { +# outOfRange(32766), +# unavailable(32767) +# }(0..32767) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the longitudinal offset of a map-matched position along a matched lane, beginning from the lane's starting point. +# * +# * The value shall be set to: +# * - `n` (`n >= 0` and `n < 32766`) if the longitudinal offset information is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre, +# * - `32 766` if the longitudinal offset is out of range, i.e. greater than 3276,5 m, +# * - `32 767` if the longitudinal offset information is not available. +# * +# * @unit 0,1 metre +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 32767 +uint16 OUT_OF_RANGE = 32766 +uint16 UNAVAILABLE = 32767 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowFrequencyContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowFrequencyContainer.msg new file mode 100644 index 000000000..7b1f23721 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowFrequencyContainer.msg @@ -0,0 +1,44 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LowFrequencyContainer ::= CHOICE { +# basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency (WITH COMPONENTS {..., pathHistory (SIZE (0..23))}), +# ------------------------------------------------------------------------------ +# * +#* This type represents the low frequency container. +#* +#* It shall include the following components: +#* +#* The low frequency container of the CAM when the originating ITS-S is of the type vehicle ITS-S. It shall be present as defined in clause 6.1.2. +# + +uint8 choice + +BasicVehicleContainerLowFrequency basic_vehicle_container_low_frequency +uint8 CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY = 0 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrices.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrices.msg new file mode 100644 index 000000000..47b763361 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrices.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LowerTriangularPositiveSemidefiniteMatrices::= SEQUENCE SIZE (1..4) OF LowerTriangularPositiveSemidefiniteMatrix +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of a lower triangular positive semi-definite matrices. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +LowerTriangularPositiveSemidefiniteMatrix[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 4 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrix.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrix.msg new file mode 100644 index 000000000..0e1d2e1bc --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrix.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LowerTriangularPositiveSemidefiniteMatrix ::= SEQUENCE{ +# componentsIncludedIntheMatrix MatrixIncludedComponents, +# matrix LowerTriangularPositiveSemidefiniteMatrixColumns +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a lower triangular positive semi-definite matrix. +# * +# * It shall include the following components: +# * +# * @field componentsIncludedIntheMatrix: the indication of which components of a @ref PerceivedObject are included in the matrix. +# * This component also implicitly indicates the number n of included components which defines the size (n x n) of the full correlation matrix "A". +# * +# * @field matrix: the list of cells of the lower triangular positive semi-definite matrix ordered by columns and by rows. +# * +# * The number of columns to be included "k" is equal to the number of included components "n" indicated by componentsIncludedIntheMatrix minus 1: k = n-1. +# * These components shall be included in the order or their appearance in componentsIncludedIntheMatrix. +# * Each column "i" of the lowerTriangularCorrelationMatrixColumns contains k-(i-1) values. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +MatrixIncludedComponents components_included_inthe_matrix + +LowerTriangularPositiveSemidefiniteMatrixColumns matrix + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrixColumns.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrixColumns.msg new file mode 100644 index 000000000..85a3f234e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowerTriangularPositiveSemidefiniteMatrixColumns.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LowerTriangularPositiveSemidefiniteMatrixColumns ::= SEQUENCE SIZE (1..13,...) OF CorrelationColumn +# ------------------------------------------------------------------------------ +# * +# * This DF represents the columns of a lower triangular positive semi-definite matrix, each column not including the main diagonal cell of the matrix. +# * Given a matrix "A" of size n x n, the number of @ref CorrelationColumn to be included in the lower triangular matrix is k=n-1. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1, extension indicator added in V2.2.1 +# + +CorrelationColumn[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 13 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapPosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapPosition.msg new file mode 100644 index 000000000..86ad32ddd --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapPosition.msg @@ -0,0 +1,67 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MapPosition ::= SEQUENCE { +# mapReference MapReference OPTIONAL, +# laneId Identifier1B OPTIONAL, +# connectionId Identifier1B OPTIONAL, +# longitudinalLanePosition LongitudinalLanePosition OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates a position on a topology description transmitted in a MAPEM according to ETSI TS 103 301 [15]. +# * +# * It shall include the following components: +# * +# * @field mapReference: optionally identifies the MAPEM containing the topology information. +# * It is absent if the MAPEM topology is known from the context. +# * +# * @field laneId: optionally identifies the lane in the road segment or intersection topology on which the position is located. +# * +# * @field connectionId: optionally identifies the connection inside the conflict area of an intersection, i.e. it identifies a trajectory for travelling through the +# * conflict area of an intersection which connects e.g an ingress with an egress lane. +# * +# * @field longitudinalLanePosition: optionally indicates the longitudinal offset of the map-matched position of the object along the lane or connection measured from the start of the lane/connection, along the lane. +# * +# * @category: Road topology information +# * @revision: Created in V2.1.1, definition of longitudinalLanePosition amended in V2.2.1 +# + +MapReference map_reference +bool map_reference_is_present + +Identifier1B lane_id +bool lane_id_is_present + +Identifier1B connection_id +bool connection_id_is_present + +LongitudinalLanePosition longitudinal_lane_position +bool longitudinal_lane_position_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapReference.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapReference.msg new file mode 100644 index 000000000..63b67cb76 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapReference.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MapReference::= CHOICE { +# roadsegment RoadSegmentReferenceId, +# intersection IntersectionReferenceId +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides the reference to the information contained in a MAPEM according to ETSI TS 103 301 [15]. +# * +# * The following options are provided: +# * +# * @field roadsegment: option that identifies the description of a road segment contained in a MAPEM. +# * +# * @field intersection: option that identifies the description of an intersection contained in a MAPEM. +# * +# * @category: Road topology information +# * @revision: Created in V2.1.1 +# + +uint8 choice + +RoadSegmentReferenceId roadsegment +uint8 CHOICE_ROADSEGMENT = 0 + +IntersectionReferenceId intersection +uint8 CHOICE_INTERSECTION = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapReferences.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapReferences.msg new file mode 100644 index 000000000..988c3979e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapReferences.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MapReferences::= SEQUENCE (SIZE(1..8,...)) OF MapReference +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of @ref MapReference. +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +MapReference[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemConfiguration.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemConfiguration.msg new file mode 100644 index 000000000..9d19d4eae --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemConfiguration.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MapemConfiguration::= SEQUENCE(SIZE(1..16,...)) OF MapemElementReference +# ------------------------------------------------------------------------------ +# * +# * This DF provides information about the configuration of a road section in terms of MAPEM lanes or connections using a list of @ref MapemExtractedElementReference. +# +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +MapemElementReference[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemConnectionList.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemConnectionList.msg new file mode 100644 index 000000000..fc0044b7c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemConnectionList.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MapemConnectionList ::= SEQUENCE (SIZE(1..8,...)) OF Identifier1B +# ------------------------------------------------------------------------------ +# * +# * This DF provides references to MAPEM connections using a list of @ref Identifier1B. +# * Note: connections are allowed �maneuvers� (e.g. an ingress / egress relation) on an intersection. +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +Identifier1B[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemElementReference.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemElementReference.msg new file mode 100644 index 000000000..38ae5033b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemElementReference.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MapemElementReference::= SEQUENCE { +# mapReference MapReference OPTIONAL, +# laneIds MapemLaneList OPTIONAL, +# connectionIds MapemConnectionList OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides references to an element described in a MAPEM according to ETSI TS 103 301 [i.15], such as a lane or connection at a specific intersection or road segment. +# * +# * It shall include the following components: +# * +# * @field mapReference: the optional reference to a MAPEM that describes the intersection or road segment. It is absent if the MAPEM topology is known from the context. +# * +# * @field laneIds: the optional list of the identifiers of the lanes to be referenced. +# * +# * @field connectionIds: the optional list of the identifiers of the connections to be referenced. +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +MapReference map_reference +bool map_reference_is_present + +MapemLaneList lane_ids +bool lane_ids_is_present + +MapemConnectionList connection_ids +bool connection_ids_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemLaneList.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemLaneList.msg new file mode 100644 index 000000000..4999266bd --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MapemLaneList.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MapemLaneList ::= SEQUENCE (SIZE(1..8,...)) OF Identifier1B +# ------------------------------------------------------------------------------ +# * +# * This DF provides references to MAPEM lanes using a list of @ref Identifier1B. +# * +# * @category: Road topology information +# * @revision: Created in 2.2.1 +# + +Identifier1B[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MatrixIncludedComponents.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MatrixIncludedComponents.msg new file mode 100644 index 000000000..e2455f1ac --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MatrixIncludedComponents.msg @@ -0,0 +1,85 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MatrixIncludedComponents::= BIT STRING{ +# xPosition (0), +# yPosition (1), +# zPosition (2), +# xVelocityOrVelocityMagnitude (3), +# yVelocityOrVelocityDirection (4), +# zSpeed (5), +# xAccelOrAccelMagnitude (6), +# yAccelOrAccelDirection (7), +# zAcceleration (8), +# zAngle (9), +# yAngle (10), +# xAngle (11), +# zAngularVelocity (12) +# } (SIZE(13,...)) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the components of an @ref PerceivedObject that are included in the @ref LowerTriangularPositiveSemidefiniteMatrix. +# * +# * The corresponding bit shall be set to 1 if the component is included: +# * - 0 - `xCoordinate` - when the component xCoordinate of the component @ref CartesianPosition3dWithConfidence is included, +# * - 1 - `yCoordinate` - when the component yCoordinate of the component @ref CartesianPosition3dWithConfidence is included, +# * - 2 - `zCoordinate` - when the component zCoordinate of the component @ref CartesianPosition3dWithConfidence is included, +# * - 3 - `xVelocityOrVelocityMagnitude` - when the component xVelocity of the component @ref VelocityCartesian or the component VelocityMagnitude of the component @ref VelocityPolarWithZ is included, +# * - 4 - `yVelocityOrVelocityDirection` - when the component yVelocity of the component @ref VelocityCartesian or the component VelocityDirection of the component @ref VelocityPolarWithZ is included, +# * - 5 - `zVelocity` - when the component zVelocity of the component @ref VelocityCartesian or of the component @ref VelocityPolarWithZ is included, +# * - 6 - `xAccelOrAccelMagnitude` - when the component xAcceleration of the component @ref AccelerationCartesian or the component AccelerationMagnitude of the component @ref AccelerationPolarWithZ is included, +# * - 7 - `yAccelOrAccelDirection` - when the component yAcceleration of the component @ref AccelerationCartesian or the component AccelerationDirection of the component @ref AccelerationPolarWithZ is included, +# * - 8 - `zAcceleration` - when the component zAcceleration of the component @ref AccelerationCartesian or of the component @ref AccelerationPolarWithZ is included, +# * - 9 - `zAngle` - when the component zAngle is included, +# * - 10 - `yAngle` - when the component yAngle is included, +# * - 11 - `xAngle` - when the component xAngle is included, +# * - 12 - `zAngularVelocity` - when the component zAngularVelocity is included. +# * +# * Otherwise, it shall be set to 0. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +uint8[] value +uint8 bits_unused +int64 MIN_SIZE_BITS = 13 +int64 MAX_SIZE_BITS = 13 +uint8 BIT_INDEX_X_POSITION = 0 +uint8 BIT_INDEX_Y_POSITION = 1 +uint8 BIT_INDEX_Z_POSITION = 2 +uint8 BIT_INDEX_X_VELOCITY_OR_VELOCITY_MAGNITUDE = 3 +uint8 BIT_INDEX_Y_VELOCITY_OR_VELOCITY_DIRECTION = 4 +uint8 BIT_INDEX_Z_SPEED = 5 +uint8 BIT_INDEX_X_ACCEL_OR_ACCEL_MAGNITUDE = 6 +uint8 BIT_INDEX_Y_ACCEL_OR_ACCEL_DIRECTION = 7 +uint8 BIT_INDEX_Z_ACCELERATION = 8 +uint8 BIT_INDEX_Z_ANGLE = 9 +uint8 BIT_INDEX_Y_ANGLE = 10 +uint8 BIT_INDEX_X_ANGLE = 11 +uint8 BIT_INDEX_Z_ANGULAR_VELOCITY = 12 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageId.msg new file mode 100644 index 000000000..68896392f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageId.msg @@ -0,0 +1,107 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MessageId::= INTEGER { +# denm (1), +# cam (2), +# poim (3), +# spatem (4), +# mapem (5), +# ivim (6), +# rfu1 (7), +# rfu2 (8), +# srem (9), +# ssem (10), +# evcsn (11), +# saem (12), +# rtcmem (13), +# cpm (14), +# imzm (15), +# vam (16), +# dsm (17), +# pcim (18), +# pcvm (19), +# mcm (20), +# pam (21) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the type of facility layer message. +# * +# * The value shall be set to: +# * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2], +# * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1], +# * - 3 - `poim` - for Point of Interest message as specified in ETSI TS 103 916 [9], +# * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15], +# * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15], +# * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15], +# * - 7 - `rfu1` - reserved for future usage, +# * - 8 - `rfu2` - reserved for future usage, +# * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15], +# * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15], +# * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9], +# * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17], +# * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15], +# * - 14 - `cpm` - reserved for Collective Perception Message (CPM), +# * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13], +# * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12], +# * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message, +# * - 18 - `pcim` - reserved for Parking Control Infrastructure Message, +# * - 19 - `pcvm` - reserved for Parking Control Vehicle Message, +# * - 20 - `mcm` - reserved for Manoeuvre Coordination Message, +# * - 21 - `pam` - reserved for Parking Availability Message, +# * - 22-255 - reserved for future usage. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1 from @ref ItsPduHeader. Value 3 re-assigned to poim and value 7 and 8 reserved in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 DENM = 1 +uint8 CAM = 2 +uint8 POIM = 3 +uint8 SPATEM = 4 +uint8 MAPEM = 5 +uint8 IVIM = 6 +uint8 RFU1 = 7 +uint8 RFU2 = 8 +uint8 SREM = 9 +uint8 SSEM = 10 +uint8 EVCSN = 11 +uint8 SAEM = 12 +uint8 RTCMEM = 13 +uint8 CPM = 14 +uint8 IMZM = 15 +uint8 VAM = 16 +uint8 DSM = 17 +uint8 PCIM = 18 +uint8 PCVM = 19 +uint8 MCM = 20 +uint8 PAM = 21 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageRateHz.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageRateHz.msg new file mode 100644 index 000000000..e9cb49076 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageRateHz.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MessageRateHz::= SEQUENCE { +# mantissa INTEGER (1..100), +# exponent INTEGER (-5..2) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates a message rate. +# * +# * @field mantissa: indicates the mantissa. +# * +# * @field exponent: indicates the exponent. +# * +# * The specified message rate is: mantissa*(10^exponent) +# * +# * @unit: Hz +# * @category: Communication information +# * @revision: Created in V2.1.1 +# + +uint8 mantissa +uint8 MANTISSA_MIN = 1 +uint8 MANTISSA_MAX = 100 + +int8 exponent +uint8 EXPONENT_MIN = 0 +uint8 EXPONENT_MAX = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageSegmentationInfo.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageSegmentationInfo.msg new file mode 100644 index 000000000..38e215c03 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageSegmentationInfo.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MessageSegmentationInfo ::= SEQUENCE { +# totalMsgNo CardinalNumber3b, +# thisMsgNo OrdinalNumber3b +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides information about a message with respect to the segmentation process on facility layer at the sender. +# * +# * It shall include the following components: +# * +# * @field totalMsgNo: indicates the total number of messages that have been assembled on the transmitter side to encode the information +# * during the same messsage generation process. +# * +# * @field thisMsgNo: indicates the position of the message within of the total set of messages generated during the same message generation process. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1, description revised in V2.2.1 +# + +CardinalNumber3b total_msg_no + +OrdinalNumber3b this_msg_no + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MetaInformation.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MetaInformation.msg new file mode 100644 index 000000000..1cb648ffa --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MetaInformation.msg @@ -0,0 +1,57 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MetaInformation::=SEQUENCE{ +# usedDetectionInformation SensorTypes, +# usedStoredInformation StoredInformationType, +# confidenceValue ConfidenceLevel OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides information about the source of and confidence in information. +# * +# * It shall include the following components: +# * +# * @field usedDetectionInformation: the type of sensor(s) that is used to provide the detection information. +# * +# * @field usedStoredInformation: the type of source of the stored information. +# * +# * @field confidenceValue: an optional confidence value associated to the information. +# * +# * @category: Basic information +# * @revision: Created in V2.2.1 +# + +SensorTypes used_detection_information + +StoredInformationType used_stored_information + +ConfidenceLevel confidence_value +bool confidence_value_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MitigationForTechnologies.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MitigationForTechnologies.msg new file mode 100644 index 000000000..773a3ec12 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MitigationForTechnologies.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of @ref MitigationPerTechnologyClass. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1 +# + +MitigationPerTechnologyClass[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MitigationPerTechnologyClass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MitigationPerTechnologyClass.msg new file mode 100644 index 000000000..45a222094 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MitigationPerTechnologyClass.msg @@ -0,0 +1,85 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MitigationPerTechnologyClass ::= SEQUENCE { +# accessTechnologyClass AccessTechnologyClass, +# lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, +# powerReduction INTEGER (0 .. 30) OPTIONAL, +# dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, +# dmcTonLimit INTEGER (0 .. 20) OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a set of mitigation parameters for a specific technology, as specified in ETSI TS 103 724 [24], clause 7. +# * +# * It shall include the following components: +# * +# * @field accessTechnologyClass: channel access technology to which this mitigation is intended to be applied. +# * +# * @field lowDutyCycle: duty cycle limit. +# * @unit: 0,01 % steps +# * +# * @field powerReduction: the delta value of power to be reduced. +# * @unit: dB +# * +# * @field dmcToffLimit: idle time limit as defined in ETSI TS 103 175 [19]. +# * @unit: ms +# * +# * @field dmcTonLimit: Transmission duration limit, as defined in ETSI EN 302 571 [20]. +# * @unit: ms +# * +# * @note: All parameters are optional, as they may not apply to some of the technologies or +# * interference management zone types. Specification details are in ETSI TS 103 724 [24], clause 7. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1 +# + +AccessTechnologyClass access_technology_class + +uint16 low_duty_cycle +bool low_duty_cycle_is_present +uint16 LOW_DUTY_CYCLE_MIN = 0 +uint16 LOW_DUTY_CYCLE_MAX = 10000 + +uint8 power_reduction +bool power_reduction_is_present +uint8 POWER_REDUCTION_MIN = 0 +uint8 POWER_REDUCTION_MAX = 30 + +uint16 dmc_toff_limit +bool dmc_toff_limit_is_present +uint16 DMC_TOFF_LIMIT_MIN = 0 +uint16 DMC_TOFF_LIMIT_MAX = 1200 + +uint8 dmc_ton_limit +bool dmc_ton_limit_is_present +uint8 DMC_TON_LIMIT_MIN = 0 +uint8 DMC_TON_LIMIT_MAX = 20 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/NumberOfOccupants.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/NumberOfOccupants.msg new file mode 100644 index 000000000..4a676cd80 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/NumberOfOccupants.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# NumberOfOccupants ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# } (0 .. 127) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the number of occupants in a vehicle. +# * +# * The value shall be set to: +# * - `n` (`n >= 0` and `n < 126`) for the number n of occupants, +# * - `126` for values equal to or higher than 125, +# * - `127` if information is not available. +# * +# * @unit: 1 person +# * @category: Vehicle information +# * @revision: Editorial update in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 127 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClass.msg new file mode 100644 index 000000000..d4cbfe866 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClass.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ObjectClass ::= CHOICE { +# vehicleSubClass TrafficParticipantType (unknown|passengerCar..tram|agricultural), +# vruSubClass VruProfileAndSubprofile, +# groupSubClass VruClusterInformation +# (WITH COMPONENTS{..., clusterBoundingBoxShape ABSENT}), +# ------------------------------------------------------------------------------ +# * +# * This DF indicates both the class and associated subclass that best describes an object. +# * +# * The following options are available: +# * +# * @field vehicleSubClass: the object is a road vehicle and the specific subclass is specified. +# * +# * @field vruSubClass: the object is a VRU and the specific subclass is specified. +# * +# * @field groupSubClass: the object is a VRU group or cluster and the cluster information is specified. +# * +# * @field otherSubClass: the object is of a different type than the above and the specific subclass is specified. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +uint8 choice + +TrafficParticipantType vehicle_sub_class +uint8 CHOICE_VEHICLE_SUB_CLASS = 0 + +VruProfileAndSubprofile vru_sub_class +uint8 CHOICE_VRU_SUB_CLASS = 1 + +VruClusterInformation group_sub_class +uint8 CHOICE_GROUP_SUB_CLASS = 2 + +OtherSubClass other_sub_class +uint8 CHOICE_OTHER_SUB_CLASS = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClassDescription.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClassDescription.msg new file mode 100644 index 000000000..d94dd09b5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClassDescription.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ObjectClassDescription ::= SEQUENCE (SIZE(1..8)) OF ObjectClassWithConfidence +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of object classes. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +ObjectClassWithConfidence[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClassWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClassWithConfidence.msg new file mode 100644 index 000000000..7b3934f6c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectClassWithConfidence.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ObjectClassWithConfidence ::= SEQUENCE { +# objectClass ObjectClass, +# confidence ConfidenceLevel +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the classification of a detected object together with a confidence level. +# * +# * It shall include the following components: +# * +# * @field objectClass: the class of the object. +# * +# * @field Confidence: the associated confidence level. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +ObjectClass object_class + +ConfidenceLevel confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimension.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimension.msg new file mode 100644 index 000000000..1e6d06103 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimension.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ObjectDimension ::= SEQUENCE { +# value ObjectDimensionValue, +# confidence ObjectDimensionConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a dimension of an object together with a confidence value. +# * +# * It shall include the following components: +# * +# * @field value: the object dimension value which can be estimated as the mean of the current distribution. +# * +# * @field confidence: the associated confidence value. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +ObjectDimensionValue value + +ObjectDimensionConfidence confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimensionConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimensionConfidence.msg new file mode 100644 index 000000000..da0d10fdb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimensionConfidence.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ObjectDimensionConfidence ::= INTEGER { +# outOfRange (31), +# unavailable (32) +# } (1..32) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the object dimension confidence value which represents the estimated absolute accuracy of an object dimension value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 31`) if the confidence value is equal to or less than n x 0,1 metre, and more than (n-1) x 0,1 metre, +# * - `31` if the confidence value is out of range i.e. greater than 3,0 m, +# * - `32` if the confidence value is unavailable. +# * +# * @unit 0,1 m +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 32 +uint8 OUT_OF_RANGE = 31 +uint8 UNAVAILABLE = 32 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimensionValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimensionValue.msg new file mode 100644 index 000000000..f2a84d076 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectDimensionValue.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ObjectDimensionValue ::= INTEGER { +# outOfRange (255), +# unavailable (256) +# }(1..256) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a single dimension of an object. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 255`) if the accuracy is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m, +# * - `255` if the accuracy is out of range i.e. greater than 25,4 m, +# * - `256` if the data is unavailable. +# * +# * @unit 0,1 m +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 1 +uint16 MAX = 256 +uint16 OUT_OF_RANGE = 255 +uint16 UNAVAILABLE = 256 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectFace.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectFace.msg new file mode 100644 index 000000000..f87efd1d1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectFace.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ObjectFace ::= ENUMERATED { +# front (0), +# sideLeftFront (1), +# sideLeftBack (2), +# sideRightFront (3), +# sideRightBack (4), +# back (5) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the face or part of a face of a solid object. +# * +# * The object is modelled as a rectangular prism that has a length that is greater than its width, with the faces of the object being defined as: +# * - front: the face defined by the prism's width and height, and which is the first face in direction of longitudinal movement of the object, +# * - back: the face defined by the prism's width and height, and which is the last face in direction of longitudinal movement of the object, +# * - side: the faces defined by the prism's length and height with "left" and "right" defined by looking at the front face and "front" and "back" defined w.r.t to the front and back faces. +# * +# * Note: It is permissible to derive the required object dimensions and orientation from models to provide a best guess. +# * +# * @category: Basic information +# * @revision: V2.1.1 +# + +uint8 value +uint8 FRONT = 0 +uint8 SIDE_LEFT_FRONT = 1 +uint8 SIDE_LEFT_BACK = 2 +uint8 SIDE_RIGHT_FRONT = 3 +uint8 SIDE_RIGHT_BACK = 4 +uint8 BACK = 5 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectPerceptionQuality.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectPerceptionQuality.msg new file mode 100644 index 000000000..aa654baa8 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ObjectPerceptionQuality.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ObjectPerceptionQuality ::= INTEGER { +# noConfidence (0), +# fullConfidence (15) +# } (0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a single-value indication about the overall information quality of a perceived object. +# * +# * The value shall be set to: +# * - `0` : if there is no confidence in detected object, e.g. for "ghost"-objects or if confidence could not be computed, +# * - `n` (`n > 0` and `n < 15`) : for the applicable confidence value, +# * - `15` : if there is full confidence in the detected Object. +# * +# * @unit n/a +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 NO_CONFIDENCE = 0 +uint8 FULL_CONFIDENCE = 15 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OccupiedLanesWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OccupiedLanesWithConfidence.msg new file mode 100644 index 000000000..42ad80b88 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OccupiedLanesWithConfidence.msg @@ -0,0 +1,72 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# OccupiedLanesWithConfidence::= SEQUENCE { +# lanePositionBased SEQUENCE (SIZE(1..4)) OF LanePositionOptions, +# mapBased SEQUENCE (SIZE(1..4)) OF MapPosition OPTIONAL, +# confidence MetaInformation, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a set of lanes which are partially or fully occupied by an object or event at an externally defined reference position. +# * +# * @note: In contrast to @ref GeneralizedLanePosition, the dimension of the object or event area (width and length) is taken into account to determine the occupancy, +# * i.e. this DF describes the lanes which are blocked by an object or event and not the position of the object / event itself. A confidence is used to describe the +# * probability that exactly all the provided lanes are occupied. +# * +# * It shall include the following components: +# * +# * @field lanePositionBased: a set of up to `4` lanes that are partially or fully occupied by an object or event, ordered by increasing value of @ref LanePosition. +# * Lanes that are partially occupied can be described using the component lanePositionWithLateralDetails of @ref Options, with the following constraints: +# * The distance to lane borders which are covered by the object / event shall be set to 0. Only the distances to the leftmost and/or rightmost border which are not covered by +# * the object / event shall be provided with values > 0. Those values shall be added to the respective instances of @ref LanePositionOptions, i.e. the first entry shall contain the component distanceToLeftBorder > 0 , +# * and/or the last entry shall contain the component distanceToRightBorder > 0; the respective other components of these entries shall be set to 0. +# * +# * @field mapBased: optional lane information described in the context of a MAPEM as specified in ETSI TS 103 301 [15]. +# * If present, it shall describe the same lane(s) as listed in the component lanePositionBased, but using the lane identification of the MAPEM. This component can be used only if a +# * MAPEM is available for the reference position (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased. +# * +# * @field confidence: mandatory confidence information for expressing the probability that all the provided lanes are occupied. It also provides information on how the lane +# * information were generated. If none of the sensors were used, the lane information is assumed to be derived directly from the absolute reference position and the related dimension. +# * +# * @category: Road Topology information +# * @revision: Created in V2.2.1 +# + +LanePositionOptions[] lane_position_based +uint8 LANE_POSITION_BASED_MIN_SIZE = 1 +uint8 LANE_POSITION_BASED_MAX_SIZE = 4 + +MapPosition[] map_based +bool map_based_is_present +uint8 MAP_BASED_MIN_SIZE = 1 +uint8 MAP_BASED_MAX_SIZE = 4 + +MetaInformation confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OpeningDaysHours.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OpeningDaysHours.msg new file mode 100644 index 000000000..6be4a6943 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OpeningDaysHours.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# OpeningDaysHours ::= UTF8String +# ------------------------------------------------------------------------------ +# * +# * This DE represents a time period to describe the opening days and hours of a Point of Interest. +# * (for example local commerce). +# * +# * @category: Basic information +# * @revision: V1.3.1 +# + +string value + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber1B.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber1B.msg new file mode 100644 index 000000000..aa29b0de9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber1B.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# OrdinalNumber1B ::= INTEGER(0..255) +# ------------------------------------------------------------------------------ +# * +# * The DE represents an ordinal number that indicates the position of an element in a set. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber3b.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber3b.msg new file mode 100644 index 000000000..64958499d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber3b.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# OrdinalNumber3b ::= INTEGER(1..8) +# ------------------------------------------------------------------------------ +# * +# * The DE represents an ordinal number that indicates the position of an element in a set. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 8 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OtherSubClass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OtherSubClass.msg new file mode 100644 index 000000000..78b109eb9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OtherSubClass.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# OtherSubClass ::= INTEGER { +# unknown (0), +# singleObject (1), +# multipleObjects (2), +# bulkMaterial (3) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the subclass of a detected object for @ref ObjectClass "otherSubclass". +# * +# * The value shall be set to: +# * - `0` - unknown - if the subclass is unknown. +# * - `1` - singleObject - if the object is a single object. +# * - `2` - multipleObjects - if the object is a group of multiple objects. +# * - `3` - bulkMaterial - if the object is a bulk material. +# * +# * @category: Sensing information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNKNOWN = 0 +uint8 SINGLE_OBJECT = 1 +uint8 MULTIPLE_OBJECTS = 2 +uint8 BULK_MATERIAL = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Path.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Path.msg new file mode 100644 index 000000000..23f0c58a5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Path.msg @@ -0,0 +1,44 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Path::= SEQUENCE (SIZE(0..40)) OF PathPoint +# ------------------------------------------------------------------------------ +# * +# * This DF represents a path with a set of path points. +# * It shall contain up to `40` @ref PathPoint. +# * +# * The first PathPoint presents an offset delta position with regards to an external reference position. +# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. +# * +# * @category: GeoReference information, Vehicle information +# * @revision: created in V2.1.1 based on PathHistory +# + +PathPoint[] array +uint8 MIN_SIZE = 0 +uint8 MAX_SIZE = 40 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTime.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTime.msg new file mode 100644 index 000000000..dc0c60bb1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTime.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathDeltaTime ::= INTEGER (1..65535, ...) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the recorded or estimated travel time between a position and a predefined reference position. +# * +# * @unit 0,01 second +# * @category: Basic information +# * @revision: V1.3.1 +# + +int64 value +int64 MIN = 1 +int64 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTimeChoice.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTimeChoice.msg new file mode 100644 index 000000000..4e6fc637a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTimeChoice.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathDeltaTimeChoice::= CHOICE { +# deltaTimeHighPrecision DeltaTimeTenthOfSecond, +# deltaTimeBigRange DeltaTimeTenSeconds, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents estimated/predicted travel time between a position and a predefined reference position. +# * +# * the following options are available: +# * +# * @field deltaTimeHighPrecision: delta time with precision of 0,1 s. +# * +# * @field deltaTimeBigRange: delta time with precision of 10 s. +# * +# * @category: Basic information +# * @revision: Created in V2.2.1 +# + +uint8 choice + +DeltaTimeTenthOfSecond delta_time_high_precision +uint8 CHOICE_DELTA_TIME_HIGH_PRECISION = 0 + +DeltaTimeTenSeconds delta_time_big_range +uint8 CHOICE_DELTA_TIME_BIG_RANGE = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathExtended.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathExtended.msg new file mode 100644 index 000000000..9a6527c84 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathExtended.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathExtended::= SEQUENCE { +# pointOfEventZone INTEGER(1..23), +# path Path +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a path towards a specific point specified in the @ref EventZone. +# * +# * It shall include the following components: +# * +# * @field pointOfEventZone: the ordinal number of the point within the DF EventZone, i.e. within the list of EventPoints. +# * +# * @field path: the associated path towards the point specified in pointOfEventZone. +# * The first PathPoint presents an offset delta position with regards to the position of that pointOfEventZone. +# * +# * @category: GeoReference information +# * @revision: Created in V2.2.1 +# + +uint8 point_of_event_zone +uint8 POINT_OF_EVENT_ZONE_MIN = 1 +uint8 POINT_OF_EVENT_ZONE_MAX = 23 + +Path path + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathHistory.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathHistory.msg new file mode 100644 index 000000000..ba80688f4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathHistory.msg @@ -0,0 +1,45 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint +# ------------------------------------------------------------------------------ +# * +# * This DF represents a path history with a set of path points. +# * It shall contain up to `40` @ref PathPoint. +# * +# * The first PathPoint presents an offset delta position with regards to an external reference position. +# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref Path instead. +# * @category: GeoReference information, Vehicle information +# * @revision: semantics updated in V2.1.1, size corrected to 0..40 in V2.2.1 +# + +PathPoint[] array +uint8 MIN_SIZE = 0 +uint8 MAX_SIZE = 40 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathId.msg new file mode 100644 index 000000000..e326bf970 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathId.msg @@ -0,0 +1,76 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathId ::= INTEGER { +# noPath (0), +# path1 (1), +# path2 (2), +# path3 (3), +# path4 (4), +# path5 (5), +# path6 (6), +# path7 (7), +# pathExtended1 (8), +# pathExtended2 (9), +# pathExtended3 (10), +# pathExtended4 (11), +# pathExtended5 (12), +# pathExtended6 (13), +# pathExtended7 (14) +# } (0..14) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates an ordinal number that represents the position of a component in the list of @ref Traces or @ref TracesExtended. +# * +# * The value shall be set to: +# * - `0` - noPath - if no path is identified +# * - `1..7` - for instances 1..7 of @ref Traces +# * - `8..14` - for instances 1..7 of @ref TracesExtended. +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 14 +uint8 NO_PATH = 0 +uint8 PATH1 = 1 +uint8 PATH2 = 2 +uint8 PATH3 = 3 +uint8 PATH4 = 4 +uint8 PATH5 = 5 +uint8 PATH6 = 6 +uint8 PATH7 = 7 +uint8 PATH_EXTENDED1 = 8 +uint8 PATH_EXTENDED2 = 9 +uint8 PATH_EXTENDED3 = 10 +uint8 PATH_EXTENDED4 = 11 +uint8 PATH_EXTENDED5 = 12 +uint8 PATH_EXTENDED6 = 13 +uint8 PATH_EXTENDED7 = 14 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPoint.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPoint.msg new file mode 100644 index 000000000..194260b46 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPoint.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathPoint ::= SEQUENCE { +# pathPosition DeltaReferencePosition, +# pathDeltaTime PathDeltaTime OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF defines an offset waypoint position within a path. +# * +# * It shall include the following components: +# * +# * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position. +# * +# * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position. +# * +# * @category GeoReference information +# * @revision: semantics updated in V2.1.1 +# + +DeltaReferencePosition path_position + +PathDeltaTime path_delta_time +bool path_delta_time_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPointPredicted.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPointPredicted.msg new file mode 100644 index 000000000..32629ff91 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPointPredicted.msg @@ -0,0 +1,87 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathPointPredicted::= SEQUENCE { +# deltaLatitude DeltaLatitude, +# deltaLongitude DeltaLongitude, +# horizontalPositionConfidence PosConfidenceEllipse OPTIONAL, +# deltaAltitude DeltaAltitude DEFAULT unavailable, +# altitudeConfidence AltitudeConfidence DEFAULT unavailable, +# pathDeltaTime PathDeltaTimeChoice OPTIONAL, +# symmetricAreaOffset StandardLength9b OPTIONAL, +# asymmetricAreaOffset StandardLength9b OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF defines a predicted offset position that can be used within a predicted path or trajectory, together with optional data to describe a path zone shape. +# * +# * It shall include the following components: +# * +# * @field deltaLatitude: the offset latitude with regards to a pre-defined reference position. +# * +# * @field deltaLongitude: the offset longitude with regards to a pre-defined reference position. +# * +# * @field horizontalPositionConfidence: the optional confidence value associated to the horizontal geographical position. +# * +# * @field deltaAltitude: the optional offset altitude with regards to a pre-defined reference position, with default value unavailable. +# * +# * @field altitudeConfidence: the optional confidence value associated to the altitude value of the geographical position, with default value unavailable. +# * +# * @field pathDeltaTime: the optional travel time to the waypoint from the predefined reference position. +# +# * @field symmetricAreaOffset: the optional symmetric offset to generate a shape, see Annex D for details. +# * +# * @field asymmetricAreaOffset: the optional asymmetric offset to generate a shape, see Annex D for details. +# * +# * @category GeoReference information +# * @revision: Created in V2.1.1, type of pathDeltaTime changed and optionality added, fields symmetricAreaOffset and asymmetricAreaOffset added in V2.2.1 +# + +DeltaLatitude delta_latitude + +DeltaLongitude delta_longitude + +PosConfidenceEllipse horizontal_position_confidence +bool horizontal_position_confidence_is_present + +DeltaAltitude delta_altitude + +AltitudeConfidence altitude_confidence + +PathDeltaTimeChoice path_delta_time +bool path_delta_time_is_present + +StandardLength9b symmetric_area_offset +bool symmetric_area_offset_is_present + +StandardLength9b asymmetric_area_offset +bool asymmetric_area_offset_is_present + + +int16 DELTA_ALTITUDE_DEFAULT = 12800 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredicted.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredicted.msg new file mode 100644 index 000000000..68e5a541e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredicted.msg @@ -0,0 +1,44 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathPredicted::= SEQUENCE (SIZE(1..16,...)) OF PathPointPredicted +# ------------------------------------------------------------------------------ +# * +# * This DF represents a predicted path or trajectory with a set of predicted points and optional information to generate a shape which is estimated to contain the real path. +# * It shall contain up to `16` @ref PathPointPredicted. +# * +# * The first PathPoint presents an offset delta position with regards to an external reference position. +# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. +# * +# * @category: GeoReference information +# * @revision: created in V2.1.1 , size constraint changed to SIZE(1..16, ...) in V2.2.1 +# + +PathPointPredicted[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredicted2.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredicted2.msg new file mode 100644 index 000000000..48739ba83 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredicted2.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathPredicted2::= SEQUENCE{ +# pathPredicted PathPredicted +# ((WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime ABSENT, symmetricAreaOffset ABSENT})) | +# ------------------------------------------------------------------------------ +# * +# * This DF represents a predicted path, predicted trajectory or predicted path zone together with usage information and a prediction confidence. +# * +# * It shall include the following components: +# * +# * @field pathPredicted: the predicted path (pathDeltaTime ABSENT) or trajectory (pathDeltaTime PRESENT) and/or the path zone (symmetricAreaOffset PRESENT). +# * +# * @field usageIndication: an indication of how the predicted path will be used. +# * +# * @field confidenceLevel: the confidence that the path/trajectory in pathPredicted will occur as predicted. +# * +# * @category: GeoReference information +# * @revision: created in V2.2.1 +# + +PathPredicted path_predicted +int64 PATH_PREDICTED_MIN = 0 + +UsageIndication usage_indication + +ConfidenceLevel confidence_level + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredictedList.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredictedList.msg new file mode 100644 index 000000000..7e11d19ea --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPredictedList.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathPredictedList ::= SEQUENCE SIZE(1..16,...) OF PathPredicted2 +# ------------------------------------------------------------------------------ +# * +# * This DF represents one or more predicted paths, or trajectories or path zones (zones that include all possible paths/trajectories within its boundaries) using @ref PathPredicted2. +# * It shall contain up to `16` @ref PathPredicted2. +# * +# * @category: GeoReference information +# * @revision: V2.2.1 +# + +PathPredicted2[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathReferences.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathReferences.msg new file mode 100644 index 000000000..e2153b81f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathReferences.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PathReferences ::= SEQUENCE (SIZE(1..14)) OF PathId +# ------------------------------------------------------------------------------ +# * +# * This DF represents a list of references to the components of a @ref Traces or @ref TracesExtended DF using the @ref PathId. +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +PathId[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 14 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerceivedObject.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerceivedObject.msg new file mode 100644 index 000000000..9ecbf10b2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerceivedObject.msg @@ -0,0 +1,143 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PerceivedObject ::= SEQUENCE { +# objectId Identifier2B OPTIONAL, +# measurementDeltaTime DeltaTimeMilliSecondSigned, +# position CartesianPosition3dWithConfidence, +# velocity Velocity3dWithConfidence OPTIONAL, +# acceleration Acceleration3dWithConfidence OPTIONAL, +# angles EulerAnglesWithConfidence OPTIONAL, +# zAngularVelocity CartesianAngularVelocityComponent OPTIONAL, +# lowerTriangularCorrelationMatrices LowerTriangularPositiveSemidefiniteMatrices OPTIONAL, +# objectDimensionZ ObjectDimension OPTIONAL, +# objectDimensionY ObjectDimension OPTIONAL, +# objectDimensionX ObjectDimension OPTIONAL, +# objectAge DeltaTimeMilliSecondSigned (0..2047) OPTIONAL, +# objectPerceptionQuality ObjectPerceptionQuality OPTIONAL, +# sensorIdList SequenceOfIdentifier1B OPTIONAL, +# classification ObjectClassDescription OPTIONAL, +# mapPosition MapPosition OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF contains information about a perceived object including its kinematic state and attitude vector in a pre-defined coordinate system and with respect to a reference time. +# * +# * It shall include the following components: +# * +# * @field objectId: optional identifier assigned to a detected object. +# * +# * @field measurementDeltaTime: the time difference from a reference time to the time of the measurement of the object. +# * Negative values indicate that the provided object state refers to a point in time before the reference time. +# * +# * @field position: the position of the geometric centre of the object's bounding box within the pre-defined coordinate system. +# * +# * @field velocity: the velocity vector of the object within the pre-defined coordinate system. +# * +# * @field acceleration: the acceleration vector of the object within the pre-defined coordinate system. +# * +# * @field angles: optional Euler angles of the object bounding box at the time of measurement. +# * +# * @field zAngularVelocity: optional angular velocity of the object around the z-axis at the time of measurement. +# * The angular velocity is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule. +# * +# * @field lowerTriangularCorrelationMatrices: optional set of lower triangular correlation matrices for selected components of the provided kinematic state and attitude vector. +# * +# * @field objectDimensionZ: optional z-dimension of object bounding box. +# * This dimension shall be measured along the direction of the z-axis after all the rotations have been applied. +# * +# * @field objectDimensionY: optional y-dimension of the object bounding box. +# * This dimension shall be measured along the direction of the y-axis after all the rotations have been applied. +# * +# * @field objectDimensionX: optional x-dimension of object bounding box. +# * This dimension shall be measured along the direction of the x-axis after all the rotations have been applied. +# * +# * @field objectAge: optional age of the detected and described object, i.e. the difference in time between the moment +# * it has been first detected and the reference time of the message. Value `1500` indicates that the object has been observed for more than 1.5s. +# * +# * @field objectPerceptionQuality: optional confidence associated to the object. +# * +# * @field sensorIdList: optional list of sensor-IDs which provided the measurement data. +# * +# * @field classification: optional classification of the described object +# * +# * @field matchedPosition: optional map-matched position of an object. +# * +# * @category Sensing information +# * @revision: created in V2.1.1 +# + +Identifier2B object_id +bool object_id_is_present + +DeltaTimeMilliSecondSigned measurement_delta_time + +CartesianPosition3dWithConfidence position + +Velocity3dWithConfidence velocity +bool velocity_is_present + +Acceleration3dWithConfidence acceleration +bool acceleration_is_present + +EulerAnglesWithConfidence angles +bool angles_is_present + +CartesianAngularVelocityComponent z_angular_velocity +bool z_angular_velocity_is_present + +LowerTriangularPositiveSemidefiniteMatrices lower_triangular_correlation_matrices +bool lower_triangular_correlation_matrices_is_present + +ObjectDimension object_dimension_z +bool object_dimension_z_is_present + +ObjectDimension object_dimension_y +bool object_dimension_y_is_present + +ObjectDimension object_dimension_x +bool object_dimension_x_is_present + +DeltaTimeMilliSecondSigned object_age +bool object_age_is_present +uint16 OBJECT_AGE_MIN = 0 +uint16 OBJECT_AGE_MAX = 2047 + +ObjectPerceptionQuality object_perception_quality +bool object_perception_quality_is_present + +SequenceOfIdentifier1B sensor_id_list +bool sensor_id_list_is_present + +ObjectClassDescription classification +bool classification_is_present + +MapPosition map_position +bool map_position_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerformanceClass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerformanceClass.msg new file mode 100644 index 000000000..f261d7031 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerformanceClass.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PerformanceClass ::= INTEGER { +# unavailable (0), +# performanceClassA (1), +# performanceClassB (2) +# } (0..7) +# ------------------------------------------------------------------------------ +# * +# * This DE denotes the ability of an ITS-S to provide up-to-date information. +# * A performance class value is used to describe age of data. The exact values are out of scope of the present document. +# * +# * The value shall be set to: +# * - `0` if the performance class is unknown, +# * - `1` for performance class A as defined in ETSI TS 101 539-1 [5], +# * - `2` for performance class B as defined in ETSI TS 101 539-1 [5], +# * - 3-7 reserved for future use. +# * +# * @category: Vehicle information +# * @revision: Editorial update in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 7 +uint8 UNAVAILABLE = 0 +uint8 PERFORMANCE_CLASS_A = 1 +uint8 PERFORMANCE_CLASS_B = 2 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PhoneNumber.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PhoneNumber.msg new file mode 100644 index 000000000..fac048df0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PhoneNumber.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PhoneNumber ::= NumericString (SIZE(1..16)) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a telephone number +# * +# * @category: Basic information +# * @revision: V1.3.1 +# + +string value +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PolygonalShape.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PolygonalShape.msg new file mode 100644 index 000000000..1897a4398 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PolygonalShape.msg @@ -0,0 +1,62 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PolygonalShape ::= SEQUENCE { +# shapeReferencePoint CartesianPosition3d OPTIONAL, +# polygon SequenceOfCartesianPosition3d (SIZE(3..16,...)), +# height StandardLength12b OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the shape of a polygonal area or of a right prism. +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position. +# * If this component is absent, the externally specified reference position represents the shape's reference point. +# * +# * @field polygon: the polygonal area represented by a list of minimum `3` to maximum `16` @ref CartesianPosition3d. +# * All nodes of the polygon shall be considered relative to the shape's reference point. +# * +# * @field height: the optional height, present if the shape is a right prism extending in the positive z-axis. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1 +# * +# + +CartesianPosition3d shape_reference_point +bool shape_reference_point_is_present + +SequenceOfCartesianPosition3d polygon +int64 POLYGON_MIN_SIZE = 3 +int64 POLYGON_MAX_SIZE = 16 + +StandardLength12b height +bool height_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosCentMass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosCentMass.msg new file mode 100644 index 000000000..946f3ce17 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosCentMass.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PosCentMass ::= INTEGER { +# tenCentimetres (1), +# outOfRange (62), +# unavailable (63) +# } (1..63) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the perpendicular distance from the centre of mass of an empty load vehicle to the front line of +# * the vehicle bounding box of the empty load vehicle. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 62`) for any aplicable value n between 0,1 metre and 6,2 metres, +# * - `62` for values equal to or higher than 6.1 metres, +# * - `63` if the information is unavailable. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * +# * @unit 0,1 metre +# * @category Vehicle information +# * @revision: description revised in V2.1.1 (the meaning of 62 has changed slightly) +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 63 +uint8 TEN_CENTIMETRES = 1 +uint8 OUT_OF_RANGE = 62 +uint8 UNAVAILABLE = 63 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosConfidenceEllipse.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosConfidenceEllipse.msg new file mode 100644 index 000000000..4eeef1077 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosConfidenceEllipse.msg @@ -0,0 +1,62 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PosConfidenceEllipse ::= SEQUENCE { +# semiMajorConfidence SemiAxisLength, +# semiMinorConfidence SemiAxisLength, +# semiMajorOrientation HeadingValue +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a +# * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference +# * position point for which the position accuracy is evaluated. +# * +# * It shall include the following components: +# * +# * @field semiMajorConfidence: half of length of the major axis, i.e. distance between the centre point +# * and major axis point of the position accuracy ellipse. +# * +# * @field semiMinorConfidence: half of length of the minor axis, i.e. distance between the centre point +# * and minor axis point of the position accuracy ellipse. +# * +# * @field semiMajorOrientation: orientation direction of the ellipse major axis of the position accuracy +# * ellipse with regards to the WGS84 north. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * +# * @category GeoReference information +# * @revision: V1.3.1 +# + +SemiAxisLength semi_major_confidence + +SemiAxisLength semi_minor_confidence + +HeadingValue semi_major_orientation + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosFrontAx.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosFrontAx.msg new file mode 100644 index 000000000..f41efca72 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosFrontAx.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PosFrontAx ::= INTEGER { +# outOfRange (19), +# unavailable(20) +# } (1..20) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the perpendicular distance between the vehicle front line of the bounding box and the front wheel axle in 0,1 metre. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 19`) for any aplicable value between 0,1 metre and 1,9 metres, +# * - `19` for values equal to or higher than 1.8 metres, +# * - `20` if the information is unavailable. +# * +# * @category: Vehicle information +# * @unit 0,1 metre +# * @revision: description revised in V2.1.1 (the meaning of 19 has changed slightly) +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 20 +uint8 OUT_OF_RANGE = 19 +uint8 UNAVAILABLE = 20 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosLonCarr.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosLonCarr.msg new file mode 100644 index 000000000..f12675fd4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosLonCarr.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PosLonCarr ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# } (1..127) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the distance from the centre of vehicle front bumper to the right or left longitudinal carrier of vehicle. +# * The left/right carrier refers to the left/right as seen from a passenger sitting in the vehicle. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) for any aplicable value between 0,01 metre and 1,26 metres, +# * - `126` for values equal to or higher than 1.25 metres, +# * - `127` if the information is unavailable. +# * +# * @unit 0,01 metre +# * @category Vehicle information +# * @revision: description revised in V2.1.1 (the meaning of 126 has changed slightly) +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 127 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosPillar.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosPillar.msg new file mode 100644 index 000000000..a6dae88f9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PosPillar.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PosPillar ::= INTEGER { +# outOfRange (29), +# unavailable (30) +# } (1..30) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the perpendicular inter-distance of neighbouring pillar axis of vehicle starting from the +# * middle point of the front line of the vehicle bounding box. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 29`) for any aplicable value between 0,1 metre and 2,9 metres, +# * - `29` for values equal to or greater than 2.8 metres, +# * - `30` if the information is unavailable. +# * +# * @unit 0,1 metre +# * @category Vehicle information +# * @revision: description revised in V2.1.1 (the meaning of 29 has changed slightly) +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 30 +uint8 OUT_OF_RANGE = 29 +uint8 UNAVAILABLE = 30 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Position1d.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Position1d.msg new file mode 100644 index 000000000..7bc580f83 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Position1d.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Position1d ::= INTEGER { +# outOfRange(8190), +# unavailable(8191) +# }(-8190..8191) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a position along a single dimension such as the middle of a road or lane, measured as an offset from an externally defined starting point, +# * in direction of an externally defined reference direction. +# * +# * The value shall be set to: +# * - `n` (`n >= -8190` and `n < 0`) if the position is equal to or less than n x 1 metre and more than (n-1) x 1 metre, in opposite direction of the reference direction, +# * - `0` if the position is at the starting point, +# * - `n` (`n > 0` and `n < 8190`) if the position is equal to or less than n x 1 metre and more than (n-1) x 1 metre, in the same direction as the reference direction, +# * - `8 190` if the position is out of range, i.e. equal to or greater than 8 189 m, +# * - `8 191` if the position information is not available. +# * +# * @unit 1 metre +# * @category: GeoReference information +# * @revision: Created in V2.2.1 +# + +int16 value +int16 MIN = -8190 +int16 MAX = 8191 +int16 OUT_OF_RANGE = 8190 +int16 UNAVAILABLE = 8191 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionConfidenceEllipse.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionConfidenceEllipse.msg new file mode 100644 index 000000000..41ebe83f4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionConfidenceEllipse.msg @@ -0,0 +1,61 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PositionConfidenceEllipse ::= SEQUENCE { +# semiMajorAxisLength SemiAxisLength, +# semiMinorAxisLength SemiAxisLength, +# semiMajorAxisOrientation Wgs84AngleValue +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a +# * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference +# * position point for which the position accuracy is evaluated. +# * +# * It shall include the following components: +# * +# * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point +# * and major axis point of the position accuracy ellipse. +# * +# * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point +# * and minor axis point of the position accuracy ellipse. +# * +# * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy +# * ellipse with regards to the WGS84 north. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse +# + +SemiAxisLength semi_major_axis_length + +SemiAxisLength semi_minor_axis_length + +Wgs84AngleValue semi_major_axis_orientation + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionOfOccupants.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionOfOccupants.msg new file mode 100644 index 000000000..a9c91f511 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionOfOccupants.msg @@ -0,0 +1,100 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PositionOfOccupants ::= BIT STRING { +# row1LeftOccupied (0), +# row1RightOccupied (1), +# row1MidOccupied (2), +# row1NotDetectable (3), +# row1NotPresent (4), +# row2LeftOccupied (5), +# row2RightOccupied (6), +# row2MidOccupied (7), +# row2NotDetectable (8), +# row2NotPresent (9), +# row3LeftOccupied (10), +# row3RightOccupied (11), +# row3MidOccupied (12), +# row3NotDetectable (13), +# row3NotPresent (14), +# row4LeftOccupied (15), +# row4RightOccupied (16), +# row4MidOccupied (17), +# row4NotDetectable (18), +# row4NotPresent (19) +# } (SIZE(20)) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates whether a passenger seat is occupied or whether the occupation status is detectable or not. +# * +# * The number of row in vehicle seats layout is counted in rows from the driver row backwards from front to the rear +# * of the vehicle. +# * The left side seat of a row refers to the left hand side seen from vehicle rear to front. +# * Additionally, a bit is reserved for each seat row, to indicate if the seat occupation of a row is detectable or not, +# * i.e. `row1NotDetectable (3)`, `row2NotDetectable(8)`, `row3NotDetectable(13)` and `row4NotDetectable(18)`. +# * Finally, a bit is reserved for each row seat to indicate if the seat row is present or not in the vehicle, +# * i.e. `row1NotPresent (4)`, `row2NotPresent (9)`, `row3NotPresent(14)`, `row4NotPresent(19)`. +# * +# * When a seat is detected to be occupied, the corresponding seat occupation bit shall be set to `1`. +# * For example, when the row 1 left seat is occupied, `row1LeftOccupied(0)` bit shall be set to `1`. +# * When a seat is detected to be not occupied, the corresponding seat occupation bit shall be set to `0`. +# * Otherwise, the value of seat occupation bit shall be set according to the following conditions: +# * - If the seat occupation of a seat row is not detectable, the corresponding bit shall be set to `1`. +# * When any seat row not detectable bit is set to `1`, all corresponding seat occupation bits of the same row +# * shall be set to `1`. +# * - If the seat row is not present, the corresponding not present bit of the same row shall be set to `1`. +# * When any of the seat row not present bit is set to `1`, the corresponding not detectable bit for that row +# * shall be set to `1`, and all the corresponding seat occupation bits in that row shall be set to `0`. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 20 +uint8 BIT_INDEX_ROW1_LEFT_OCCUPIED = 0 +uint8 BIT_INDEX_ROW1_RIGHT_OCCUPIED = 1 +uint8 BIT_INDEX_ROW1_MID_OCCUPIED = 2 +uint8 BIT_INDEX_ROW1_NOT_DETECTABLE = 3 +uint8 BIT_INDEX_ROW1_NOT_PRESENT = 4 +uint8 BIT_INDEX_ROW2_LEFT_OCCUPIED = 5 +uint8 BIT_INDEX_ROW2_RIGHT_OCCUPIED = 6 +uint8 BIT_INDEX_ROW2_MID_OCCUPIED = 7 +uint8 BIT_INDEX_ROW2_NOT_DETECTABLE = 8 +uint8 BIT_INDEX_ROW2_NOT_PRESENT = 9 +uint8 BIT_INDEX_ROW3_LEFT_OCCUPIED = 10 +uint8 BIT_INDEX_ROW3_RIGHT_OCCUPIED = 11 +uint8 BIT_INDEX_ROW3_MID_OCCUPIED = 12 +uint8 BIT_INDEX_ROW3_NOT_DETECTABLE = 13 +uint8 BIT_INDEX_ROW3_NOT_PRESENT = 14 +uint8 BIT_INDEX_ROW4_LEFT_OCCUPIED = 15 +uint8 BIT_INDEX_ROW4_RIGHT_OCCUPIED = 16 +uint8 BIT_INDEX_ROW4_MID_OCCUPIED = 17 +uint8 BIT_INDEX_ROW4_NOT_DETECTABLE = 18 +uint8 BIT_INDEX_ROW4_NOT_PRESENT = 19 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionOfPillars.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionOfPillars.msg new file mode 100644 index 000000000..0ca896608 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionOfPillars.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of distances @ref PosPillar that refer to the perpendicular distance between centre of vehicle front bumper +# * and vehicle pillar A, between neighbour pillars until the last pillar of the vehicle. +# * +# * Vehicle pillars refer to the vertical or near vertical support of vehicle, +# * designated respectively as the A, B, C or D and other pillars moving in side profile view from the front to rear. +# * +# * The first value of the DF refers to the perpendicular distance from the centre of vehicle front bumper to +# * vehicle A pillar. The second value refers to the perpendicular distance from the centre position of A pillar +# * to the B pillar of vehicle and so on until the last pillar. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +PosPillar[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositioningSolutionType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositioningSolutionType.msg new file mode 100644 index 000000000..9dd521704 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositioningSolutionType.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PositioningSolutionType ::= ENUMERATED { +# noPositioningSolution (0), +# sGNSS (1), +# dGNSS (2), +# sGNSSplusDR (3), +# dGNSSplusDR (4), +# dR (5), +# ..., +# manuallyByOperator (6) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the positioning technology being used to estimate a geographical position. +# * +# * The value shall be set to: +# * - 0 `noPositioningSolution` - no positioning solution used, +# * - 1 `sGNSS` - Global Navigation Satellite System used, +# * - 2 `dGNSS` - Differential GNSS used, +# * - 3 `sGNSSplusDR` - GNSS and dead reckoning used, +# * - 4 `dGNSSplusDR` - Differential GNSS and dead reckoning used, +# * - 5 `dR` - dead reckoning used, +# * - 6 `manuallyByOperator` - position set manually by a human operator. +# * +# * @category: GeoReference information +# * @revision: V1.3.1, extension with value 6 added in V2.2.1 +# + +uint8 value +uint8 NO_POSITIONING_SOLUTION = 0 +uint8 S_GNSS = 1 +uint8 D_GNSS = 2 +uint8 S_GNS_SPLUS_DR = 3 +uint8 D_GNS_SPLUS_DR = 4 +uint8 D_R = 5 +# .extended +uint8 MANUALLY_BY_OPERATOR = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PostCrashSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PostCrashSubCauseCode.msg new file mode 100644 index 000000000..47aad473c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PostCrashSubCauseCode.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PostCrashSubCauseCode ::= INTEGER { +# unavailable (0), +# accidentWithoutECallTriggered (1), +# accidentWithECallManuallyTriggered (2), +# accidentWithECallAutomaticallyTriggered (3), +# accidentWithECallTriggeredWithoutAccessToCellularNetwork (4) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` . +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on post crash event is unavailable, +# * - 1 `accidentWithoutECallTriggered` - in case no eCall has been triggered for an accident, +# * - 2 `accidentWithECallManuallyTriggered` - in case eCall has been manually triggered and transmitted to eCall back end, +# * - 3 `accidentWithECallAutomaticallyTriggered` - in case eCall has been automatically triggered and transmitted to eCall back end, +# * - 4 `accidentWithECallTriggeredWithoutAccessToCellularNetwork` - in case eCall has been triggered but cellular network is not accessible from triggering vehicle. +# * - 5-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 ACCIDENT_WITHOUT_E_CALL_TRIGGERED = 1 +uint8 ACCIDENT_WITH_E_CALL_MANUALLY_TRIGGERED = 2 +uint8 ACCIDENT_WITH_E_CALL_AUTOMATICALLY_TRIGGERED = 3 +uint8 ACCIDENT_WITH_E_CALL_TRIGGERED_WITHOUT_ACCESS_TO_CELLULAR_NETWORK = 4 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PrecipitationIntensity.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PrecipitationIntensity.msg new file mode 100644 index 000000000..df5937d12 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PrecipitationIntensity.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PrecipitationIntensity ::= INTEGER { +# outOfRange (2000), +# unavailable (2001) +# } (1..2001) +# ------------------------------------------------------------------------------ +# * +#* This DE represent the total amount of rain falling during one hour. It is measured in mm per hour at an area of 1 square metre. +#* +#* The following values are specified: +#* - `n` (`n > 0` and `n < 2000`) if the amount of rain falling is equal to or less than n x 0,1 mm/h and greater than (n-1) x 0,1 mm/h, +#* - `2000` if the amount of rain falling is greater than 199.9 mm/h, +#* - `2001` if the information is not available. +#* +#* @unit: 0,1 mm/h +#* @category: Basic Information +#* @revision: created in V2.1.1 +# + +uint16 value +uint16 MIN = 1 +uint16 MAX = 2001 +uint16 OUT_OF_RANGE = 2000 +uint16 UNAVAILABLE = 2001 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZone.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZone.msg new file mode 100644 index 000000000..d6fc16a0f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZone.msg @@ -0,0 +1,76 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ProtectedCommunicationZone ::= SEQUENCE { +# protectedZoneType ProtectedZoneType, +# expiryTime TimestampIts OPTIONAL, +# protectedZoneLatitude Latitude, +# protectedZoneLongitude Longitude, +# protectedZoneRadius ProtectedZoneRadius OPTIONAL, +# protectedZoneId ProtectedZoneId OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF describes a zone of protection inside which the ITS communication should be restricted. +# * +# * It shall include the following components: +# * +# * @field protectedZoneType: type of the protected zone. +# * +# * @field expiryTime: optional time at which the validity of the protected communication zone will expire. +# * +# * @field protectedZoneLatitude: latitude of the centre point of the protected communication zone. +# * +# * @field protectedZoneLongitude: longitude of the centre point of the protected communication zone. +# * +# * @field protectedZoneRadius: optional radius of the protected communication zone in metres. +# * +# * @field protectedZoneId: the optional ID of the protected communication zone. +# * +# * @note: A protected communication zone may be defined around a CEN DSRC road side equipment. +# * +# * @category: Infrastructure information, Communication information +# * @revision: revised in V2.1.1 (changed protectedZoneID to protectedZoneId) +# + +ProtectedZoneType protected_zone_type + +TimestampIts expiry_time +bool expiry_time_is_present + +Latitude protected_zone_latitude + +Longitude protected_zone_longitude + +ProtectedZoneRadius protected_zone_radius +bool protected_zone_radius_is_present + +ProtectedZoneId protected_zone_id +bool protected_zone_id_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZonesRSU.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZonesRSU.msg new file mode 100644 index 000000000..fff87e848 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZonesRSU.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of @ref ProtectedCommunicationZone provided by a road side ITS-S (Road Side Unit RSU). +# * +# * It may provide up to 16 protected communication zones information. +# * +# * @category: Infrastructure information, Communication information +# * @revision: V1.3.1 +# + +ProtectedCommunicationZone[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneId.msg new file mode 100644 index 000000000..c31c6b071 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneId.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ProtectedZoneId ::= INTEGER (0.. 134217727) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the indentifier of a protected communication zone. +# * +# * +# * @category: Infrastructure information, Communication information +# * @revision: Revision in V2.1.1 (changed name from ProtectedZoneID to ProtectedZoneId) +# + +uint32 value +uint32 MIN = 0 +uint32 MAX = 134217727 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneRadius.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneRadius.msg new file mode 100644 index 000000000..1ac4ed9af --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneRadius.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ProtectedZoneRadius ::= INTEGER (1..255,...) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the radius of a protected communication zone. +# * +# * +# * @unit: metre +# * @category: Infrastructure information, Communication information +# * @revision: V1.3.1 +# + +int64 value +int64 MIN = 1 +int64 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneType.msg new file mode 100644 index 000000000..3340c3f04 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneType.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ProtectedZoneType::= ENUMERATED { +# permanentCenDsrcTolling (0), +# ..., +# temporaryCenDsrcTolling (1) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the type of a protected communication zone, so that an ITS-S is aware of the actions to do +# * while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). +# * +# * The protected zone type is defined in ETSI TS 102 792 [14]. +# * +# * +# * @category: Communication information +# * @revision: V1.3.1 +# + +uint8 value +uint8 PERMANENT_CEN_DSRC_TOLLING = 0 +# .extended +uint8 TEMPORARY_CEN_DSRC_TOLLING = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Provider.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Provider.msg new file mode 100644 index 000000000..4a78b9fb2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Provider.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Provider ::= SEQUENCE { +# countryCode CountryCode, +# providerIdentifier IssuerIdentifier +# } +# ------------------------------------------------------------------------------ +# * +# * This DF identifies an organization. +# * +# * It shall include the following components: +# * +# * @field countryCode: represents the country code that identifies the country of the national registration administrator for issuers according to ISO 14816. +# * +# * @field providerIdentifier: identifies the organization according to the national ISO 14816 register for issuers. +# * +# * @note: See https://www.itsstandards.eu/registries/register-of-nra-i-cs1/ for a list of national registration administrators and their respective registers +# * +# * @category: Communication information +# * @revision: Created in V2.2.1 based on ISO 17573-3 [24] +# + +CountryCode country_code + +IssuerIdentifier provider_identifier + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivation.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivation.msg new file mode 100644 index 000000000..98c57ea06 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivation.msg @@ -0,0 +1,68 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PtActivation ::= SEQUENCE { +# ptActivationType PtActivationType, +# ptActivationData PtActivationData +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents activation data for real-time systems designed for operations control, traffic light priorities, track switches, barriers, etc. +# * using a range of activation devices equipped in public transport vehicles. +# * +# * The activation of the corresponding equipment is triggered by the approach or passage of a public transport +# * vehicle at a certain point (e.g. a beacon). +# * +# * @field ptActivationType: type of activation. +# * +# * @field ptActicationData: data of activation. +# * +# * Today there are different payload variants defined for public transport activation-data. The R09.x is one of +# * the industry standard used by public transport vehicles (e.g. buses, trams) in Europe (e.g. Germany Austria) +# * for controlling traffic lights, barriers, bollards, etc. This DF shall include information like route, course, +# * destination, priority, etc. +# * +# * The R09.x content is defined in VDV recommendation 420 [7]. It includes following information: +# * - Priority Request Information (pre-request, request, ready to start) +# * - End of Prioritization procedure +# * - Priority request direction +# * - Public Transport line number +# * - Priority of public transport +# * - Route line identifier of the public transport +# * - Route number identification +# * - Destination of public transport vehicle +# * +# * Other countries may use different message sets defined by the local administration. +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +PtActivationType pt_activation_type + +PtActivationData pt_activation_data + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationData.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationData.msg new file mode 100644 index 000000000..cb95734fe --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationData.msg @@ -0,0 +1,46 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PtActivationData ::= OCTET STRING (SIZE(1..20)) +# ------------------------------------------------------------------------------ +# * +# * This DE is used for various tasks in the public transportation environment, especially for controlling traffic +# * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_"). +# * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation +# * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the +# * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to +# * traffic congestion. Other usage of the DE is the provision of information like the public transport line number +# * or the schedule delay of a public transport vehicle. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +uint8[] value +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 20 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationType.msg new file mode 100644 index 000000000..d5177c12a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationType.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PtActivationType ::= INTEGER { +# undefinedCodingType (0), +# r09-16CodingType (1), +# vdv-50149CodingType (2) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates a certain coding type of the PtActivationData data. +# * +# * The folowing value are specified: +# * - 0 `undefinedCodingType` : undefined coding type, +# * - 1 `r09-16CodingType` : coding of PtActivationData conform to VDV recommendation 420 [7], +# * - 2 `vdv-50149CodingType` : coding of PtActivationData based on VDV recommendation 420 [7]. +# * - 3 - 255 : reserved for alternative and future use. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNDEFINED_CODING_TYPE = 0 +uint8 R09_16_CODING_TYPE = 1 +uint8 VDV_50149_CODING_TYPE = 2 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PublicTransportContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PublicTransportContainer.msg new file mode 100644 index 000000000..bff113107 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PublicTransportContainer.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PublicTransportContainer ::= SEQUENCE { +# embarkationStatus EmbarkationStatus, +# ptActivation PtActivation OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Public Transport Container. +#* +#* It shall include the following components: +#* +#* @field embarkationStatus: It indicates whether the passenger embarkation is currently ongoing. +#* +#* @field ptActivation: an optional component used for controlling traffic lights, barriers, bollards, etc. +# + +EmbarkationStatus embarkation_status + +PtActivation pt_activation +bool pt_activation_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RSUContainerHighFrequency.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RSUContainerHighFrequency.msg new file mode 100644 index 000000000..27f4fefd2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RSUContainerHighFrequency.msg @@ -0,0 +1,47 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RSUContainerHighFrequency ::= SEQUENCE { +# protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the RSU Container High Frequency. +#* +#* It shall include the following components: +#* +#* @field protectedCommunicationZonesRSU: an optional Information about position of a CEN DSRC Tolling Station operating in the 5,8 GHz frequency +#* band. If this information is provided by RSUs a receiving vehicle ITS-S is prepared to adopt mitigation techniques when being in the vicinity of +#* CEN DSRC tolling stations. +# +# + +ProtectedCommunicationZonesRSU protected_communication_zones_rsu +bool protected_communication_zones_rsu_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShape.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShape.msg new file mode 100644 index 000000000..403657d5a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShape.msg @@ -0,0 +1,81 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RadialShape ::= SEQUENCE { +# shapeReferencePoint CartesianPosition3d OPTIONAL, +# range StandardLength12b, +# horizontalOpeningAngleStart CartesianAngleValue, +# horizontalOpeningAngleEnd CartesianAngleValue, +# verticalOpeningAngleStart CartesianAngleValue OPTIONAL, +# verticalOpeningAngleEnd CartesianAngleValue OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF describes a radial shape. The circular or spherical sector is constructed by sweeping +# * the provided range about the reference position specified outside of the context of this DF or +# * about the optional shapeReferencePoint. The range is swept between a horizontal start and a +# * horizontal end angle in the X-Y plane of a cartesian coordinate system specified outside of the +# * context of this DF, in a right-hand positive angular direction w.r.t. the x-axis. +# * A vertical opening angle in the X-Z plane may optionally be provided in a right-hand positive +# * angular direction w.r.t. the x-axis. +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: the optional reference point used for the definition of the shape, +# * relative to an externally specified reference position. If this component is absent, the +# * externally specified reference position represents the shape's reference point. +# * +# * @field range: the radial range of the shape from the shape's reference point. +# * +# * @field horizontalOpeningAngleStart: the start of the shape's horizontal opening angle. +# * +# * @field horizontalOpeningAngleEnd: the end of the shape's horizontal opening angle. +# * +# * @field verticalOpeningAngleStart: optional start of the shape's vertical opening angle. +# * +# * @field verticalOpeningAngleEnd: optional end of the shape's vertical opening angle. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1, names and types of the horizontal opening angles changed, constraint added and description revised in V2.2.1 +# + +CartesianPosition3d shape_reference_point +bool shape_reference_point_is_present + +StandardLength12b range + +CartesianAngleValue horizontal_opening_angle_start + +CartesianAngleValue horizontal_opening_angle_end + +CartesianAngleValue vertical_opening_angle_start +bool vertical_opening_angle_start_is_present + +CartesianAngleValue vertical_opening_angle_end +bool vertical_opening_angle_end_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapeDetails.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapeDetails.msg new file mode 100644 index 000000000..b503f0f55 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapeDetails.msg @@ -0,0 +1,72 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RadialShapeDetails ::= SEQUENCE { +# range StandardLength12b, +# horizontalOpeningAngleStart CartesianAngleValue, +# horizontalOpeningAngleEnd CartesianAngleValue, +# verticalOpeningAngleStart CartesianAngleValue OPTIONAL, +# verticalOpeningAngleEnd CartesianAngleValue OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF describes radial shape details. The circular sector or cone is +# * constructed by sweeping the provided range about the position specified outside of the +# * context of this DF. The range is swept between a horizontal start and a horizontal end angle in +# * the X-Y plane of a right-hand cartesian coordinate system specified outside of the context of +# * this DF, in positive angular direction w.r.t. the x-axis. A vertical opening angle in the X-Z +# * plane may optionally be provided in positive angular direction w.r.t. the x-axis. +# * +# * It shall include the following components: +# * +# * @field range: the radial range of the sensor from the reference point or sensor point offset. +# * +# * @field horizontalOpeningAngleStart: the start of the shape's horizontal opening angle. +# * +# * @field horizontalOpeningAngleEnd: the end of the shape's horizontal opening angle. +# * +# * @field verticalOpeningAngleStart: optional start of the shape's vertical opening angle. +# * +# * @field verticalOpeningAngleEnd: optional end of the shape's vertical opening angle. +# * +# * @category: Georeference information +# * @revision: created in V2.1.1, description revised and constraint added in V2.2.1 +# + +StandardLength12b range + +CartesianAngleValue horizontal_opening_angle_start + +CartesianAngleValue horizontal_opening_angle_end + +CartesianAngleValue vertical_opening_angle_start +bool vertical_opening_angle_start_is_present + +CartesianAngleValue vertical_opening_angle_end +bool vertical_opening_angle_end_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapes.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapes.msg new file mode 100644 index 000000000..de79877bf --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapes.msg @@ -0,0 +1,68 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RadialShapes ::= SEQUENCE { +# refPointId Identifier1B, +# xCoordinate CartesianCoordinateSmall, +# yCoordinate CartesianCoordinateSmall, +# zCoordinate CartesianCoordinateSmall OPTIONAL, +# radialShapesList RadialShapesList +# } +# ------------------------------------------------------------------------------ +# * +# * This DF describes a list of radial shapes positioned w.r.t. to an offset position defined +# * relative to a reference position specified outside of the context of this DF and oriented w.r.t. +# * a cartesian coordinate system specified outside of the context of this DF. +# * +# * It shall include the following components: +# * +# * @field refPointId: the identification of the reference point in case of a sensor mounted to trailer. Defaults to ITS ReferencePoint (0). +# * +# * @field xCoordinate: the x-coordinate of the offset position. +# * +# * @field yCoordinate: the y-coordinate of the offset position. +# * +# * @field zCoordinate: the optional z-coordinate of the offset position. +# * +# * @field radialShapesList: the list of radial shape details. +# * +# * @category: Georeference information +# * @revision: created in V2.1.1, description revised in V2.2.1 +# + +Identifier1B ref_point_id + +CartesianCoordinateSmall x_coordinate + +CartesianCoordinateSmall y_coordinate + +CartesianCoordinateSmall z_coordinate +bool z_coordinate_is_present + +RadialShapesList radial_shapes_list + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapesList.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapesList.msg new file mode 100644 index 000000000..9eadfbd04 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RadialShapesList.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RadialShapesList ::= SEQUENCE SIZE(1..16,...) OF RadialShapeDetails +# ------------------------------------------------------------------------------ +# * +# * The DF contains a list of @ref RadialShapeDetails. +# * +# * @category: Georeference information +# * @revision: created in V2.1.1 +# + +RadialShapeDetails[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RailwayLevelCrossingSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RailwayLevelCrossingSubCauseCode.msg new file mode 100644 index 000000000..b4b220689 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RailwayLevelCrossingSubCauseCode.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RailwayLevelCrossingSubCauseCode ::= INTEGER { +# unavailable (0), +# doNotCrossAbnormalSituation (1), +# closed (2), +# unguarded (3), +# nominal (4) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `railwayLevelCrossing` . +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case no further detailed information on the railway level crossing status is available, +# * - 1 `doNotCrossAbnormalSituation` - in case when something wrong is detected by equation or sensors of the railway level crossing, +# including level crossing is closed for too long (e.g. more than 10 minutes long ; default value), +# * - 2 `closed` - in case the crossing is closed (barriers down), +# * - 3 `unguarded` - in case the level crossing is unguarded (i.e a Saint Andrew cross level crossing without detection of train), +# * - 4 `nominal` - in case the barriers are up and lights are off. +# * - 5-255: reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 DO_NOT_CROSS_ABNORMAL_SITUATION = 1 +uint8 CLOSED = 2 +uint8 UNGUARDED = 3 +uint8 NOMINAL = 4 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RectangularShape.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RectangularShape.msg new file mode 100644 index 000000000..517b256df --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RectangularShape.msg @@ -0,0 +1,75 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RectangularShape ::= SEQUENCE { +# shapeReferencePoint CartesianPosition3d OPTIONAL, +# semiLength StandardLength12b, +# semiBreadth StandardLength12b, +# orientation CartesianAngleValue OPTIONAL, +# height StandardLength12b OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the shape of a rectangular area or a right rectangular prism that is centred +# * on a reference position defined outside of the context of this DF and oriented w.r.t. a cartesian +# * coordinate system defined outside of the context of this DF. +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: represents an optional offset point which the rectangle is centred on with +# * respect to the reference position. If this component is absent, the externally specified +# * reference position represents the shape's reference point. +# * +# * @field semiLength: represents half the length of the rectangle located in the X-Y Plane. +# * +# * @field semiBreadth: represents half the breadth of the rectangle located in the X-Y Plane. +# * +# * @field orientation: represents the optional orientation of the length of the rectangle, +# * measured with positive values turning around the Z-axis using the right-hand rule, starting from +# * the X-axis. +# * +# * @field height: represents the optional height, present if the shape is a right rectangular prism +# * with height extending in the positive Z-axis. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1, centerPoint renamed to shapeReferencePoint, the type of the field orientation changed and description revised in V2.2.1 +# + +CartesianPosition3d shape_reference_point +bool shape_reference_point_is_present + +StandardLength12b semi_length + +StandardLength12b semi_breadth + +CartesianAngleValue orientation +bool orientation_is_present + +StandardLength12b height +bool height_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePosition.msg new file mode 100644 index 000000000..53fe17788 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePosition.msg @@ -0,0 +1,61 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ReferencePosition ::= SEQUENCE { +# latitude Latitude, +# longitude Longitude, +# positionConfidenceEllipse PosConfidenceEllipse, +# altitude Altitude +# } +# ------------------------------------------------------------------------------ +# * +# * A position within a geographic coordinate system together with a confidence ellipse. +# * +# * It shall include the following components: +# * +# * @field latitude: the latitude of the geographical point. +# * +# * @field longitude: the longitude of the geographical point. +# * +# * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. +# * +# * @field altitude: the altitude and an altitude accuracy of the geographical point. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref ReferencePositionWithConfidence instead. +# * @category: GeoReference information +# * @revision: description updated in V2.1.1 +# + +Latitude latitude + +Longitude longitude + +PosConfidenceEllipse position_confidence_ellipse + +Altitude altitude + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePositionWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePositionWithConfidence.msg new file mode 100644 index 000000000..bd7968edf --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePositionWithConfidence.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ReferencePositionWithConfidence ::= SEQUENCE { +# latitude Latitude, +# longitude Longitude, +# positionConfidenceEllipse PositionConfidenceEllipse, +# altitude Altitude +# } +# ------------------------------------------------------------------------------ +# * +# * A position within a geographic coordinate system together with a confidence ellipse. +# * +# * It shall include the following components: +# * +# * @field latitude: the latitude of the geographical point. +# * +# * @field longitude: the longitude of the geographical point. +# * +# * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. +# * +# * @field altitude: the altitude and an altitude accuracy of the geographical point. +# * +# * @category: GeoReference information +# * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse. +# + +Latitude latitude + +Longitude longitude + +PositionConfidenceEllipse position_confidence_ellipse + +Altitude altitude + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RelevanceDistance.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RelevanceDistance.msg new file mode 100644 index 000000000..c344b3a49 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RelevanceDistance.msg @@ -0,0 +1,68 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RelevanceDistance ::= ENUMERATED { +# lessThan50m(0), +# lessThan100m(1), +# lessThan200m(2), +# lessThan500m(3), +# lessThan1000m(4), +# lessThan5km(5), +# lessThan10km(6), +# over10km(7) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE describes a distance of relevance for information indicated in a message. +# * +# * The value shall be set to: +# * - 0 `lessThan50m` - for distances below 50 m, +# * - 1 `lessThan100m` - for distances below 100 m, +# * - 2 `lessThan200m` - for distances below 200 m, +# * - 3 `lessThan500m` - for distances below 300 m, +# * - 4 `lessThan1000m` - for distances below 1 000 m, +# * - 5 `lessThan5km` - for distances below 5 000 m, +# * - 6 `lessThan10km` - for distances below 10 000 m, +# * - 7 `over10km` - for distances over 10 000 m. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StandardLength3b instead. +# * +# * @category: GeoReference information +# * @revision: Editorial update in V2.1.1 +# + +uint8 value +uint8 LESS_THAN50M = 0 +uint8 LESS_THAN100M = 1 +uint8 LESS_THAN200M = 2 +uint8 LESS_THAN500M = 3 +uint8 LESS_THAN1000M = 4 +uint8 LESS_THAN5KM = 5 +uint8 LESS_THAN10KM = 6 +uint8 OVER10KM = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RelevanceTrafficDirection.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RelevanceTrafficDirection.msg new file mode 100644 index 000000000..479f032bc --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RelevanceTrafficDirection.msg @@ -0,0 +1,61 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RelevanceTrafficDirection ::= ENUMERATED { +# allTrafficDirections(0), +# upstreamTraffic(1), +# downstreamTraffic(2), +# oppositeTraffic(3) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates a traffic direction that is relevant to information indicated in a message. +# * +# * The value shall be set to: +# * - 0 `allTrafficDirections` - for all traffic directions, +# * - 1 `upstreamTraffic` - for upstream traffic, +# * - 2 `downstreamTraffic` - for downstream traffic, +# * - 3 `oppositeTraffic` - for traffic in the opposite direction. +# * +# * The terms `upstream`, `downstream` and `oppositeTraffic` are relative to the event position. +# * +# * @note: Upstream traffic corresponds to the incoming traffic towards the event position, +# * and downstream traffic to the departing traffic away from the event position. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficDirection instead. +# * +# * @category: GeoReference information +# * @revision: Editorial update in V2.1.1 +# + +uint8 value +uint8 ALL_TRAFFIC_DIRECTIONS = 0 +uint8 UPSTREAM_TRAFFIC = 1 +uint8 DOWNSTREAM_TRAFFIC = 2 +uint8 OPPOSITE_TRAFFIC = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RequestResponseIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RequestResponseIndication.msg new file mode 100644 index 000000000..715e45535 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RequestResponseIndication.msg @@ -0,0 +1,49 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RequestResponseIndication ::= ENUMERATED { +# request (0), +# response (1) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates whether an ITS message is transmitted as request from ITS-S or a response transmitted from +# * ITS-S after receiving request from other ITS-Ss. +# * +# * The value shall be set to: +# * - 0 `request` - for a request message, +# * - 1 `response` - for a response message. +# * +# * @category Communication information +# * @revision: Editorial update in V2.1.1 +# + +uint8 value +uint8 REQUEST = 0 +uint8 RESPONSE = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueAndRecoveryWorkInProgressSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueAndRecoveryWorkInProgressSubCauseCode.msg new file mode 100644 index 000000000..c1d590066 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueAndRecoveryWorkInProgressSubCauseCode.msg @@ -0,0 +1,69 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER { +# unavailable (0), +# emergencyVehicles (1), +# rescueHelicopterLanding (2), +# policeActivityOngoing (3), +# medicalEmergencyOngoing (4), +# childAbductionInProgress (5), +# prioritizedVehicle (6), +# rescueAndRecoveryVehicle (7) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `rescueAndRecoveryWorkInProgress` +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on rescue and recovery work is unavailable, +# * - 1 `emergencyVehicles` - in case rescue and/or safeguarding work is ongoing by emergency vehicles, i.e. by vehicles that have the absolute right of way, +# * - 2 `rescueHelicopterLanding` - in case rescue helicopter is landing, +# * - 3 `policeActivityOngoing` - in case police activity is ongoing (only to be used if a more specific sub cause than (1) is needed), +# * - 4 `medicalEmergencyOngoing` - in case medical emergency recovery is ongoing (only to be used if a more specific sub cause than (1) is needed), +# * - 5 `childAbductionInProgress` - in case a child kidnapping alarm is activated and rescue work is ongoing (only to be used if a more specific sub cause than (1) is needed), +# * - 6 `prioritizedVehicle` - in case rescue and/or safeguarding work is ongoing by prioritized vehicles, i.e. by vehicles that have priority but not the absolute right of way, +# * - 7 `rescueAndRecoveryVehicle` - in case technical rescue work is ongoing by rescue and recovery vehicles. +# * - 8-255: reserved for future usage. +# +# * +# * @category: Traffic information +# * @revision: V1.3.1, named values 6 and 7 added in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 EMERGENCY_VEHICLES = 1 +uint8 RESCUE_HELICOPTER_LANDING = 2 +uint8 POLICE_ACTIVITY_ONGOING = 3 +uint8 MEDICAL_EMERGENCY_ONGOING = 4 +uint8 CHILD_ABDUCTION_IN_PROGRESS = 5 +uint8 PRIORITIZED_VEHICLE = 6 +uint8 RESCUE_AND_RECOVERY_VEHICLE = 7 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueContainer.msg new file mode 100644 index 000000000..78c7edce6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueContainer.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RescueContainer ::= SEQUENCE { +# lightBarSirenInUse LightBarSirenInUse +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Rescue Container. +#* +#* It shall include the following components: +#* +#* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +# + +LightBarSirenInUse light_bar_siren_in_use + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RestrictedTypes.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RestrictedTypes.msg new file mode 100644 index 000000000..d51e6b5ef --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RestrictedTypes.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of @ref StationType. to which a certain traffic restriction, e.g. the speed limit, applies. +# * +# * @category: Infrastructure information, Traffic information +# * @revision: V1.3.1 +# + +StationType[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadConfigurationSection.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadConfigurationSection.msg new file mode 100644 index 000000000..597622a9f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadConfigurationSection.msg @@ -0,0 +1,64 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadConfigurationSection ::= SEQUENCE { +# roadSectionDefinition RoadSectionDefinition, +# roadType RoadType OPTIONAL, +# laneConfiguration BasicLaneConfiguration OPTIONAL, +# mapemConfiguration MapemConfiguration OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides configuration information about a road section. +# * +# * It shall include the following components: +# * +# * @field roadSectionDefinition: the topological definition of the road section for which the information in the other components applies throughout its entire length. +# * +# * @field roadType: the optional type of road on which the section is located. +# * +# * @field laneConfiguration: the optional configuration of the road section in terms of basic information per lane. +# * +# * @field mapemConfiguration: the optional configuration of the road section in terms of MAPEM lanes or connections. +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +RoadSectionDefinition road_section_definition + +RoadType road_type +bool road_type_is_present + +BasicLaneConfiguration lane_configuration +bool lane_configuration_is_present + +MapemConfiguration mapem_configuration +bool mapem_configuration_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadConfigurationSectionList.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadConfigurationSectionList.msg new file mode 100644 index 000000000..4bd6b0210 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadConfigurationSectionList.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadConfigurationSectionList::= SEQUENCE (SIZE(1..8,...)) OF RoadConfigurationSection +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of @ref RoadConfigurationSection. +# * +# * @category: Road Topology information +# * @revision: Created in V2.2.1 +# + +RoadConfigurationSection[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSectionDefinition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSectionDefinition.msg new file mode 100644 index 000000000..e2d67fdee --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSectionDefinition.msg @@ -0,0 +1,79 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadSectionDefinition::= SEQUENCE { +# startingPointSection GeoPosition, +# lengthOfSection StandardLength2B OPTIONAL, +# endingPointSection GeoPosition OPTIONAL, +# connectedPaths PathReferences, +# includedPaths PathReferences, +# isEventZoneIncluded BOOLEAN, +# isEventZoneConnected BOOLEAN, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides the basic topological definition of a road section. +# * +# * It shall include the following components: +# * +# * @field startingPointSection: the position of the starting point of the section. +# * +# * @field lengthOfSection: the optional length of the section along the road profile (i.e. including curves). +# * +# * @field endingPointSection: the optional position of the ending point of the section. +# * If this component is absent, the ending position is implicitly defined by other means, e.g. the starting point of the next RoadConfigurationSection, or the section�s length. +# * +# * @field connectedPaths: the identifier(s) of the path(s) having one or an ordered subset of waypoints located upstream of the RoadConfigurationSection� starting point. +# * +# * @field includedPaths: the identifier(s) of the path(s) that covers (either with all its length or with a part of it) a RoadConfigurationSection. +# * +# * @field isEventZoneIncluded: indicates, if set to TRUE, that the @ref EventZone incl. its reference position covers a RoadConfigurationSection (either with all its length or with a part of it). +# * +# * @field isEventZoneConnected: indicates, if set to TRUE, that the @ref EventZone incl. its reference position has one or an ordered subset of waypoints located upstream of the RoadConfigurationSection� starting point. +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +GeoPosition starting_point_section + +StandardLength2B length_of_section +bool length_of_section_is_present + +GeoPosition ending_point_section +bool ending_point_section_is_present + +PathReferences connected_paths + +PathReferences included_paths + +bool is_event_zone_included + +bool is_event_zone_connected + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSectionId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSectionId.msg new file mode 100644 index 000000000..bc564e41e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSectionId.msg @@ -0,0 +1,45 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadSectionId::= INTEGER (0..8, ...) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates an ordinal number that represents the position of a component in the list @ref RoadConfigurationSectionList. +# * +# * The value shall be set to: +# * - `0` - if no road section is identified +# * - `1..8` - for instances 1..8 of @ref RoadConfigurationSectionList +# * +# * @category: Road topology information +# * @revision: Created in V2.2.1 +# + +int64 value +int64 MIN = 0 +int64 MAX = 8 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSegmentReferenceId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSegmentReferenceId.msg new file mode 100644 index 000000000..ac5b22576 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadSegmentReferenceId.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadSegmentReferenceId ::= SEQUENCE { +# region Identifier2B OPTIONAL, +# id Identifier2B +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a unique id for a road segment +# * +# * It shall include the following components: +# * +# * @field region: the optional identifier of the entity that is responsible for the region in which the road segment is placed. +# * It is the duty of that entity to guarantee that the @ref Id is unique within the region. +# * +# * @field id: the identifier of the road segment. +# * +# * @note: when the component region is present, the RoadSegmentReferenceId is guaranteed to be globally unique. +# * @category: GeoReference information +# * @revision: created in V2.1.1 +# + +Identifier2B region +bool region_is_present + +Identifier2B id + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadType.msg new file mode 100644 index 000000000..540445459 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadType.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadType ::= ENUMERATED { +# urban-NoStructuralSeparationToOppositeLanes (0), +# urban-WithStructuralSeparationToOppositeLanes (1), +# nonUrban-NoStructuralSeparationToOppositeLanes (2), +# nonUrban-WithStructuralSeparationToOppositeLanes (3) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the type of a road segment. +# * +# * The value shall be set to: +# * - 0 `urban-NoStructuralSeparationToOppositeLanes` - for an urban road with no structural separation between lanes carrying traffic in opposite directions, +# * - 1 `urban-WithStructuralSeparationToOppositeLanes` - for an urban road with structural separation between lanes carrying traffic in opposite directions, +# * - 2 `nonUrban-NoStructuralSeparationToOppositeLanes` - for an non urban road with no structural separation between lanes carrying traffic in opposite directions, +# * - 3 `nonUrban-WithStructuralSeparationToOppositeLanes` - for an non urban road with structural separation between lanes carrying traffic in opposite directions. +# * +# * @category: Road Topology Information +# * @revision: Editorial update in V2.1.1 +# + +uint8 value +uint8 URBAN_NO_STRUCTURAL_SEPARATION_TO_OPPOSITE_LANES = 0 +uint8 URBAN_WITH_STRUCTURAL_SEPARATION_TO_OPPOSITE_LANES = 1 +uint8 NON_URBAN_NO_STRUCTURAL_SEPARATION_TO_OPPOSITE_LANES = 2 +uint8 NON_URBAN_WITH_STRUCTURAL_SEPARATION_TO_OPPOSITE_LANES = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadWorksContainerBasic.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadWorksContainerBasic.msg new file mode 100644 index 000000000..990999be8 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadWorksContainerBasic.msg @@ -0,0 +1,57 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadWorksContainerBasic ::= SEQUENCE { +# roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, +# lightBarSirenInUse LightBarSirenInUse, +# closedLanes ClosedLanes OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Road Works Container Basic. +#* +#* It shall include the following components: +#* +#* @field roadworksSubCauseCode: The optional component, in case the originating ITS-S is mounted to a vehicle ITS-S participating to roadwork. It +#* provides information on the type of roadwork that it is currently undertaking. This component shall be present if the data is available in +#* originating ITS S. +#* +#* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +#* +#* @field closedLanes: an optional component which provides information about the opening/closure status of the lanes ahead. Lanes are counted from +#* the outside boarder of the road. If a lane is closed to traffic, the corresponding bit shall be set to 1. +# + +RoadworksSubCauseCode roadworks_sub_cause_code +bool roadworks_sub_cause_code_is_present + +LightBarSirenInUse light_bar_siren_in_use + +ClosedLanes closed_lanes +bool closed_lanes_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadworksSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadworksSubCauseCode.msg new file mode 100644 index 000000000..cd9b94d7f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadworksSubCauseCode.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadworksSubCauseCode ::= INTEGER { +# unavailable (0), +# majorRoadworks (1), +# roadMarkingWork (2), +# slowMovingRoadMaintenance (3), +# shortTermStationaryRoadworks (4), +# streetCleaning (5), +# winterService (6) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`. +# * +#The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on roadworks is unavailable, +# * - 1 `majorRoadworks` - in case a major roadworks is ongoing, +# * - 2 `roadMarkingWork` - in case a road marking work is ongoing, +# * - 3 `slowMovingRoadMaintenance` - in case slow moving road maintenance work is ongoing, +# * - 4 `shortTermStationaryRoadworks`- in case a short term stationary roadwork is ongoing, +# * - 5 `streetCleaning` - in case a vehicle street cleaning work is ongoing, +# * - 6 `winterService` - in case winter service work is ongoing. +# * - 7-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 MAJOR_ROADWORKS = 1 +uint8 ROAD_MARKING_WORK = 2 +uint8 SLOW_MOVING_ROAD_MAINTENANCE = 3 +uint8 SHORT_TERM_STATIONARY_ROADWORKS = 4 +uint8 STREET_CLEANING = 5 +uint8 WINTER_SERVICE = 6 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafeDistanceIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafeDistanceIndication.msg new file mode 100644 index 000000000..59ed7f295 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafeDistanceIndication.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SafeDistanceIndication ::= SEQUENCE { +# subjectStation StationId OPTIONAL, +# safeDistanceIndicator SafeDistanceIndicator, +# timeToCollision DeltaTimeTenthOfSecond OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides the safe distance indication of a traffic participant with other traffic participant(s). +# * +# * It shall include the following components: +# * +# * @field subjectStation: optionally indicates one "other" traffic participant identified by its ITS-S. +# * +# * @field safeDistanceIndicator: indicates whether the distance between the ego ITS-S and the traffic participant(s) is safe. +# * If subjectStation is present then it indicates whether the distance between the ego ITS-S and the traffic participant indicated in the component subjectStation is safe. +# * +# * @field timeToCollision: optionally indicated the time-to-collision calculated as sqrt(LaDi^2 + LoDi^2 + VDi^2/relative speed +# * and represented in the nearest 100 ms. This component may be present only if subjectStation is present. +# * +# * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) +# * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). +# * +# * @category: Traffic information, Kinematic information +# * @revision: created in V2.1.1 +# + +StationId subject_station +bool subject_station_is_present + +SafeDistanceIndicator safe_distance_indicator + +DeltaTimeTenthOfSecond time_to_collision +bool time_to_collision_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafeDistanceIndicator.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafeDistanceIndicator.msg new file mode 100644 index 000000000..7789a8c10 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafeDistanceIndicator.msg @@ -0,0 +1,46 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SafeDistanceIndicator::= BOOLEAN +# ------------------------------------------------------------------------------ +# * +# * This DE indicates if a distance is safe. +# * +# * The value shall be set to: +# * - `FALSE` if the triple {LaD, LoD, VD} < {MSLaD, MSLoD, MSVD} is simultaneously satisfied with confidence level of 90 % or more, +# * - `TRUE` otherwise. +# * +# * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) +# * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). +# * +# * @category: Traffic information, Kinematic information +# * @revision: created in V2.1.1 +# + +bool value + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafetyCarContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafetyCarContainer.msg new file mode 100644 index 000000000..2d822fc33 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafetyCarContainer.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SafetyCarContainer ::= SEQUENCE { +# lightBarSirenInUse LightBarSirenInUse, +# incidentIndication CauseCodeV2 OPTIONAL, +# trafficRule TrafficRule OPTIONAL, +# speedLimit SpeedLimit OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Safety Car Container. +#* +#* It shall include the following components: +#* +#* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +#* +#* @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. +#* +#* @field trafficRule: an optional rule indicates whether vehicles are allowed to overtake a safety car that is originating this CAM. +#* +#* @field speedLimit: an optional speed indicates whether a speed limit is applied to vehicles following the safety car. +# + +LightBarSirenInUse light_bar_siren_in_use + +CauseCodeV2 incident_indication +bool incident_indication_is_present + +TrafficRule traffic_rule +bool traffic_rule_is_present + +SpeedLimit speed_limit +bool speed_limit_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SemiAxisLength.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SemiAxisLength.msg new file mode 100644 index 000000000..9ca2696bc --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SemiAxisLength.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SemiAxisLength ::= INTEGER{ +# doNotUse (0), +# outOfRange (4094), +# unavailable (4095) +# } (0..4095) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 4095 +uint16 DO_NOT_USE = 0 +uint16 OUT_OF_RANGE = 4094 +uint16 UNAVAILABLE = 4095 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SensorType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SensorType.msg new file mode 100644 index 000000000..0f151b8a1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SensorType.msg @@ -0,0 +1,86 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SensorType ::= INTEGER { +# undefined (0), +# radar (1), +# lidar (2), +# monovideo (3), +# stereovision (4), +# nightvision (5), +# ultrasonic (6), +# pmd (7), +# inductionLoop (8), +# sphericalCamera (9), +# uwb (10), +# acoustic (11), +# localAggregation (12), +# itsAggregation (13) +# } (0..31) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the type of sensor. +# * +# * The value shall be set to: +# * - 0 `undefined` - in case the sensor type is undefined. +# * - 1 `radar` - in case the sensor is a radar, +# * - 2 `lidar` - in case the sensor is a lidar, +# * - 3 `monovideo` - in case the sensor is mono video, +# * - 4 `stereovision` - in case the sensor is stereo vision, +# * - 5 `nightvision` - in case the sensor is night vision, +# * - 6 `ultrasonic` - in case the sensor is ultrasonic, +# * - 7 `pmd` - in case the sensor is photonic mixing device, +# * - 8 `inductionLoop` - in case the sensor is an induction loop, +# * - 9 `sphericalCamera` - in case the sensor is a spherical camera, +# * - 10 `uwb` - in case the sensor is ultra wide band, +# * - 11 `acoustic` - in case the sensor is acoustic, +# * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion, +# * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages. +# * - 14-31 - are reserved for future usage. +# * +# * @category: Sensing Information +# * @revision: created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 31 +uint8 UNDEFINED = 0 +uint8 RADAR = 1 +uint8 LIDAR = 2 +uint8 MONOVIDEO = 3 +uint8 STEREOVISION = 4 +uint8 NIGHTVISION = 5 +uint8 ULTRASONIC = 6 +uint8 PMD = 7 +uint8 INDUCTION_LOOP = 8 +uint8 SPHERICAL_CAMERA = 9 +uint8 UWB = 10 +uint8 ACOUSTIC = 11 +uint8 LOCAL_AGGREGATION = 12 +uint8 ITS_AGGREGATION = 13 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SensorTypes.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SensorTypes.msg new file mode 100644 index 000000000..f55194869 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SensorTypes.msg @@ -0,0 +1,89 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SensorTypes ::= BIT STRING { +# undefined (0), +# radar (1), +# lidar (2), +# monovideo (3), +# stereovision (4), +# nightvision (5), +# ultrasonic (6), +# pmd (7), +# inductionLoop (8), +# sphericalCamera (9), +# uwb (10), +# acoustic (11), +# localAggregation (12), +# itsAggregation (13) +# } (SIZE (16,... )) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the type of sensor(s). +# * The corresponding bit shall be set to 1 under the following conditions: +# * +# * - 0 `undefined` - in case the sensor type is undefined. +# * - 1 `radar` - in case the sensor is a radar, +# * - 2 `lidar` - in case the sensor is a lidar, +# * - 3 `monovideo` - in case the sensor is mono video, +# * - 4 `stereovision` - in case the sensor is stereo vision, +# * - 5 `nightvision` - in case the sensor is night vision, +# * - 6 `ultrasonic` - in case the sensor is ultrasonic, +# * - 7 `pmd` - in case the sensor is photonic mixing device, +# * - 8 `inductionLoop` - in case the sensor is an induction loop, +# * - 9 `sphericalCamera` - in case the sensor is a spherical camera, +# * - 10 `uwb` - in case the sensor is ultra wide band, +# * - 11 `acoustic` - in case the sensor is acoustic, +# * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion, +# * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages. +# * - 14-15 - are reserved for future usage. +# * +# * @note: If all bits are set to 0, then no sensor type is used +# * +# * @category: Sensing Information +# * @revision: created in V2.2.1 +# + +uint8[] value +uint8 bits_unused +int64 MIN_SIZE_BITS = 16 +int64 MAX_SIZE_BITS = 16 +uint8 BIT_INDEX_UNDEFINED = 0 +uint8 BIT_INDEX_RADAR = 1 +uint8 BIT_INDEX_LIDAR = 2 +uint8 BIT_INDEX_MONOVIDEO = 3 +uint8 BIT_INDEX_STEREOVISION = 4 +uint8 BIT_INDEX_NIGHTVISION = 5 +uint8 BIT_INDEX_ULTRASONIC = 6 +uint8 BIT_INDEX_PMD = 7 +uint8 BIT_INDEX_INDUCTION_LOOP = 8 +uint8 BIT_INDEX_SPHERICAL_CAMERA = 9 +uint8 BIT_INDEX_UWB = 10 +uint8 BIT_INDEX_ACOUSTIC = 11 +uint8 BIT_INDEX_LOCAL_AGGREGATION = 12 +uint8 BIT_INDEX_ITS_AGGREGATION = 13 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceNumber.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceNumber.msg new file mode 100644 index 000000000..795cab2c4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceNumber.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SequenceNumber ::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a sequence number. +# * +# * @category: Basic information +# * @revision: V1.3.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfCartesianPosition3d.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfCartesianPosition3d.msg new file mode 100644 index 000000000..4d2dc2e59 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfCartesianPosition3d.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SequenceOfCartesianPosition3d ::= SEQUENCE (SIZE(1..16, ...)) OF CartesianPosition3d +# ------------------------------------------------------------------------------ +# * +# * This DF shall contain a list of DF @ref CartesianPosition3d. +# * +# * @category: GeoReference information +# * @revision: created in V2.1.1 +# + +CartesianPosition3d[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 16 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfIdentifier1B.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfIdentifier1B.msg new file mode 100644 index 000000000..7f89ad16d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfIdentifier1B.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SequenceOfIdentifier1B ::= SEQUENCE SIZE(1..128, ...) OF Identifier1B +# ------------------------------------------------------------------------------ +# * +# * The DF contains a list of DE @ref Identifier1B. +# * +# * @category: Basic information +# * @revision: created in V2.1.1 +# + +Identifier1B[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 128 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfSafeDistanceIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfSafeDistanceIndication.msg new file mode 100644 index 000000000..14d46e2e3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfSafeDistanceIndication.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SequenceOfSafeDistanceIndication ::= SEQUENCE(SIZE(1..8,...)) OF SafeDistanceIndication +# ------------------------------------------------------------------------------ +# * +# * The DF contains a list of DF @ref SafeDistanceIndication. +# * +# * @category: Traffic information, Kinematic information +# * @revision: created in V2.1.1 +# + +SafeDistanceIndication[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfTrajectoryInterceptionIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfTrajectoryInterceptionIndication.msg new file mode 100644 index 000000000..e49adaa3c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SequenceOfTrajectoryInterceptionIndication.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SequenceOfTrajectoryInterceptionIndication ::= SEQUENCE (SIZE(1..8,...)) OF TrajectoryInterceptionIndication +# ------------------------------------------------------------------------------ +# * +# * The DF shall contain a list of DF @ref TrajectoryInterceptionIndication. +# * +# * @category: Traffic information, Kinematic information +# * @revision: created in V2.1.1 +# + +TrajectoryInterceptionIndication[] array +int64 MIN_SIZE = 1 +int64 MAX_SIZE = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Shape.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Shape.msg new file mode 100644 index 000000000..74733dcaa --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Shape.msg @@ -0,0 +1,79 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Shape::= CHOICE { +# rectangular RectangularShape, +# circular CircularShape, +# polygonal PolygonalShape, +# elliptical EllipticalShape, +# radial RadialShape, +# radialShapes RadialShapes, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides the definition of a geographical area or volume, based on different options. +# * +# * It is a choice of the following components: +# * +# * @field rectangular: definition of an rectangular area or a right rectangular prism (with a rectangular base) also called a cuboid, or informally a rectangular box. +# * +# * @field circular: definition of an area of circular shape or a right circular cylinder. +# * +# * @field polygonal: definition of an area of polygonal shape or a right prism. +# * +# * @field elliptical: definition of an area of elliptical shape or a right elliptical cylinder. +# * +# * @field radial: definition of a radial shape. +# * +# * @field radialList: definition of list of radial shapes. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +uint8 choice + +RectangularShape rectangular +uint8 CHOICE_RECTANGULAR = 0 + +CircularShape circular +uint8 CHOICE_CIRCULAR = 1 + +PolygonalShape polygonal +uint8 CHOICE_POLYGONAL = 2 + +EllipticalShape elliptical +uint8 CHOICE_ELLIPTICAL = 3 + +RadialShape radial +uint8 CHOICE_RADIAL = 4 + +RadialShapes radial_shapes +uint8 CHOICE_RADIAL_SHAPES = 5 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SignalViolationSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SignalViolationSubCauseCode.msg new file mode 100644 index 000000000..e39c3d729 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SignalViolationSubCauseCode.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SignalViolationSubCauseCode ::= INTEGER { +# unavailable (0), +# stopSignViolation (1), +# trafficLightViolation (2), +# turningRegulationViolation (3) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`. +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on signal violation event is unavailable, +# * - 1 `stopSignViolation` - in case a stop sign violation is detected, +# * - 2 `trafficLightViolation` - in case a traffic light violation is detected, +# * - 3 `turningRegulationViolation`- in case a turning regulation violation is detected. +# * - 4-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 STOP_SIGN_VIOLATION = 1 +uint8 TRAFFIC_LIGHT_VIOLATION = 2 +uint8 TURNING_REGULATION_VIOLATION = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SlowVehicleSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SlowVehicleSubCauseCode.msg new file mode 100644 index 000000000..a3999fbb1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SlowVehicleSubCauseCode.msg @@ -0,0 +1,72 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SlowVehicleSubCauseCode ::= INTEGER { +# unavailable (0), +# maintenanceVehicle (1), +# vehiclesSlowingToLookAtAccident (2), +# abnormalLoad (3), +# abnormalWideLoad (4), +# convoy (5), +# snowplough (6), +# deicing (7), +# saltingVehicles (8) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle". +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on slow vehicle driving event is +# * unavailable, +# * - 1 `maintenanceVehicle` - in case of a slow driving maintenance vehicle on the road, +# * - 2 `vehiclesSlowingToLookAtAccident`- in case vehicle is temporally slowing down to look at accident, spot, etc., +# * - 3 `abnormalLoad` - in case an abnormal loaded vehicle is driving slowly on the road, +# * - 4 `abnormalWideLoad` - in case an abnormal wide load vehicle is driving slowly on the road, +# * - 5 `convoy` - in case of slow driving convoy on the road, +# * - 6 `snowplough` - in case of slow driving snow plough on the road, +# * - 7 `deicing` - in case of slow driving de-icing vehicle on the road, +# * - 8 `saltingVehicles` - in case of slow driving salting vehicle on the road. +# * - 9-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 MAINTENANCE_VEHICLE = 1 +uint8 VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT = 2 +uint8 ABNORMAL_LOAD = 3 +uint8 ABNORMAL_WIDE_LOAD = 4 +uint8 CONVOY = 5 +uint8 SNOWPLOUGH = 6 +uint8 DEICING = 7 +uint8 SALTING_VEHICLES = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportContainer.msg new file mode 100644 index 000000000..cd58defbd --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportContainer.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpecialTransportContainer ::= SEQUENCE { +# specialTransportType SpecialTransportType, +# lightBarSirenInUse LightBarSirenInUse +# } +# ------------------------------------------------------------------------------ +# * +#* This type contains detaild information of the Special Transport Container. +#* +#* It shall include the following components: +#* +#* @field specialTransportType: which indicates whether the originating ITS-S is mounted on a special transport vehicle with heavy or oversized load +#* or both. It shall be present if the data is available in originating ITS-S. +#* +#* @field lightBarSirenInUse: indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +# + +SpecialTransportType special_transport_type + +LightBarSirenInUse light_bar_siren_in_use + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportType.msg new file mode 100644 index 000000000..99809c1c6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportType.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpecialTransportType ::= BIT STRING { +# heavyLoad (0), +# excessWidth (1), +# excessLength (2), +# excessHeight (3) +# } (SIZE(4)) +# ------------------------------------------------------------------------------ +# * +# * The DE indicates if a vehicle is carrying goods in the special transport conditions. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 `heavyLoad` - the vehicle is carrying goods with heavy load, +# * - 1 `excessWidth` - the vehicle is carrying goods in excess of width, +# * - 2 `excessLength` - the vehicle is carrying goods in excess of length, +# * - 3 `excessHeight` - the vehicle is carrying goods in excess of height. +# * +# * Otherwise, the corresponding bit shall be set to 0. +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 4 +uint8 BIT_INDEX_HEAVY_LOAD = 0 +uint8 BIT_INDEX_EXCESS_WIDTH = 1 +uint8 BIT_INDEX_EXCESS_LENGTH = 2 +uint8 BIT_INDEX_EXCESS_HEIGHT = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialVehicleContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialVehicleContainer.msg new file mode 100644 index 000000000..11a839267 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialVehicleContainer.msg @@ -0,0 +1,82 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpecialVehicleContainer ::= CHOICE { +# publicTransportContainer PublicTransportContainer, +# specialTransportContainer SpecialTransportContainer, +# dangerousGoodsContainer DangerousGoodsContainer, +# roadWorksContainerBasic RoadWorksContainerBasic, +# rescueContainer RescueContainer, +# emergencyContainer EmergencyContainer, +# safetyCarContainer SafetyCarContainer, +# ... +# } +# ------------------------------------------------------------------------------ +# * +#* This type represent the Special Vehicle Container. +#* +#* It shall include the following components: +#* +#* @field publicTransportContainer: If the vehicleRole component is set to publicTransport(1) this container shall be present. +#* +#* @field specialTransportContainer: If the vehicleRole component is set to specialTransport(2) this container shall be present. +#* +#* @field dangerousGoodsContainer: If the vehicleRole component is set to dangerousGoods(3) this container shall be present. +#* +#* @field roadWorksContainerBasic: If the vehicleRole component is set to roadWork(4) this container shall be present. +#* +#* @field rescueContainer: If the vehicleRole component is set to rescue(5) this container shall be present. +#* +#* @field emergencyContainer: If the vehicleRole component is set to emergency(6) this container shall be present. +#* +#* @field safetyCarContainer: If the vehicleRole component is set to safetyCar(7) this container shall be present. +# + +uint8 choice + +PublicTransportContainer public_transport_container +uint8 CHOICE_PUBLIC_TRANSPORT_CONTAINER = 0 + +SpecialTransportContainer special_transport_container +uint8 CHOICE_SPECIAL_TRANSPORT_CONTAINER = 1 + +DangerousGoodsContainer dangerous_goods_container +uint8 CHOICE_DANGEROUS_GOODS_CONTAINER = 2 + +RoadWorksContainerBasic road_works_container_basic +uint8 CHOICE_ROAD_WORKS_CONTAINER_BASIC = 3 + +RescueContainer rescue_container +uint8 CHOICE_RESCUE_CONTAINER = 4 + +EmergencyContainer emergency_container +uint8 CHOICE_EMERGENCY_CONTAINER = 5 + +SafetyCarContainer safety_car_container +uint8 CHOICE_SAFETY_CAR_CONTAINER = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Speed.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Speed.msg new file mode 100644 index 000000000..40d727dd6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Speed.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Speed ::= SEQUENCE { +# speedValue SpeedValue, +# speedConfidence SpeedConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the speed and associated confidence value. +# * +# * It shall include the following components: +# * +# * @field speedValue: the speed value. +# * +# * @field speedConfidence: the confidence value of the speed value. +# * +# * @category: Kinematic information +# * @revision: V1.3.1 +# + +SpeedValue speed_value + +SpeedConfidence speed_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedConfidence.msg new file mode 100644 index 000000000..47c72b18f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedConfidence.msg @@ -0,0 +1,61 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpeedConfidence ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# } (1..127) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s. +# * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s, +# * - `127` if the confidence value information is not available. +# * +# * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the speed value may be valid and used by the application. +# * +# * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid +# * and therefore cannot be trusted. Such is not useful for the application. +# * +# * @unit: 0,01 m/s +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 127 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedLimit.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedLimit.msg new file mode 100644 index 000000000..eb69931c0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedLimit.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpeedLimit ::= INTEGER (1..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a speed limitation applied to a geographical position, a road section or a geographical region. +# * +# * @unit: km/h +# * @category: Infrastructure information, Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedValue.msg new file mode 100644 index 000000000..2f2340071 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedValue.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpeedValue ::= INTEGER { +# standstill (0), +# outOfRange (16382), +# unavailable (16383) +# } (0..16383) +# ------------------------------------------------------------------------------ +# * +# * This DE represents a speed value, i.e. the magnitude of the velocity-vector. +# * +# * The value shall be set to: +# * - `0` in a standstill situation. +# * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, +# * - `16 382` for speed values greater than 163,81 m/s, +# * - `16 383` if the speed accuracy information is not available. +# * +# * @note: the definition of standstill is out of scope of the present document. +# * +# * @unit: 0,01 m/s +# * @category: Kinematic information +# * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 16383 +uint16 STANDSTILL = 0 +uint16 OUT_OF_RANGE = 16382 +uint16 UNAVAILABLE = 16383 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StabilityChangeIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StabilityChangeIndication.msg new file mode 100644 index 000000000..898f36f93 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StabilityChangeIndication.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StabilityChangeIndication ::= SEQUENCE { +# lossProbability StabilityLossProbability, +# actionDeltaTime DeltaTimeTenthOfSecond, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides the indication of change in stability. +# * +# * It shall include the following components: +# * +# * @field lossProbability: the probability of stability loss. +# * +# * @field actionDeltaTime: the period over which the the probability of stability loss is estimated. +# * +# * @category: Kinematic information +# * @revision: V2.1.1 +# + +StabilityLossProbability loss_probability + +DeltaTimeTenthOfSecond action_delta_time + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StabilityLossProbability.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StabilityLossProbability.msg new file mode 100644 index 000000000..5157ad6a3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StabilityLossProbability.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StabilityLossProbability ::= INTEGER { +# stable (0), +# totalLossOfStability (50), +# unavailable (63) +# } (0..63) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the estimated probability of a stability level and conversely also the probability of a stability loss. +# * +# * The value shall be set to: +# * - `0` to indicate an estimated probability of a loss of stability of 0 %, i.e. "stable", +# * - `n` (`n > 0` and `n < 50`) to indicate the actual stability level, +# * - `50` to indicate a estimated probability of a loss of stability of 100 %, i.e. "total loss of stability", +# * - the values between 51 and 62 are reserved for future use, +# * - `63`: this value indicates that the information is unavailable. +# * +# * @unit: 2 % +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 63 +uint8 STABLE = 0 +uint8 TOTAL_LOSS_OF_STABILITY = 50 +uint8 UNAVAILABLE = 63 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength12b.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength12b.msg new file mode 100644 index 000000000..d701c64c3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength12b.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StandardLength12b::= INTEGER (0..4095) +# ------------------------------------------------------------------------------ +# * +# * The DE represents length as a measure of distance between points or as a dimension of an object or shape. +# * +# * @unit: 0,1 metre +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 4095 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength1B.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength1B.msg new file mode 100644 index 000000000..308207d91 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength1B.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StandardLength1B::= INTEGER (0..255) +# ------------------------------------------------------------------------------ +# * +# * The DE represents length as a measure of distance between points or as a dimension of an object. +# * +# * @unit: 0,1 metre +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength2B.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength2B.msg new file mode 100644 index 000000000..33097d6e6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength2B.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StandardLength2B::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ +# * +# * The DE represents length as a measure of distance between points or as a dimension of an object. +# * +# * @unit: 0,1 metre +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength3b.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength3b.msg new file mode 100644 index 000000000..d4579978b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength3b.msg @@ -0,0 +1,66 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StandardLength3b ::= ENUMERATED { +# lessThan50m (0), +# lessThan100m (1), +# lessThan200m (2), +# lessThan500m (3), +# lessThan1000m (4), +# lessThan5km (5), +# lessThan10km (6), +# over10km (7) +# } +# ------------------------------------------------------------------------------ +# * +# * The DE represents length as a measure of distance between points. +# * +# * The value shall be set to: +# * - 0 `lessThan50m` - for distances below 50 m, +# * - 1 `lessThan100m` - for distances below 100 m, +# * - 2 `lessThan200m` - for distances below 200 m, +# * - 3 `lessThan500m` - for distances below 300 m, +# * - 4 `lessThan1000m` - for distances below 1 000 m, +# * - 5 `lessThan5km` - for distances below 5 000 m, +# * - 6 `lessThan10km` - for distances below 10 000 m, +# * - 7 `over10km` - for distances over 10 000 m. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 from RelevanceDistance +# + +uint8 value +uint8 LESS_THAN50M = 0 +uint8 LESS_THAN100M = 1 +uint8 LESS_THAN200M = 2 +uint8 LESS_THAN500M = 3 +uint8 LESS_THAN1000M = 4 +uint8 LESS_THAN5KM = 5 +uint8 LESS_THAN10KM = 6 +uint8 OVER10KM = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength9b.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength9b.msg new file mode 100644 index 000000000..ad8d84e78 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StandardLength9b.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StandardLength9b::= INTEGER (0..511) +# ------------------------------------------------------------------------------ +# * +# * The DE represents length as a measure of distance between points or as a dimension of an object. +# * +# * @unit: 0,1 metre +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 511 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationId.msg new file mode 100644 index 000000000..2e86839ea --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationId.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StationId ::= INTEGER(0..4294967295) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the identifier of an ITS-S. +# * The ITS-S ID may be a pseudonym. It may change over space and/or over time. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 based on @ref StationID +# + +uint32 value +uint32 MIN = 0 +uint32 MAX = 4294967295 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationType.msg new file mode 100644 index 000000000..c420b9e11 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationType.msg @@ -0,0 +1,96 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StationType ::= INTEGER { +# unknown (0), +# pedestrian (1), +# cyclist (2), +# moped (3), +# motorcycle (4), +# passengerCar (5), +# bus (6), +# lightTruck (7), +# heavyTruck (8), +# trailer (9), +# specialVehicle (10), +# tram (11), +# lightVruVehicle (12), +# animal (13), +# roadSideUnit (15) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the type of technical context the ITS-S is integrated in. +# * The station type depends on the integration environment of ITS-S into vehicle, mobile devices or at infrastructure. +# * +# * The value shall be set to: +# * - 0 `unknown` - information about the ITS-S context is not provided, +# * - 1 `pedestrian` - ITS-S carried by human being not using a mechanical device for their trip (VRU profile 1), +# * - 2 `cyclist` - ITS-S mounted on non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), +# * - 3 `moped` - ITS-S mounted on light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] +# class L1, L2 (VRU Profile 3), +# * - 4 `motorcycles` - ITS-S mounted on motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] +# class L3, L4, L5, L6, L7 (VRU Profile 3), +# * - 5 `passengerCar` - ITS-S mounted on small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, +# * - 6 `bus` - ITS-S mounted on large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, +# * - 7 `lightTruck` - ITS-S mounted on light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, +# * - 8 `heavyTruck` - ITS-S mounted on Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, +# * - 9 `trailer` - ITS-S mounted on an unpowered vehicle that is intended to be towed by a powered vehicle as defined in +# UNECE/TRANS/WP.29/78/Rev.4 [16] class O, +# * - 10 `specialVehicles` - ITS-S mounted on vehicles which have special purposes other than the above (e.g. moving road works vehicle), +# * - 11 `tram` - ITS-S mounted on a vehicle which runs on tracks along public streets, +# * - 12 `lightVruVehicle` - ITS-S carried by a human being traveling on light vehicle , incl. possible use of roller skates or skateboards (VRU profile 2), +# * - 13 `animal` - ITS-S carried by an animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), +# * - 14 - reserved for future usage, +# * - 15 `roadSideUnit` - ITS-S mounted on an infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, +# on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), +# * - 16-255 - are reserved for future usage. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficParticipantType instead. +# * @category: Communication information. +# * @revision: revised in V2.1.1 (named values 12 and 13 added and note to value 9 deleted) +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNKNOWN = 0 +uint8 PEDESTRIAN = 1 +uint8 CYCLIST = 2 +uint8 MOPED = 3 +uint8 MOTORCYCLE = 4 +uint8 PASSENGER_CAR = 5 +uint8 BUS = 6 +uint8 LIGHT_TRUCK = 7 +uint8 HEAVY_TRUCK = 8 +uint8 TRAILER = 9 +uint8 SPECIAL_VEHICLE = 10 +uint8 TRAM = 11 +uint8 LIGHT_VRU_VEHICLE = 12 +uint8 ANIMAL = 13 +uint8 ROAD_SIDE_UNIT = 15 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationarySince.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationarySince.msg new file mode 100644 index 000000000..298b84d78 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationarySince.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StationarySince ::= ENUMERATED { +# lessThan1Minute (0), +# lessThan2Minutes (1), +# lessThan15Minutes (2), +# equalOrGreater15Minutes (3) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the duration in minutes since which something is stationary. +# * +# * The value shall be set to: +# * - 0 `lessThan1Minute` - for being stationary since less than 1 minute, +# * - 1 `lessThan2Minutes` - for being stationary since less than 2 minute and for equal to or more than 1 minute, +# * - 2 `lessThan15Minutes` - for being stationary since less than 15 minutes and for equal to or more than 1 minute, +# * - 3 `equalOrGreater15Minutes` - for being stationary since equal to or more than 15 minutes. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 LESS_THAN1_MINUTE = 0 +uint8 LESS_THAN2_MINUTES = 1 +uint8 LESS_THAN15_MINUTES = 2 +uint8 EQUAL_OR_GREATER15_MINUTES = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationaryVehicleSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationaryVehicleSubCauseCode.msg new file mode 100644 index 000000000..33fa65da1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationaryVehicleSubCauseCode.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StationaryVehicleSubCauseCode ::= INTEGER { +# unavailable (0), +# humanProblem (1), +# vehicleBreakdown (2), +# postCrash (3), +# publicTransportStop (4), +# carryingDangerousGoods (5), +# vehicleOnFire (6) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE provides the value of the sub cause codes of the @ref CauseCode "stationaryVehicle". +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on stationary vehicle is unavailable, +# * - 1 `humanProblem` - in case stationary vehicle is due to health problem of driver or passenger, +# * - 2 `vehicleBreakdown` - in case stationary vehicle is due to vehicle break down, +# * - 3 `postCrash` - in case stationary vehicle is caused by collision, +# * - 4 `publicTransportStop` - in case public transport vehicle is stationary at bus stop, +# * - 5 `carryingDangerousGoods`- in case the stationary vehicle is carrying dangerous goods, +# * - 6 `vehicleOnFire` - in case of vehicle on fire. +# * - 7-255 reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 HUMAN_PROBLEM = 1 +uint8 VEHICLE_BREAKDOWN = 2 +uint8 POST_CRASH = 3 +uint8 PUBLIC_TRANSPORT_STOP = 4 +uint8 CARRYING_DANGEROUS_GOODS = 5 +uint8 VEHICLE_ON_FIRE = 6 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngle.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngle.msg new file mode 100644 index 000000000..fc9d36a1c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngle.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SteeringWheelAngle ::= SEQUENCE { +# steeringWheelAngleValue SteeringWheelAngleValue, +# steeringWheelAngleConfidence SteeringWheelAngleConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the steering wheel angle of the vehicle at certain point in time. +# * +# * It shall include the following components: +# * +# * @field steeringWheelAngleValue: steering wheel angle value. +# * +# * @field steeringWheelAngleConfidence: confidence value of the steering wheel angle value. +# * +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# + +SteeringWheelAngleValue steering_wheel_angle_value + +SteeringWheelAngleConfidence steering_wheel_angle_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleConfidence.msg new file mode 100644 index 000000000..7381c2338 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleConfidence.msg @@ -0,0 +1,62 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SteeringWheelAngleConfidence ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# } (1..127) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the steering wheel angle confidence value which represents the estimated absolute accuracy for a steering wheel angle value with a confidence level of 95 %. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 1,5 degrees, +# * - `126` if the confidence value is out of range, i.e. greater than 187,5 degrees, +# * - `127` if the confidence value is not available. +# * +# * @note: The fact that a steering wheel angle value is received with confidence value set to `unavailable(127)` +# * can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the steering wheel angle value may be valid and used by the application. +# * +# * If a steering wheel angle value is received and its confidence value is set to `outOfRange(126)`, +# * it means that the steering wheel angle value is not valid and therefore cannot be trusted. +# * Such value is not useful for the application. +# * +# * @unit: 1,5 degree +# * @category: Vehicle Information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 127 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleValue.msg new file mode 100644 index 000000000..a08ac6deb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleValue.msg @@ -0,0 +1,57 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SteeringWheelAngleValue ::= INTEGER { +# negativeOutOfRange (-511), +# positiveOutOfRange (511), +# unavailable (512) +# } (-511..512) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the steering wheel angle of the vehicle at certain point in time. +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-511` if the steering wheel angle is equal to or greater than 511 x 1,5 degrees = 766,5 degrees to the right, +# * - `n` (`n > -511` and `n <= 0`) if the steering wheel angle is equal to or less than n x 1,5 degrees, and greater than (n-1) x 1,5 degrees, +# turning clockwise (i.e. to the right), +# * - `n` (`n >= 1` and `n < 511`) if the steering wheel angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, +# turning counter-clockwise (i.e. to the left), +# * - `511` if the steering wheel angle is greater than 510 x 1,5 degrees = 765 degrees to the left, +# * - `512` if information is not available. +# * +# * @unit: 1,5 degree +# * @revision: Description revised in V2.1.1 (meaning of value 511 has changed slightly). +# + +int16 value +int16 MIN = -511 +int16 MAX = 512 +int16 NEGATIVE_OUT_OF_RANGE = -511 +int16 POSITIVE_OUT_OF_RANGE = 511 +int16 UNAVAILABLE = 512 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StoredInformationType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StoredInformationType.msg new file mode 100644 index 000000000..a98398c1b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StoredInformationType.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StoredInformationType::= BIT STRING { +# undefined (0), +# staticDb (1), +# dynamicDb (2), +# realTimeDb (3), +# map (4) +# } (SIZE (8,... )) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the type of stored information. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * +# * - `0` undefined - in case the stored information type is undefined. +# * - `1` staticDb - in case the stored information type is a static database. +# * - `2` dynamicDb - in case the stored information type is a dynamic database +# * - `3` realTimeDb - in case the stored information type is a real time updated database. +# * - `4` map - in case the stored information type is a road topology map. +# * - Bits 5 to 7 - are reserved for future use. +# * +# * @note: If all bits are set to 0, then no stored information type is used +# * +# * @category: Basic Information +# * @revision: created in V2.2.1 +# + +uint8[] value +uint8 bits_unused +int64 MIN_SIZE_BITS = 8 +int64 MAX_SIZE_BITS = 8 +uint8 BIT_INDEX_UNDEFINED = 0 +uint8 BIT_INDEX_STATIC_DB = 1 +uint8 BIT_INDEX_DYNAMIC_DB = 2 +uint8 BIT_INDEX_REAL_TIME_DB = 3 +uint8 BIT_INDEX_MAP = 4 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SubCauseCodeType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SubCauseCodeType.msg new file mode 100644 index 000000000..9830591a9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SubCauseCodeType.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SubCauseCodeType ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the generic sub cause of a detected event. +# * +# * @note: The sub cause code value assignment varies based on value of @ref CauseCode. +# * +# * @category: Traffic information +# * @revision: Description revised in V2.1.1 (this is the generic sub cause type) +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Temperature.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Temperature.msg new file mode 100644 index 000000000..368794979 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Temperature.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Temperature ::= INTEGER { +# equalOrSmallerThanMinus60Deg (-60), +# equalOrGreaterThan67Deg(67)} (-60..67) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates a temperature value. +# +# * The value shall be set to: +# * - `-60` for temperature equal to or less than -60 degrees C, +# * - `n` (`n > -60` and `n < 67`) for the actual temperature n in degrees C, +# * - `67` for temperature equal to or greater than 67 degrees C. +# * +# * @unit: degrees Celsius +# * @category: Basic information +# * @revision: Editorial update in V2.1.1 +# + +int8 value +int8 MIN = -60 +int8 MAX = 67 +int8 EQUAL_OR_SMALLER_THAN_MINUS60_DEG = -60 +int8 EQUAL_OR_GREATER_THAN67_DEG = 67 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TimestampIts.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TimestampIts.msg new file mode 100644 index 000000000..e76b16ebb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TimestampIts.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TimestampIts ::= INTEGER (0..4398046511103) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the number of elapsed (TAI) milliseconds since the ITS Epoch. +# * The ITS epoch is `00:00:00.000 UTC, 1 January 2004`. +# * "Elapsed" means that the true number of milliseconds is continuously counted without interruption, +# * i.e. it is not altered by leap seconds, which occur in UTC. +# * +# * @note: International Atomic Time (TAI) is the time reference coordinate on the basis of the readings of atomic clocks, +# * operated in accordance with the definition of the second, the unit of time of the International System of Units. +# * TAI is a continuous time scale. UTC has discontinuities, as it is occasionally adjusted by leap seconds. +# * As of 1 January, 2022, TimestampIts is 5 seconds ahead of UTC, because since the ITS epoch on 1 January 2004 00:00:00.000 UTC, +# * further 5 leap seconds have been inserted in UTC. +# * +# * EXAMPLE: The value for TimestampIts for 1 January 2007 00:00:00.000 UTC is `94 694 401 000` milliseconds, +# * which includes one leap second insertion since the ITS epoch. +# * @unit: 0,001 s +# * @category: Basic information +# * @revision: Description revised in in V2.1.1 +# + +uint64 value +uint64 MIN = 0 +uint64 MAX = 4398046511103 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Traces.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Traces.msg new file mode 100644 index 000000000..d5a94aa5b --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Traces.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Traces ::= SEQUENCE SIZE(1..7) OF Path +# ------------------------------------------------------------------------------ +# * +# * This DF represents one or more paths using @ref Path. +# * +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1. Is is now based on Path and not on PathHistory +# + +Path[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 7 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TracesExtended.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TracesExtended.msg new file mode 100644 index 000000000..c648dfb3a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TracesExtended.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TracesExtended ::= SEQUENCE SIZE(1..7) OF PathExtended +# ------------------------------------------------------------------------------ +# * +# * This DF represents one or more paths using @ref PathExtended. +# * +# * @category: GeoReference information +# * @revision: Created in V2.2.1 +# + +PathExtended[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 7 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficConditionSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficConditionSubCauseCode.msg new file mode 100644 index 000000000..6a2f4c970 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficConditionSubCauseCode.msg @@ -0,0 +1,74 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrafficConditionSubCauseCode ::= INTEGER { +# unavailable (0), +# increasedVolumeOfTraffic (1), +# trafficJamSlowlyIncreasing (2), +# trafficJamIncreasing (3), +# trafficJamStronglyIncreasing (4), +# trafficJam (5), +# trafficJamSlightlyDecreasing (6), +# trafficJamDecreasing (7), +# trafficJamStronglyDecreasing (8), +# trafficJamStable (9) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `trafficCondition`. +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on the traffic condition is unavailable, +# * - 1 `increasedVolumeOfTraffic` - in case the type of traffic condition is increased traffic volume, +# * - 2 `trafficJamSlowlyIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing slowly, +# * - 3 `trafficJamIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing, +# * - 4 `trafficJamStronglyIncreasing` - in case the type of traffic condition is a traffic jam which volume is strongly increasing, +# * - 5 `trafficJam` ` - in case the type of traffic condition is a traffic jam and no further detailed information about its volume is available, +# * - 6 `trafficJamSlightlyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing slowly, +# * - 7 `trafficJamDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing, +# * - 8 `trafficJamStronglyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing rapidly, +# * - 9 `trafficJamStable` - in case the traffic condition is a traffic jam with stable volume, +# * - 10-255: reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1, definition of value 0 and 1 changed in V2.2.1, name and definition of value 5 changed in V2.2.1, value 9 added in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 INCREASED_VOLUME_OF_TRAFFIC = 1 +uint8 TRAFFIC_JAM_SLOWLY_INCREASING = 2 +uint8 TRAFFIC_JAM_INCREASING = 3 +uint8 TRAFFIC_JAM_STRONGLY_INCREASING = 4 +uint8 TRAFFIC_JAM = 5 +uint8 TRAFFIC_JAM_SLIGHTLY_DECREASING = 6 +uint8 TRAFFIC_JAM_DECREASING = 7 +uint8 TRAFFIC_JAM_STRONGLY_DECREASING = 8 +uint8 TRAFFIC_JAM_STABLE = 9 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficDirection.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficDirection.msg new file mode 100644 index 000000000..8259f326c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficDirection.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrafficDirection ::= ENUMERATED { +# allTrafficDirections(0), +# sameAsReferenceDirection-upstreamOfReferencePosition(1), +# sameAsReferenceDirection-downstreamOfReferencePosition(2), +# oppositeToReferenceDirection(3) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates a direction of traffic with respect to a reference direction, and a portion of that traffic with respect to a reference position. +# * +# * The value shall be set to: +# * - 0 `allTrafficDirections` - for all directions of traffic, +# * - 1 `sameAsReferenceDirection-upstreamOfReferencePosition` - for the direction of traffic according to the reference direction, and the portion of traffic upstream of the reference position, +# * - 2 `sameAsReferenceDirection-downstreamOfReferencePosition` - for the direction of traffic according to the reference direction, and the portion of traffic downstream of the reference position, +# * - 3 `oppositeToReferenceDirection` - for the direction of traffic opposite to the reference direction. +# * +# * @note: Upstream traffic corresponds to the incoming traffic towards the event position, and downstream traffic to the departing traffic away from the event position. +# * @category: GeoReference information +# * @revision: Created in V2.1.1 from RelevanceTrafficDirection, description and naming of values changed in V2.2.1 +# * +# + +uint8 value +uint8 ALL_TRAFFIC_DIRECTIONS = 0 +uint8 SAME_AS_REFERENCE_DIRECTION_UPSTREAM_OF_REFERENCE_POSITION = 1 +uint8 SAME_AS_REFERENCE_DIRECTION_DOWNSTREAM_OF_REFERENCE_POSITION = 2 +uint8 OPPOSITE_TO_REFERENCE_DIRECTION = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficIslandPosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficIslandPosition.msg new file mode 100644 index 000000000..7a2e04308 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficIslandPosition.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrafficIslandPosition ::= SEQUENCE { +# oneSide LanePositionAndType, +# otherSide LanePositionAndType, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * Ths DF represents the a position on a traffic island between two lanes. +# * +# * It shall include the following components: +# * +# * @field oneSide: represents one lane. +# * +# * @field otherSide: represents the other lane. +# * +# * @category: Road Topology information +# * @revision: Created in V2.1.1 +# + +LanePositionAndType one_side + +LanePositionAndType other_side + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficParticipantType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficParticipantType.msg new file mode 100644 index 000000000..52b5694ee --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficParticipantType.msg @@ -0,0 +1,93 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrafficParticipantType ::= INTEGER { +# unknown (0), +# pedestrian (1), +# cyclist (2), +# moped (3), +# motorcycle (4), +# passengerCar (5), +# bus (6), +# lightTruck (7), +# heavyTruck (8), +# trailer (9), +# specialVehicle (10), +# tram (11), +# lightVruVehicle (12), +# animal (13), +# agricultural (14), +# roadSideUnit (15) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the type of a traffic participant. +# * +# * The value shall be set to: +# * - 0 `unknown` - information about traffic participant is not provided, +# * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1), +# * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), +# * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3), +# * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3), +# * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, +# * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, +# * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, +# * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, +# * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O, +# * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle), +# * - 11 `tram` - vehicle which runs on tracks along public streets, +# * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2), +# * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), +# * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T, +# * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, +# on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), +# * - 16-255 - are reserved for future usage. +# * +# * @category: Communication information. +# * @revision: Created in V2.1.1 based on StationType +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNKNOWN = 0 +uint8 PEDESTRIAN = 1 +uint8 CYCLIST = 2 +uint8 MOPED = 3 +uint8 MOTORCYCLE = 4 +uint8 PASSENGER_CAR = 5 +uint8 BUS = 6 +uint8 LIGHT_TRUCK = 7 +uint8 HEAVY_TRUCK = 8 +uint8 TRAILER = 9 +uint8 SPECIAL_VEHICLE = 10 +uint8 TRAM = 11 +uint8 LIGHT_VRU_VEHICLE = 12 +uint8 ANIMAL = 13 +uint8 AGRICULTURAL = 14 +uint8 ROAD_SIDE_UNIT = 15 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficRule.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficRule.msg new file mode 100644 index 000000000..5caa0e6fd --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficRule.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrafficRule ::= ENUMERATED { +# noPassing (0), +# noPassingForTrucks (1), +# passToRight (2), +# passToLeft (3), +# ..., +# passToLeftOrRight (4) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates traffic rules that apply to vehicles at a certain position. +# * +# * The value shall be set to: +# * - `0` - if overtaking is prohibited for all vehicles, +# * - `1` - if overtaking is prohibited for trucks, +# * - `2` - if vehicles should pass to the right lane, +# * - `3` - if vehicles should pass to the left lane. +# * - `4` - if vehicles should pass to the left or right lane. +# * +# * @category: Infrastructure information, Traffic information +# * @revision: Editorial update in V2.1.1 +# + +uint8 value +uint8 NO_PASSING = 0 +uint8 NO_PASSING_FOR_TRUCKS = 1 +uint8 PASS_TO_RIGHT = 2 +uint8 PASS_TO_LEFT = 3 +# .extended +uint8 PASS_TO_LEFT_OR_RIGHT = 4 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrailerData.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrailerData.msg new file mode 100644 index 000000000..87989cad3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrailerData.msg @@ -0,0 +1,85 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrailerData ::= SEQUENCE { +# refPointId Identifier1B, +# hitchPointOffset StandardLength1B, +# frontOverhang StandardLength1B OPTIONAL, +# rearOverhang StandardLength1B OPTIONAL, +# trailerWidth VehicleWidth OPTIONAL, +# hitchAngle CartesianAngle, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides detailed information about an attached trailer. +# * +# * It shall include the following components: +# * +# * @field refPointId: identifier of the reference point of the trailer. +# * +# * @field hitchPointOffset: optional position of the hitch point in negative x-direction (according to ISO 8855) from the +# * vehicle Reference Point. +# * +# * @field frontOverhang: optional length of the trailer overhang in the positive x direction (according to ISO 8855) from the +# * trailer Reference Point indicated by the refPointID. The value defaults to 0 in case the trailer +# * is not overhanging to the front with respect to the trailer reference point. +# * +# * @field rearOverhang: optional length of the trailer overhang in the negative x direction (according to ISO 8855) from the +# * trailer Reference Point indicated by the refPointID. +# * +# * @field trailerWidth: optional width of the trailer. +# * +# * @field hitchAngle: optional Value and confidence value of the angle between the trailer orientation (corresponding to the x +# * direction of the ISO 8855 [21] coordinate system centered on the trailer) and the direction of +# * the segment having as end points the reference point of the trailer and the reference point of +# * the pulling vehicle, which can be another trailer or a vehicle looking on the horizontal plane +# * xy, described in the local Cartesian coordinate system of the trailer. The +# * angle is measured with negative values considering the trailer orientation turning clockwise +# * starting from the segment direction. The angle value accuracy is provided with the +# * confidence level of 95 %. +# * +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# + +Identifier1B ref_point_id + +StandardLength1B hitch_point_offset + +StandardLength1B front_overhang +bool front_overhang_is_present + +StandardLength1B rear_overhang +bool rear_overhang_is_present + +VehicleWidth trailer_width +bool trailer_width_is_present + +CartesianAngle hitch_angle + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrailerPresenceInformation.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrailerPresenceInformation.msg new file mode 100644 index 000000000..9fdae0057 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrailerPresenceInformation.msg @@ -0,0 +1,58 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrailerPresenceInformation ::= ENUMERATED { +# noTrailerPresent (0), +# trailerPresentWithKnownLength (1), +# trailerPresentWithUnknownLength (2), +# trailerPresenceIsUnknown (3), +# unavailable (4) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE provides information about the presence of a trailer. +# * +# * The value shall be set to: +# * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present. +# * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value. +# * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value. +# * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible. +# * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer +# * nor the detection of trailer presence/absence is possible. +# * +# * @category: Vehicle information +# * @revision: Created in V2.1.1 based on VehicleLengthConfidenceIndication +# + +uint8 value +uint8 NO_TRAILER_PRESENT = 0 +uint8 TRAILER_PRESENT_WITH_KNOWN_LENGTH = 1 +uint8 TRAILER_PRESENT_WITH_UNKNOWN_LENGTH = 2 +uint8 TRAILER_PRESENCE_IS_UNKNOWN = 3 +uint8 UNAVAILABLE = 4 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionConfidence.msg new file mode 100644 index 000000000..fe8f649be --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionConfidence.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrajectoryInterceptionConfidence ::= INTEGER { +# lessthan50percent (0), +# between50and70Percent (1), +# between70and90Percent (2), +# above90Percent (3) +# } (0..3) +# ------------------------------------------------------------------------------ +# * +# * This DE defines the confidence level of the trajectoryInterceptionProbability. +# * +# * The value shall be set to: +# * - `0` - to indicate confidence level less than 50 %, +# * - `1` - to indicate confidence level greater than or equal to 50 % and less than 70 %, +# * - `2` - to indicate confidence level greater than or equal to 70 % and less than 90 %, +# * - `3` - to indicate confidence level greater than or equal to 90%. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 3 +uint8 LESSTHAN50PERCENT = 0 +uint8 BETWEEN50AND70_PERCENT = 1 +uint8 BETWEEN70AND90_PERCENT = 2 +uint8 ABOVE90_PERCENT = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionIndication.msg new file mode 100644 index 000000000..b30c27a4e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionIndication.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrajectoryInterceptionIndication ::= SEQUENCE { +# subjectStation StationId OPTIONAL, +# trajectoryInterceptionProbability TrajectoryInterceptionProbability, +# trajectoryInterceptionConfidence TrajectoryInterceptionConfidence OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides the trajectory interception indication of ego-VRU ITS-S with another ITS-Ss. +# * +# * It shall include the following components: +# * +# * @field subjectStation: indicates the subject station. +# * +# * @field trajectoryInterceptionProbability: indicates the propbability of the interception of the subject station trajectory +# * with the trajectory of the station indicated in the component subjectStation. +# * +# * @field trajectoryInterceptionConfidence: indicates the confidence of interception of the subject station trajectory +# * with the trajectory of the station indicated in the component subjectStation. +# * +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# + +StationId subject_station +bool subject_station_is_present + +TrajectoryInterceptionProbability trajectory_interception_probability + +TrajectoryInterceptionConfidence trajectory_interception_confidence +bool trajectory_interception_confidence_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionProbability.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionProbability.msg new file mode 100644 index 000000000..8dcb8eebd --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrajectoryInterceptionProbability.msg @@ -0,0 +1,49 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TrajectoryInterceptionProbability ::= INTEGER { +# unavailable (63) +# } (0..63) +# ------------------------------------------------------------------------------ +# * +# * This DE defines the probability that the ego trajectory intercepts with any other object's trajectory on the road. +# * +# * The value shall be set to: +# * - `n` (`n >= 0` and `n <= 50`) to indicate the actual probability, +# * - the values between 51 and 62 are reserved, +# * - `63`: to indicate that the information is unavailable. +# * +# * @unit: 2 % +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 63 +uint8 UNAVAILABLE = 63 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TransmissionInterval.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TransmissionInterval.msg new file mode 100644 index 000000000..042dedb95 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TransmissionInterval.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TransmissionInterval::= INTEGER (1..10000) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the time interval between two consecutive message transmissions. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeMilliSecondPos instead. +# * @unit: 0,001 s +# * @category: Basic information +# * @revision: V1.3.1 +# + +uint16 value +uint16 MIN = 1 +uint16 MAX = 10000 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TurningDirection.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TurningDirection.msg new file mode 100644 index 000000000..8c995cd2a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TurningDirection.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TurningDirection::= ENUMERATED { +# left, +# right +# } +# ------------------------------------------------------------------------------ +# * +# * This DE provides the turning direction. +# * +# * The value shall be set to: +# * - `left` for turning to te left. +# * - `right` for turing to the right. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 LEFT = 0 +uint8 RIGHT = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TurningRadius.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TurningRadius.msg new file mode 100644 index 000000000..c487a30ed --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TurningRadius.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TurningRadius ::= INTEGER { +# outOfRange (254), +# unavailable (255) +# } (1..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the smallest circular turn (i.e. U-turn) that the vehicle is capable of making. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 254`) to indicate the applicable value is equal to or less than n x 0,4 metre, and greater than (n-1) x 0,4 metre, +# * - `254` to indicate that the turning radius is greater than 253 x 0,4 metre = 101.2 metres, +# * - `255` to indicate that the information is unavailable. +# * +# * For vehicle with tracker, the turning radius applies to the vehicle only. +# * +# * @category: Vehicle information +# * @unit 0,4 metre +# * @revision: Description revised V2.1.1 (the meaning of 254 has changed slightly) +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 255 +uint8 OUT_OF_RANGE = 254 +uint8 UNAVAILABLE = 255 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/UsageIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/UsageIndication.msg new file mode 100644 index 000000000..2b1c26c05 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/UsageIndication.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# UsageIndication ::= ENUMERATED { +# noIndication(0), +# specialUse (1), +# rescueOperation (2), +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DE represents indication of how a certain path or area will be used. +# * +# * The value shall be set to: +# * - 0 - ` noIndication ` - in case it will remain free to be used, +# * - 1 - ` specialUse ` - in case it will be physically blocked by special use, +# * - 2 - ` rescueOperation` - in case it is intended to be used for rescue operations, +# * +# * @category: Basic information +# * @revision: Created in V2.2.1 +# + +uint8 value +uint8 NO_INDICATION = 0 +uint8 SPECIAL_USE = 1 +uint8 RESCUE_OPERATION = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VDS.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VDS.msg new file mode 100644 index 000000000..d9f2d05e4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VDS.msg @@ -0,0 +1,39 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VDS ::= IA5String (SIZE(6)) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the Vehicle Descriptor Section (VDS). The values are assigned according to ISO 3779 [6]. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +string value +uint8 SIZE = 6 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ValidityDuration.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ValidityDuration.msg new file mode 100644 index 000000000..c892ad0f4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ValidityDuration.msg @@ -0,0 +1,47 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ValidityDuration::= INTEGER { +# timeOfDetection(0), +# oneSecondAfterDetection(1) +# } (0..86400) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the duration of a traffic event validity. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeSecond instead. +# * @unit: 1 s +# * @category: Basic information +# * @revision: V1.3.1 +# + +uint32 value +uint32 MIN = 0 +uint32 MAX = 86400 +uint32 TIME_OF_DETECTION = 0 +uint32 ONE_SECOND_AFTER_DETECTION = 1 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VarLengthNumber.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VarLengthNumber.msg new file mode 100644 index 000000000..f40706f95 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VarLengthNumber.msg @@ -0,0 +1,48 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VarLengthNumber::=CHOICE{ +# content [0] INTEGER(0..127), -- one octet length +# extension [1] Ext1 +# } +# ------------------------------------------------------------------------------ +# * +# * This DF together with its sub DFs Ext1, Ext2 and the DE Ext3 provides the custom (i.e. not ASN.1 standard) definition of an integer with variable lenght, that can be used for example to encode the ITS-AID. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# + +uint8 choice + +uint8 content +uint8 CHOICE_CONTENT = 0 + +Ext1 extension +uint8 CHOICE_EXTENSION = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleBreakdownSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleBreakdownSubCauseCode.msg new file mode 100644 index 000000000..892cd1cd9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleBreakdownSubCauseCode.msg @@ -0,0 +1,77 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleBreakdownSubCauseCode ::= INTEGER { +# unavailable (0), +# lackOfFuel (1), +# lackOfBatteryPower (2), +# engineProblem (3), +# transmissionProblem (4), +# engineCoolingProblem (5), +# brakingSystemProblem (6), +# steeringProblem (7), +# tyrePuncture (8), +# tyrePressureProblem (9), +# vehicleOnFire (10) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of the sub cause codes of the @ref CauseCode `vehicleBreakdown`. +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on cause of vehicle break down is unavailable, +# * - 1 `lackOfFuel` - in case vehicle break down is due to lack of fuel, +# * - 2 `lackOfBatteryPower` - in case vehicle break down is caused by lack of battery power, +# * - 3 `engineProblem` - in case vehicle break down is caused by an engine problem, +# * - 4 `transmissionProblem` - in case vehicle break down is caused by transmission problem, +# * - 5 `engineCoolingProblem`- in case vehicle break down is caused by an engine cooling problem, +# * - 6 `brakingSystemProblem`- in case vehicle break down is caused by a braking system problem, +# * - 7 `steeringProblem` - in case vehicle break down is caused by a steering problem, +# * - 8 `tyrePuncture` - in case vehicle break down is caused by tyre puncture, +# * - 9 `tyrePressureProblem` - in case low tyre pressure in detected, +# * - 10 `vehicleOnFire` - in case the vehicle is on fire. +# * - 11-255 - are reserved for future usage. +# * +# * @category: Traffic information +# +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 LACK_OF_FUEL = 1 +uint8 LACK_OF_BATTERY_POWER = 2 +uint8 ENGINE_PROBLEM = 3 +uint8 TRANSMISSION_PROBLEM = 4 +uint8 ENGINE_COOLING_PROBLEM = 5 +uint8 BRAKING_SYSTEM_PROBLEM = 6 +uint8 STEERING_PROBLEM = 7 +uint8 TYRE_PUNCTURE = 8 +uint8 TYRE_PRESSURE_PROBLEM = 9 +uint8 VEHICLE_ON_FIRE = 10 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleHeight.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleHeight.msg new file mode 100644 index 000000000..fc591fb06 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleHeight.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleHeight ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# }(1..128) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the height of the vehicle, measured from the ground to the highest point, excluding any antennas. +# * In case vehicles are equipped with adjustable ride heights, camper shells, and any other +# * equipment which may result in varying height, the largest possible height shall be used. +# * +# * The value shall be set to: +# * - `n` (`n >0` and `n < 127`) indicates the applicable value is equal to or less than n x 0,05 metre, and greater than (n-1) x 0,05 metre, +# * - `127` indicates that the vehicle width is greater than 6,3 metres, +# * - `128` indicates that the information in unavailable. +# * +# * @unit: 0,05 metre +# * @category: Vehicle information +# * @revision: created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 128 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleIdentification.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleIdentification.msg new file mode 100644 index 000000000..1d4192056 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleIdentification.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleIdentification ::= SEQUENCE { +# wMInumber WMInumber OPTIONAL, +# vDS VDS OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF provides information related to the identification of a vehicle. +# * +# * It shall include the following components: +# * +# * @field wMInumber: World Manufacturer Identifier (WMI) code. +# * +# * @field vDS: Vehicle Descriptor Section (VDS). +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +WMInumber w_m_inumber +bool w_m_inumber_is_present + +VDS v_ds +bool v_ds_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLength.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLength.msg new file mode 100644 index 000000000..0dc99a9eb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLength.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleLength ::= SEQUENCE { +# vehicleLengthValue VehicleLengthValue, +# vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the length of vehicle and accuracy indication information. +# * +# * It shall include the following components: +# * +# * @field vehicleLengthValue: length of vehicle. +# * +# * @field vehicleLengthConfidenceIndication: indication of the length value confidence. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref VehicleLengthV2 instead. +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +VehicleLengthValue vehicle_length_value + +VehicleLengthConfidenceIndication vehicle_length_confidence_indication + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthConfidenceIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthConfidenceIndication.msg new file mode 100644 index 000000000..9a753b1f3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthConfidenceIndication.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleLengthConfidenceIndication ::= ENUMERATED { +# noTrailerPresent (0), +# trailerPresentWithKnownLength (1), +# trailerPresentWithUnknownLength (2), +# trailerPresenceIsUnknown (3), +# unavailable (4) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE provides information about the presence of a trailer. +# * +# * The value shall be set to: +# * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present, +# * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value, +# * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value, +# * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible, +# * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer, +# * nor the detection of trailer presence/absence is possible. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrailerPresenceInformation instead. +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 NO_TRAILER_PRESENT = 0 +uint8 TRAILER_PRESENT_WITH_KNOWN_LENGTH = 1 +uint8 TRAILER_PRESENT_WITH_UNKNOWN_LENGTH = 2 +uint8 TRAILER_PRESENCE_IS_UNKNOWN = 3 +uint8 UNAVAILABLE = 4 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthV2.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthV2.msg new file mode 100644 index 000000000..1b0342590 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthV2.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleLengthV2 ::= SEQUENCE { +# vehicleLengthValue VehicleLengthValue, +# trailerPresenceInformation TrailerPresenceInformation +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the length of vehicle and accuracy indication information. +# * +# * It shall include the following components: +# * +# * @field vehicleLengthValue: length of vehicle. +# * +# * @field trailerPresenceInformation: information about the trailer presence. +# * +# * @category: Vehicle information +# * @revision: created in V2.1.1 based on @ref VehicleLength but using @ref TrailerPresenceInformation. +# + +VehicleLengthValue vehicle_length_value + +TrailerPresenceInformation trailer_presence_information + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthValue.msg new file mode 100644 index 000000000..00755b712 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthValue.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleLengthValue ::= INTEGER { +# outOfRange(1022), +# unavailable(1023) +# } (1..1023) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the length of a vehicle. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 1022`) to indicate the applicable value n is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, +# * - `1 022` to indicate that the vehicle length is greater than 102.1 metres, +# * - `1 023` to indicate that the information in unavailable. +# * +# * +# * @unit: 0,1 metre +# * @category: Vehicle information +# * @revision: Description updated in V2.1.1 (the meaning of 1 022 has changed slightly). +# + +uint16 value +uint16 MIN = 1 +uint16 MAX = 1023 +uint16 OUT_OF_RANGE = 1022 +uint16 UNAVAILABLE = 1023 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleMass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleMass.msg new file mode 100644 index 000000000..a78742e9a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleMass.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleMass ::= INTEGER { +# outOfRange (1023), +# unavailable(1024) +# } (1..1024) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the mass of an empty loaded vehicle. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 1023`) to indicate that the applicable value is equal to or less than n x 10^5 gramm, and greater than (n-1) x 10^5 gramm, +# * - `1 023` indicates that the vehicle mass is greater than 102 200 000 g, +# * - `1 024` indicates the vehicle mass information is unavailable. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * +# * @unit: 10^5 gramm +# * @category: Vehicle information +# * @revision: Description updated in V2.1.1 (the meaning of 1 023 has changed slightly). +# + +uint16 value +uint16 MIN = 1 +uint16 MAX = 1024 +uint16 OUT_OF_RANGE = 1023 +uint16 UNAVAILABLE = 1024 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleRole.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleRole.msg new file mode 100644 index 000000000..d0ec641e4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleRole.msg @@ -0,0 +1,90 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleRole ::= ENUMERATED { +# default (0), +# publicTransport (1), +# specialTransport(2), +# dangerousGoods (3), +# roadWork (4), +# rescue (5), +# emergency (6), +# safetyCar (7), +# agriculture (8), +# commercial (9), +# military (10), +# roadOperator (11), +# taxi (12), +# uvar (13), +# rfu1 (14), +# rfu2 (15) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the role played by a vehicle at a point in time. +# * +# * The value shall be set to: +# * - 0 `default` - to indicate the default vehicle role as indicated by the vehicle type, +# * - 1 `publicTransport` - to indicate that the vehicle is used to operate public transport service, +# * - 2 `specialTransport` - to indicate that the vehicle is used for special transport purpose, e.g. oversized trucks, +# * - 3 `dangerousGoods` - to indicate that the vehicle is used for dangerous goods transportation, +# * - 4 `roadWork` - to indicate that the vehicle is used to realize roadwork or road maintenance mission, +# * - 5 `rescue` - to indicate that the vehicle is used for rescue purpose in case of an accident, e.g. as a towing service, +# * - 6 `emergency` - to indicate that the vehicle is used for emergency mission, e.g. ambulance, fire brigade, +# * - 7 `safetyCar` - to indicate that the vehicle is used for public safety, e.g. patrol, +# * - 8 `agriculture` - to indicate that the vehicle is used for agriculture, e.g. farm tractor, +# * - 9 `commercial` - to indicate that the vehicle is used for transportation of commercial goods, +# * - 10 `military` - to indicate that the vehicle is used for military purpose, +# * - 11 `roadOperator` - to indicate that the vehicle is used in road operator missions, +# * - 12 `taxi` - to indicate that the vehicle is used to provide an authorized taxi service, +# * - 13 `uvar` - to indicate that the vehicle is authorized to enter a zone according to the applicable Urban Vehicle Access Restrictions. +# * - 14 `rfu1` - is reserved for future usage. +# * - 15 `rfu2` - is reserved for future usage. +# * +# * @category: Vehicle Information +# * @revision: Description updated in V2.1.1 (removed reference to CEN/TS 16157-3), value 13 assigned in V2.2.1 +# + +uint8 value +uint8 DEFAULT = 0 +uint8 PUBLIC_TRANSPORT = 1 +uint8 SPECIAL_TRANSPORT = 2 +uint8 DANGEROUS_GOODS = 3 +uint8 ROAD_WORK = 4 +uint8 RESCUE = 5 +uint8 EMERGENCY = 6 +uint8 SAFETY_CAR = 7 +uint8 AGRICULTURE = 8 +uint8 COMMERCIAL = 9 +uint8 MILITARY = 10 +uint8 ROAD_OPERATOR = 11 +uint8 TAXI = 12 +uint8 UVAR = 13 +uint8 RFU1 = 14 +uint8 RFU2 = 15 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleWidth.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleWidth.msg new file mode 100644 index 000000000..ac255b405 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleWidth.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VehicleWidth ::= INTEGER { +# outOfRange (61), +# unavailable (62) +# } (1..62) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the width of a vehicle, excluding side mirrors and possible similar extensions. +# +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 61`) indicates the applicable value is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, +# * - `61` indicates that the vehicle width is greater than 6,0 metres, +# * - `62` indicates that the information in unavailable. +# * +# * @unit: 0,1 metre +# * @category: Vehicle information +# * @revision: Description updated in V2.1.1 (the meaning of 61 has changed slightly). +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 62 +uint8 OUT_OF_RANGE = 61 +uint8 UNAVAILABLE = 62 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Velocity3dWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Velocity3dWithConfidence.msg new file mode 100644 index 000000000..7f4798c49 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Velocity3dWithConfidence.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Velocity3dWithConfidence::= CHOICE{ +# polarVelocity VelocityPolarWithZ, +# cartesianVelocity VelocityCartesian +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a velocity vector with associated confidence value. +# * +# * The following options are available: +# * +# * @field polarVelocity: the representation of the velocity vector in a polar or cylindrical coordinate system. +# * +# * @field cartesianVelocity: the representation of the velocity vector in a cartesian coordinate system. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +uint8 choice + +VelocityPolarWithZ polar_velocity +uint8 CHOICE_POLAR_VELOCITY = 0 + +VelocityCartesian cartesian_velocity +uint8 CHOICE_CARTESIAN_VELOCITY = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityCartesian.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityCartesian.msg new file mode 100644 index 000000000..9c43d09a9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityCartesian.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VelocityCartesian::= SEQUENCE { +# xVelocity VelocityComponent, +# yVelocity VelocityComponent, +# zVelocity VelocityComponent OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a velocity vector in a cartesian coordinate system. +# +# * It shall include the following components: +# * +# * @field xVelocity: the x component of the velocity vector with the associated confidence value. +# * +# * @field yVelocity: the y component of the velocity vector with the associated confidence value. +# * +# * @field zVelocity: the optional z component of the velocity vector with the associated confidence value. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +VelocityComponent x_velocity + +VelocityComponent y_velocity + +VelocityComponent z_velocity +bool z_velocity_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityComponent.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityComponent.msg new file mode 100644 index 000000000..ba223b390 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityComponent.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VelocityComponent ::= SEQUENCE { +# value VelocityComponentValue, +# confidence SpeedConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a component of the velocity vector and the associated confidence value. +# * +# * It shall include the following components: +# * +# * @field value: the value of the component. +# * +# * @field confidence: the confidence value of the value. +# * +# * @category: Kinematic information +# * @revision: V2.1.1 +# + +VelocityComponentValue value + +SpeedConfidence confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityComponentValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityComponentValue.msg new file mode 100644 index 000000000..e0de187b1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityComponentValue.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VelocityComponentValue ::= INTEGER { +# negativeOutOfRange (-16383), +# positiveOutOfRange (16382), +# unavailable (16383) +# } (-16383..16383) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the value of a velocity component in a defined coordinate system. +# * +# * The value shall be set to: +# * - `-16 383` if the velocity is equal to or smaller than -163,83 m/s, +# * - `n` (`n > -16 383` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, +# * - `16 382` for velocity values equal to or greater than 163,81 m/s, +# * - `16 383` if the velocity information is not available. +# * +# * @unit: 0,01 m/s +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +int16 value +int16 MIN = -16383 +int16 MAX = 16383 +int16 NEGATIVE_OUT_OF_RANGE = -16383 +int16 POSITIVE_OUT_OF_RANGE = 16382 +int16 UNAVAILABLE = 16383 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityPolarWithZ.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityPolarWithZ.msg new file mode 100644 index 000000000..dd21a3ec0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VelocityPolarWithZ.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VelocityPolarWithZ::= SEQUENCE { +# velocityMagnitude Speed, +# velocityDirection CartesianAngle, +# zVelocity VelocityComponent OPTIONAL +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a velocity vector in a polar or cylindrical coordinate system. +# * +# * It shall include the following components: +# * +# * @field velocityMagnitude: magnitude of the velocity vector on the reference plane, with the associated confidence value. +# * +# * @field velocityDirection: polar angle of the velocity vector on the reference plane, with the associated confidence value. +# * +# * @field zVelocity: the optional z component of the velocity vector along the reference axis of the cylindrical coordinate system, with the associated confidence value. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# + +Speed velocity_magnitude + +CartesianAngle velocity_direction + +VelocityComponent z_velocity +bool z_velocity_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VerticalAcceleration.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VerticalAcceleration.msg new file mode 100644 index 000000000..be3f77eee --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VerticalAcceleration.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VerticalAcceleration ::= SEQUENCE { +# verticalAccelerationValue VerticalAccelerationValue, +# verticalAccelerationConfidence AccelerationConfidence +# } +# ------------------------------------------------------------------------------ +# four and more octets length +#* +# * This DF indicates the vehicle acceleration at vertical direction and the associated confidence value. +# * +# * It shall include the following components: +# * +# * @field verticalAccelerationValue: vertical acceleration value at a point in time. +# * +# * @field verticalAccelerationConfidence: confidence value of the vertical acceleration value with a predefined confidence level. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# + +VerticalAccelerationValue vertical_acceleration_value + +AccelerationConfidence vertical_acceleration_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VerticalAccelerationValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VerticalAccelerationValue.msg new file mode 100644 index 000000000..9e9710e7f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VerticalAccelerationValue.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VerticalAccelerationValue ::= INTEGER { +# negativeOutOfRange (-160), +# positiveOutOfRange (160), +# unavailable (161) +# } (-160 .. 161) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the vehicle acceleration at vertical direction in the centre of the mass of the empty vehicle. +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-160` for acceleration values equal to or less than -16 m/s^2, +# * - `n` (`n > -160` and `n <= 0`) to indicate downwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `n` (`n > 0` and `n < 160`) to indicate upwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * +# * @category: Vehicle information +# * @unit: 0,1 m/s^2 +# * @revision: Desciption updated in V2.1.1 (the meaning of 160 has changed slightly). +# * +# + +int16 value +int16 MIN = -160 +int16 MAX = 161 +int16 NEGATIVE_OUT_OF_RANGE = -160 +int16 POSITIVE_OUT_OF_RANGE = 160 +int16 UNAVAILABLE = 161 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruClusterInformation.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruClusterInformation.msg new file mode 100644 index 000000000..4d52ce1c2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruClusterInformation.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruClusterInformation ::= SEQUENCE { +# clusterId Identifier1B OPTIONAL, +# clusterBoundingBoxShape Shape (WITH COMPONENTS{..., elliptical ABSENT, radial ABSENT, radialShapes ABSENT}) OPTIONAL, +# ------------------------------------------------------------------------------ +# * +# * This DF provides information about a VRU cluster. +# * +# * It shall include the following components: +# * +# * @field clusterId: optional identifier of a VRU cluster. +# * +# * @field clusterBoundingBoxShape: optionally indicates the shape of the cluster bounding box, per default inside an East-North-Up coordinate system +# * centered around a reference point defined outside of the context of this DF. +# * +# * @field clusterCardinalitySize: indicates an estimation of the number of VRUs in the group, e.g. the known members in the cluster + 1 (for the cluster leader) . +# * +# * @field clusterProfiles: optionally identifies all the VRU profile types that are estimated to be within the cluster. +# * if this component is absent it means that the information is unavailable. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, description revised in V2.2.1 +# + +Identifier1B cluster_id +bool cluster_id_is_present + +Shape cluster_bounding_box_shape +bool cluster_bounding_box_shape_is_present +int64 CLUSTER_BOUNDING_BOX_SHAPE_MIN = 0 + +CardinalNumber1B cluster_cardinality_size + +VruClusterProfiles cluster_profiles +bool cluster_profiles_is_present + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruClusterProfiles.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruClusterProfiles.msg new file mode 100644 index 000000000..4ba09183f --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruClusterProfiles.msg @@ -0,0 +1,58 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruClusterProfiles ::= BIT STRING { +# pedestrian (0), +# bicyclist (1), +# motorcyclist (2), +# animal (3) +# } (SIZE(4)) +# ------------------------------------------------------------------------------ +# * +# * This DE Identifies all the VRU profile types within a cluster. +# * It consist of a Bitmap encoding VRU profiles, to allow multiple profiles to be indicated in a single cluster (heterogeneous cluster if more than one profile). +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 `pedestrian` - indicates that the VRU cluster contains at least one pedestrian VRU, +# * - 1 `bicycle` - indicates that the VRU cluster contains at least one bicycle VRU member, +# * - 2 `motorcyclist`- indicates that the VRU cluster contains at least one motorcycle VRU member, +# * - 3 `animal` - indicates that the VRU cluster contains at least one animal VRU member. +# * +# * Otherwise, the corresponding bit shall be set to 0. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 4 +uint8 BIT_INDEX_PEDESTRIAN = 0 +uint8 BIT_INDEX_BICYCLIST = 1 +uint8 BIT_INDEX_MOTORCYCLIST = 2 +uint8 BIT_INDEX_ANIMAL = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruDeviceUsage.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruDeviceUsage.msg new file mode 100644 index 000000000..60cd2de0a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruDeviceUsage.msg @@ -0,0 +1,71 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruDeviceUsage ::= INTEGER { +# unavailable (0), +# other (1), +# idle (2), +# listeningToAudio (3), +# typing (4), +# calling (5), +# playingGames (6), +# reading (7), +# viewing (8) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the possible usage conditions of the VRU device. +# +# * - The value shall be set to: +# * - 0 `unavailable` - to indicate that the usage conditions are unavailable, +# * - 1 `other` - to indicate that the VRU device is in a state not defined below, +# * - 2 `idle` - to indicate that the human is currently not interacting with the device, +# * - 3 `listeningToAudio` - to indicate that any audio source other than calling is in use, +# * - 4 `typing` - to indicate that the human is texting or performaing any other manual input activity, +# * - 5 `calling` - to indicate that the VRU device is currently receiving a call, +# * - 6 `playingGames` - to indicate that the human is playing games, +# * - 7 `reading` - to indicate that the human is reading on the VRU device, +# * - 8 `viewing` - to indicate that the human is watching dynamic content, including following navigation prompts, viewing videos or other visual contents that are not static. +# * - value 9 to 15 - are reserved for future usage. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 UNAVAILABLE = 0 +uint8 OTHER = 1 +uint8 IDLE = 2 +uint8 LISTENING_TO_AUDIO = 3 +uint8 TYPING = 4 +uint8 CALLING = 5 +uint8 PLAYING_GAMES = 6 +uint8 READING = 7 +uint8 VIEWING = 8 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruEnvironment.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruEnvironment.msg new file mode 100644 index 000000000..765b546c0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruEnvironment.msg @@ -0,0 +1,62 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruEnvironment ::= INTEGER { +# unavailable (0), +# intersectionCrossing (1), +# zebraCrossing (2), +# sidewalk (3), +# onVehicleRoad (4), +# protectedGeographicArea (5) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the possible VRU environment conditions. +# * +# * - The value shall be set to: +# * - 0 `unavailable` - to indicate that the information on the type of environment is unavailable, +# * - 1 `intersectionCrossing` - to indicate that the VRU is on an intersection or crossing, +# * - 2 `zebraCrossing` - to indicate that the VRU is on a zebra crossing (crosswalk), +# * - 3 `sidewalk` - to indicate that the VRU is on a sidewalk, +# * - 4 `onVehicleRoad` - to indicate that the VRU is on a traffic lane, +# * - 5 `protectedGeographicArea`- to indicate that the VRU is in a protected area. +# * - value 6 to 15 - are reserved for future usage. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 UNAVAILABLE = 0 +uint8 INTERSECTION_CROSSING = 1 +uint8 ZEBRA_CROSSING = 2 +uint8 SIDEWALK = 3 +uint8 ON_VEHICLE_ROAD = 4 +uint8 PROTECTED_GEOGRAPHIC_AREA = 5 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruExteriorLights.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruExteriorLights.msg new file mode 100644 index 000000000..723a02dd5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruExteriorLights.msg @@ -0,0 +1,52 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruExteriorLights ::= SEQUENCE { +# vehicular ExteriorLights, +# vruSpecific VruSpecificExteriorLights, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents the status of the exterior light switches of a VRU. +# * This DF is an extension of the vehicular DE @ref ExteriorLights. +# * +# * It shall include the following components: +# * +# * @field vehicular: represents the status of the exterior light switches of a road vehicle. +# * +# * @field vruSpecific: represents the status of the exterior light switches of a VRU. +# * +# * @category: VRU information +# * @revision: created in V2.1.1 +# + +ExteriorLights vehicular + +VruSpecificExteriorLights vru_specific + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruMovementControl.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruMovementControl.msg new file mode 100644 index 000000000..3dc7bebeb --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruMovementControl.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruMovementControl ::= INTEGER { +# unavailable (0), +# braking (1), +# hardBraking (2), +# stopPedaling (3), +# brakingAndStopPedaling (4), +# hardBrakingAndStopPedaling (5), +# noReaction (6) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the status of the possible human control over a VRU vehicle. +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that the information is unavailable, +# * - 1 `braking` - to indicate that the VRU is braking, +# * - 2 `hardBraking` - to indicate that the VRU is braking hard, +# * - 3 `stopPedaling` - to indicate that the VRU stopped pedaling, +# * - 4 `brakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking, +# * - 5 `hardBrakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking hard, +# * - 6 `noReaction` - to indicate that the VRU is not changing its behavior. +# * - 7 to 15 - are reserved for future usage. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 UNAVAILABLE = 0 +uint8 BRAKING = 1 +uint8 HARD_BRAKING = 2 +uint8 STOP_PEDALING = 3 +uint8 BRAKING_AND_STOP_PEDALING = 4 +uint8 HARD_BRAKING_AND_STOP_PEDALING = 5 +uint8 NO_REACTION = 6 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruProfileAndSubprofile.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruProfileAndSubprofile.msg new file mode 100644 index 000000000..477c86f88 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruProfileAndSubprofile.msg @@ -0,0 +1,66 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruProfileAndSubprofile ::= CHOICE { +# pedestrian VruSubProfilePedestrian, +# bicyclistAndLightVruVehicle VruSubProfileBicyclist, +# motorcyclist VruSubProfileMotorcyclist, +# animal VruSubProfileAnimal, +# ... +# } +# ------------------------------------------------------------------------------ +# * +# * This DF indicates the profile of a VRU including sub-profile information +# * It identifies four options corresponding to the four types of VRU profiles specified in ETSI TS 103 300-2 [18]: +# * +# * @field pedestrian: VRU Profile 1 - Pedestrian. +# * +# * @field bicyclistAndLightVruVehicle: VRU Profile 2 - Bicyclist. +# * +# * @field motorcyclist: VRU Profile 3 - Motorcyclist. +# * +# * @field animal: VRU Profile 4 - Animal. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# + +uint8 choice + +VruSubProfilePedestrian pedestrian +uint8 CHOICE_PEDESTRIAN = 0 + +VruSubProfileBicyclist bicyclist_and_light_vru_vehicle +uint8 CHOICE_BICYCLIST_AND_LIGHT_VRU_VEHICLE = 1 + +VruSubProfileMotorcyclist motorcyclist +uint8 CHOICE_MOTORCYCLIST = 2 + +VruSubProfileAnimal animal +uint8 CHOICE_ANIMAL = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSizeClass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSizeClass.msg new file mode 100644 index 000000000..a596f0128 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSizeClass.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruSizeClass ::= INTEGER { +# unavailable (0), +# low (1), +# medium (2), +# high (3) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the approximate size of a VRU including the VRU vehicle used. +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that there is no matched size class or due to privacy reasons in profile 1, +# * - 1 `low` - to indicate that the VRU size class is low depending on the VRU profile, +# * - 2 `medium` - to indicate that the VRU size class is medium depending on the VRU profile, +# * - 3 `high` - to indicate that the VRU size class is high depending on the VRU profile. +# * - 4 to 15 - are reserved for future usage. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 UNAVAILABLE = 0 +uint8 LOW = 1 +uint8 MEDIUM = 2 +uint8 HIGH = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSpecificExteriorLights.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSpecificExteriorLights.msg new file mode 100644 index 000000000..53f2016d4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSpecificExteriorLights.msg @@ -0,0 +1,66 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruSpecificExteriorLights ::= BIT STRING { +# unavailable (0), +# backFlashLight (1), +# helmetLight (2), +# armLight (3), +# legLight (4), +# wheelLight (5) +# } (SIZE(8)) +# ------------------------------------------------------------------------------ +# * +# * This DE describes the status of the exterior light switches of a VRU. +# * +# * The value of each bit indicates the state of the switch, which commands the corresponding light. +# * The bit corresponding to a specific light shall be set to 1, when the corresponding switch is turned on, either manually by the driver or VRU +# * or automatically by a vehicle or VRU system: +# * - 0 `unavailable` - indicates no information available, +# * - 1 `backFlashLight ` - indicates the status of the back flash light, +# * - 2 `helmetLight` - indicates the status of the helmet light, +# * - 3 `armLight` - indicates the status of the arm light, +# * - 4 `legLight` - indicates the status of the leg light, +# * - 5 `wheelLight` - indicates the status of the wheel light. +# * - Bits 6 to 8 - are reserved for future use. +# * The bit values do not indicate if the corresponding lamps are alight or not. +# * If VRU is not equipped with a certain light or if the light switch status information is not available, the corresponding bit shall be set to 0. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 8 +uint8 BIT_INDEX_UNAVAILABLE = 0 +uint8 BIT_INDEX_BACK_FLASH_LIGHT = 1 +uint8 BIT_INDEX_HELMET_LIGHT = 2 +uint8 BIT_INDEX_ARM_LIGHT = 3 +uint8 BIT_INDEX_LEG_LIGHT = 4 +uint8 BIT_INDEX_WHEEL_LIGHT = 5 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileAnimal.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileAnimal.msg new file mode 100644 index 000000000..79554f324 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileAnimal.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruSubProfileAnimal ::= INTEGER { +# unavailable (0), +# wild-animal (1), +# farm-animal (2), +# service-animal (3) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the profile of an animal +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that the information is unavailable, +# * - 1 `wild-animal` - to indicate a animal living in the wildness, +# * - 2 `farm-animal` - to indicate an animal beloning to a farm, +# * - 3 `service-animal` - to indicate an animal that supports a human being. +# * - 4 to 15 - are reserved for future usage. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 UNAVAILABLE = 0 +uint8 WILD_ANIMAL = 1 +uint8 FARM_ANIMAL = 2 +uint8 SERVICE_ANIMAL = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileBicyclist.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileBicyclist.msg new file mode 100644 index 000000000..5ad181f6d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileBicyclist.msg @@ -0,0 +1,77 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruSubProfileBicyclist ::= INTEGER { +# unavailable (0), +# bicyclist (1), +# wheelchair-user (2), +# horse-and-rider (3), +# rollerskater (4), +# e-scooter (5), +# personal-transporter (6), +# pedelec (7), +# speed-pedelec (8), +# roadbike (9), +# childrensbike (10) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the profile of a VRU and its light VRU vehicle / mounted animal. +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that the information is unavailable, +# * - 1 `bicyclist ` - to indicate a cycle and bicyclist to which no more-specific profile applies, +# * - 2 `wheelchair-user` - to indicate a wheelchair and its user, +# * - 3 `horse-and-rider` - to indicate a horse and rider, +# * - 4 `rollerskater` - to indicate a roller-skater and skater, +# * - 5 `e-scooter` - to indicate an e-scooter and rider, +# * - 6 `personal-transporter` - to indicate a personal-transporter and rider, +# * - 7 `pedelec` - to indicate a pedelec and rider to which no more-specific profile applies, +# * - 8 `speed-pedelec` - to indicate a speed-pedelec and rider. +# * - 9 `roadbike` - to indicate a road bicycle (or road pedelec) and rider, +# * - 10 `childrensbike` - to indicate a children�s bicycle (or children�s pedelec) and rider, +# * - 11 to 15 - are reserved for future usage. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, values 9 and 10 assigned in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 UNAVAILABLE = 0 +uint8 BICYCLIST = 1 +uint8 WHEELCHAIR_USER = 2 +uint8 HORSE_AND_RIDER = 3 +uint8 ROLLERSKATER = 4 +uint8 E_SCOOTER = 5 +uint8 PERSONAL_TRANSPORTER = 6 +uint8 PEDELEC = 7 +uint8 SPEED_PEDELEC = 8 +uint8 ROADBIKE = 9 +uint8 CHILDRENSBIKE = 10 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileMotorcyclist.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileMotorcyclist.msg new file mode 100644 index 000000000..33ea1b0ae --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfileMotorcyclist.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruSubProfileMotorcyclist ::= INTEGER { +# unavailable (0), +# moped (1), +# motorcycle (2), +# motorcycle-and-sidecar-right (3), +# motorcycle-and-sidecar-left (4) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the profile of a motorcyclist and corresponding vehicle. +# * +# * The value shall be set to: +# * - 0 `unavailable ` - to indicate that the information is unavailable, +# * - 1 `moped` - to indicate a moped and rider, +# * - 2 `motorcycle` - to indicate a motorcycle and rider, +# * - 3 `motorcycle-and-sidecar-right` - to indicate a motorcycle with sidecar on the right and rider, +# * - 4 `motorcycle-and-sidecar-left` - to indicate a motorcycle with sidecar on the left and rider. +# * - 5 to 15 - are reserved for future usage. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 UNAVAILABLE = 0 +uint8 MOPED = 1 +uint8 MOTORCYCLE = 2 +uint8 MOTORCYCLE_AND_SIDECAR_RIGHT = 3 +uint8 MOTORCYCLE_AND_SIDECAR_LEFT = 4 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfilePedestrian.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfilePedestrian.msg new file mode 100644 index 000000000..41dd060ed --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VruSubProfilePedestrian.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# VruSubProfilePedestrian ::= INTEGER { +# unavailable (0), +# ordinary-pedestrian (1), +# road-worker (2), +# first-responder (3) +# }(0..15) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the profile of a pedestrian. +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that the information on is unavailable, +# * - 1 `ordinary-pedestrian` - to indicate a pedestrian to which no more-specific profile applies, +# * - 2 `road-worker` - to indicate a pedestrian with the role of a road worker, +# * - 3 `first-responder` - to indicate a pedestrian with the role of a first responder. +# * - value 4 to 15 - are reserved for future usage. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 +uint8 UNAVAILABLE = 0 +uint8 ORDINARY_PEDESTRIAN = 1 +uint8 ROAD_WORKER = 2 +uint8 FIRST_RESPONDER = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WMInumber.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WMInumber.msg new file mode 100644 index 000000000..934022028 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WMInumber.msg @@ -0,0 +1,41 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# WMInumber ::= IA5String (SIZE(1..3)) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the World Manufacturer Identifier (WMI). The values are assigned according to ISO 3779 [6]. +# * +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# + +string value +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 3 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84Angle.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84Angle.msg new file mode 100644 index 000000000..4b3425932 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84Angle.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Wgs84Angle ::= SEQUENCE { +# value Wgs84AngleValue, +# confidence Wgs84AngleConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents an angular component along with a confidence value in the WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * It shall include the following components: +# * +# * @field value: the angle value, which can be estimated as the mean of the current distribution. +# * +# * @field confidence: the confidence value associated to the angle value. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# + +Wgs84AngleValue value + +Wgs84AngleConfidence confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleConfidence.msg new file mode 100644 index 000000000..595209c01 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleConfidence.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Wgs84AngleConfidence ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# } (1..127) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the angle confidence value which represents the estimated accuracy of an angle value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n >= 1` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degrees and more than (n-1) x 0,1 degrees, +# * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, +# * - `127` if the confidence value is not available. +# * +# * +# * @unit 0,1 degrees +# * @category: GeoReference Information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 127 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleValue.msg new file mode 100644 index 000000000..1ab413e2c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleValue.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Wgs84AngleValue ::= INTEGER { +# wgs84North (0), +# wgs84East (900), +# wgs84South (1800), +# wgs84West (2700), +# doNotUse (3600), +# unavailable (3601) +# } (0..3601) +# ------------------------------------------------------------------------------ +# * +# * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. +# * +# * @unit 0,1 degrees +# * @category: GeoReference Information +# * @revision: Created in V2.1.1 +# + +uint16 value +uint16 MIN = 0 +uint16 MAX = 3601 +uint16 WGS84_NORTH = 0 +uint16 WGS84_EAST = 900 +uint16 WGS84_SOUTH = 1800 +uint16 WGS84_WEST = 2700 +uint16 DO_NOT_USE = 3600 +uint16 UNAVAILABLE = 3601 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WheelBaseVehicle.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WheelBaseVehicle.msg new file mode 100644 index 000000000..eab406d2a --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WheelBaseVehicle.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# WheelBaseVehicle ::= INTEGER { +# outOfRange (126), +# unavailable (127) +# } (1..127) +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the perpendicular distance between front and rear axle of the wheel base of vehicle. +# * +# * The value shall be set to: +# * - `n` (`n >= 1` and `n < 126`) if the value is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre, +# * - `126` indicates that the wheel base distance is equal to or greater than 12,5 metres, +# * - `127` indicates that the information is unavailable. +# * +# * @unit 0,1 metre +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# + +uint8 value +uint8 MIN = 1 +uint8 MAX = 127 +uint8 OUT_OF_RANGE = 126 +uint8 UNAVAILABLE = 127 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WrongWayDrivingSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WrongWayDrivingSubCauseCode.msg new file mode 100644 index 000000000..0effa240e --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WrongWayDrivingSubCauseCode.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# WrongWayDrivingSubCauseCode ::= INTEGER { +# unavailable (0), +# wrongLane (1), +# wrongDirection (2) +# } (0..255) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the sub cause codes of the @ref CauseCode `wrongWayDriving` . +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on wrong way driving event is unavailable, +# * - 1 `wrongLane` - in case vehicle is driving on a lane for which it has no authorization to use, +# * - 2 `wrongDirection` - in case vehicle is driving in a direction that it is not allowed, +# * - 3-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 +uint8 UNAVAILABLE = 0 +uint8 WRONG_LANE = 1 +uint8 WRONG_DIRECTION = 2 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRate.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRate.msg new file mode 100644 index 000000000..de108b94c --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRate.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# YawRate::= SEQUENCE { +# yawRateValue YawRateValue, +# yawRateConfidence YawRateConfidence +# } +# ------------------------------------------------------------------------------ +# * +# * This DF represents a yaw rate of vehicle at a point in time. +# * +# * It shall include the following components: +# * +# * @field yawRateValue: yaw rate value at a point in time. +# * +# * @field yawRateConfidence: confidence value associated to the yaw rate value. +# * +# * @category: Vehicle Information +# * @revision: V1.3.1 +# + +YawRateValue yaw_rate_value + +YawRateConfidence yaw_rate_confidence + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateConfidence.msg new file mode 100644 index 000000000..52d4de692 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateConfidence.msg @@ -0,0 +1,80 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# YawRateConfidence ::= ENUMERATED { +# degSec-000-01 (0), +# degSec-000-05 (1), +# degSec-000-10 (2), +# degSec-001-00 (3), +# degSec-005-00 (4), +# degSec-010-00 (5), +# degSec-100-00 (6), +# outOfRange (7), +# unavailable (8) +# } +# ------------------------------------------------------------------------------ +# * +# * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `0` if the confidence value is equal to or less than 0,01 degree/second, +# * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second, +# * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second, +# * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second, +# * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second, +# * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second, +# * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second, +# * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second, +# * - `8` if the confidence value is unavailable. +# * +# * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by +# * several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the yaw rate value may be valid and used by the application. +# * +# * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the +# * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# + +uint8 value +uint8 DEG_SEC_000_01 = 0 +uint8 DEG_SEC_000_05 = 1 +uint8 DEG_SEC_000_10 = 2 +uint8 DEG_SEC_001_00 = 3 +uint8 DEG_SEC_005_00 = 4 +uint8 DEG_SEC_010_00 = 5 +uint8 DEG_SEC_100_00 = 6 +uint8 OUT_OF_RANGE = 7 +uint8 UNAVAILABLE = 8 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateValue.msg new file mode 100644 index 000000000..f608e71f2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateValue.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# YawRateValue ::= INTEGER { +# negativeOutOfRange (-32766), +# positiveOutOfRange (32766), +# unavailable (32767) +# } (-32766..32767) +# ------------------------------------------------------------------------------ +# * +# * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded +# * vehicle. The leading sign denotes the direction of rotation. +# * +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right, +# * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s, +# and greater than (n-1) x 0,01 degrees/s, +# * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s, +# and greater than (n-1) x 0,01 degrees/s, +# * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left, +# * - `32 767` to indicate that the information is not available. +# * +# * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified. +# * The reading instant should be the same as for the vehicle acceleration. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * +# * @unit: 0,01 degree per second. +# * @category: Vehicle Information +# * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly). +# + +int16 value +int16 MIN = -32766 +int16 MAX = 32767 +int16 NEGATIVE_OUT_OF_RANGE = -32766 +int16 POSITIVE_OUT_OF_RANGE = 32766 +int16 UNAVAILABLE = 32767 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/package.xml b/etsi_its_msgs/etsi_its_cam_ts_msgs/package.xml new file mode 100644 index 000000000..37079174d --- /dev/null +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/package.xml @@ -0,0 +1,36 @@ + + + + etsi_its_cam_ts_msgs + 2.1.0 + ROS messages for ETSI ITS CAM (TS) + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + ros_environment + std_msgs + + + rosidl_default_generators + rosidl_default_runtime + rosidl_interface_packages + + + catkin + message_generation + message_runtime + + + catkin + ament_cmake + + + diff --git a/etsi_its_msgs/etsi_its_msgs/CMakeLists.txt b/etsi_its_msgs/etsi_its_msgs/CMakeLists.txt index b75c356a2..964ef9f99 100644 --- a/etsi_its_msgs/etsi_its_msgs/CMakeLists.txt +++ b/etsi_its_msgs/etsi_its_msgs/CMakeLists.txt @@ -9,10 +9,11 @@ if(${ROS_VERSION} EQUAL 2) find_package(ament_cmake REQUIRED) find_package(etsi_its_cam_msgs REQUIRED) + find_package(etsi_its_cam_ts_msgs REQUIRED) find_package(etsi_its_denm_msgs REQUIRED) find_package(etsi_its_cpm_ts_msgs REQUIRED) - ament_export_dependencies(etsi_its_cam_msgs etsi_its_denm_msgs etsi_its_cpm_ts_msgs) + ament_export_dependencies(etsi_its_cam_msgs etsi_its_cam_ts_msgs etsi_its_denm_msgs etsi_its_cpm_ts_msgs) ament_package() # === ROS (CATKIN) ============================================================= @@ -20,6 +21,7 @@ elseif(${ROS_VERSION} EQUAL 1) find_package(catkin REQUIRED COMPONENTS etsi_its_cam_msgs + etsi_its_cam_ts_msgs etsi_its_denm_msgs etsi_its_cpm_ts_msgs ) @@ -27,6 +29,7 @@ elseif(${ROS_VERSION} EQUAL 1) catkin_package( CATKIN_DEPENDS etsi_its_cam_msgs + etsi_its_cam_ts_msgs etsi_its_denm_msgs etsi_its_cpm_ts_msgs ) diff --git a/etsi_its_msgs/etsi_its_msgs/package.xml b/etsi_its_msgs/etsi_its_msgs/package.xml index 3182b23f7..f01b6f943 100644 --- a/etsi_its_msgs/etsi_its_msgs/package.xml +++ b/etsi_its_msgs/etsi_its_msgs/package.xml @@ -16,6 +16,7 @@ MIT etsi_its_cam_msgs + etsi_its_cam_ts_msgs etsi_its_denm_msgs etsi_its_cpm_ts_msgs ros_environment diff --git a/etsi_its_msgs_utils/CMakeLists.txt b/etsi_its_msgs_utils/CMakeLists.txt index 552a265b7..7fe623f33 100644 --- a/etsi_its_msgs_utils/CMakeLists.txt +++ b/etsi_its_msgs_utils/CMakeLists.txt @@ -55,6 +55,18 @@ if(${ROS_VERSION} EQUAL 2) GeographicLib geometry_msgs ) + find_package(ament_cmake_gtest REQUIRED) + ament_add_gtest(${PROJECT_NAME}-cam_ts_test test/test_cam_ts_access.ros2.cpp) + target_include_directories(${PROJECT_NAME}-cam_ts_test PUBLIC + $ + $ + ) + target_include_directories(${PROJECT_NAME}-cam_ts_test PUBLIC test) + ament_target_dependencies(${PROJECT_NAME}-cam_ts_test + etsi_its_msgs + GeographicLib + geometry_msgs + ) ament_add_gtest(${PROJECT_NAME}-denm_test test/test_denm_access.ros2.cpp) target_include_directories(${PROJECT_NAME}-denm_test PUBLIC $ diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/cam_ts_access.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/cam_ts_access.h new file mode 100644 index 000000000..cddc30559 --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/cam_ts_access.h @@ -0,0 +1,43 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file cam_ts_access.h + * @brief Main CAM access header to include in ROS 1 projects + */ + +#pragma once + +// Messages +#include +#include + +namespace etsi_its_cam_ts_msgs { + namespace gm = geometry_msgs; +} + +// Implementation +#include \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/cam_ts_access.hpp b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/cam_ts_access.hpp new file mode 100644 index 000000000..366473ad6 --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/cam_ts_access.hpp @@ -0,0 +1,44 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file cam_ts_access.hpp + * @brief Main CAM access header to include in ROS 2 projects + */ + +#pragma once + +// Messages +#include +#include + +namespace etsi_its_cam_ts_msgs { + using namespace msg; + namespace gm = geometry_msgs::msg; +} + +// Implementation +#include \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_access.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_access.h index 769ee7b38..0ded5ced3 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_access.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_access.h @@ -31,10 +31,15 @@ SOFTWARE. #pragma once -using namespace etsi_its_cam_msgs; +#include +#include +#include -#include +#include #include #include + +namespace etsi_its_cam_msgs::access { #include +} // namespace etsi_its_cam_msgs::access \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_getters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_getters.h index 34975be94..6e6c30b32 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_getters.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_getters.h @@ -26,191 +26,12 @@ SOFTWARE. /** * @file impl/cam/cam_getters.h - * @brief Getter functions for the ETSI ITS CAM + * @brief Getter functions for the ETSI ITS CAM (EN) */ #pragma once -namespace cdd = etsi_its_msgs::cdd_access; -namespace etsi_its_cam_msgs { - -namespace access { - - - /** - * @brief Get the Station ID object - * - * @param cam CAM to get the StationID value from - * @return stationID value - */ - inline uint32_t getStationID(const CAM& cam){ - return cdd::getStationID(cam.header); - } - - /** - * @brief Get the GenerationDeltaTime - * - * @param cam CAM to get the GenerationDeltaTime from - * @return GenerationDeltaTime the GenerationDeltaTime - */ - inline GenerationDeltaTime getGenerationDeltaTime(const CAM& cam){ - return cam.cam.generation_delta_time; - } - - /** - * @brief Get the GenerationDeltaTime-Value - * - * @param cam CAM to get the GenerationDeltaTime-Value from - * @return uint16_t the GenerationDeltaTime-Value - */ - inline uint16_t getGenerationDeltaTimeValue(const CAM& cam){ - return getGenerationDeltaTime(cam).value; - } - - /** - * @brief Get the stationType object - * - * @param cam CAM to get the stationType value from - * @return stationType value - */ - inline uint8_t getStationType(const CAM& cam){ - return cam.cam.cam_parameters.basic_container.station_type.value; - } - - /** - * @brief Get the Latitude value of CAM - * - * @param cam CAM to get the Latitude value from - * @return Latitude value in degree as decimal number - */ - inline double getLatitude(const CAM& cam){ - return cdd::getLatitude(cam.cam.cam_parameters.basic_container.reference_position.latitude); - } - - /** - * @brief Get the Longitude value of CAM - * - * @param cam CAM to get the Longitude value from - * @return Longitude value in degree as decimal number - */ - inline double getLongitude(const CAM& cam){ - return cdd::getLongitude(cam.cam.cam_parameters.basic_container.reference_position.longitude); - } - - /** - * @brief Get the Altitude value of CAM - * - * @param cam CAM to get the Altitude value from - * @return Altitude value (above the reference ellipsoid surface) in meter as decimal number - */ - inline double getAltitude(const CAM& cam){ - return cdd::getAltitude(cam.cam.cam_parameters.basic_container.reference_position.altitude); - } - - /** - * @brief Get the Heading value of CAM - * - * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West - * - * @param cam CAM to get the Heading value from - * @return Heading value in degree as decimal number - */ - inline double getHeading(const CAM& cam){ - return cdd::getHeading(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading); - } - - /** - * @brief Get the Vehicle Length - * - * @param cam CAM to get the vehicle length value from - * @return vehicle length value in meter as decimal number - */ - inline double getVehicleLength(const CAM& cam){ - return cdd::getVehicleLength(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length); - } - - /** - * @brief Get the Vehicle Width - * - * @param cam CAM to get the vehicle width value from - * @return vehicle width value in meter as decimal number - */ - inline double getVehicleWidth(const CAM& cam){ - return cdd::getVehicleWidth(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width); - } - - /** - * @brief Get the vehicle speed - * - * @param cam CAM to get the speed value from - * @return speed value in m/s as decimal number - */ - inline double getSpeed(const CAM& cam){ - return cdd::getSpeed(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed); - } - - /** - * @brief Get the lateral acceleration - * - * @param cam CAM to get the lateral acceleration from - * @return lateral acceleration in m/s^2 as decimal number (left is positive) - */ - inline double getLongitudinalAcceleration(const CAM& cam){ - return cdd::getLongitudinalAcceleration(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration); - } - - /** - * @brief Get the lateral acceleration - * - * @param cam CAM to get the lateral acceleration from - * @return lateral acceleration in m/s^2 as decimal number (left is positive) - */ - inline double getLateralAcceleration(const CAM& cam){ - if(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration_is_present) - { - return cdd::getLateralAcceleration(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration); - } - else - { - throw std::invalid_argument("LateralAcceleration is not present!"); - } - } - - /** - * @brief Get the UTM Position defined within the BasicContainer of the CAM - * - * The position is transformed into UTM by using GeographicLib::UTMUPS - * The altitude value is directly used as z-Coordinate - * - * @param[in] cam CAM to get the UTM Position from - * @param[out] zone the UTM zone (zero means UPS) - * @param[out] northp hemisphere (true means north, false means south) - * @return gm::PointStamped geometry_msgs::PointStamped of the given position - */ - inline gm::PointStamped getUTMPosition(const CAM& cam, int& zone, bool& northp){ - return cdd::getUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, zone, northp); - } - - /** - * @brief Get Exterior Lights as bool vector - * - * @param cam CAM to get the ExteriorLights values from - * @return std::vector - */ - inline std::vector getExteriorLights(const CAM& cam){ - if(cam.cam.cam_parameters.low_frequency_container_is_present) { - if(cam.cam.cam_parameters.low_frequency_container.choice == etsi_its_cam_msgs::LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY) { - return cdd::getExteriorLights(cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights); - } - else { - throw std::invalid_argument("LowFrequencyContainer is not BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY!"); - } - } - else { - throw std::invalid_argument("LowFrequencyContainer is not present!"); - } - } - -} // namespace access - -} // namespace etsi_its_cam_msgs +namespace etsi_its_cam_msgs::access { +#include +#include +} // namespace etsi_its_cam_msgs::access \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_getters_common.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_getters_common.h new file mode 100644 index 000000000..0ffeb51ff --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_getters_common.h @@ -0,0 +1,206 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cam/cam_getters_common.h + * @brief Common getter functions for the ETSI ITS CAM (EN and TS) + */ + +#pragma once + +/** + * @brief Get the Station ID object + * + * @param cam CAM to get the StationID value from + * @return stationID value + */ +inline uint32_t getStationID(const CAM& cam){ + return getStationID(cam.header); +} + +/** + * @brief Get the GenerationDeltaTime + * + * @param cam CAM to get the GenerationDeltaTime from + * @return GenerationDeltaTime the GenerationDeltaTime + */ +inline GenerationDeltaTime getGenerationDeltaTime(const CAM& cam){ + return cam.cam.generation_delta_time; +} + +/** + * @brief Get the GenerationDeltaTime-Value + * + * @param cam CAM to get the GenerationDeltaTime-Value from + * @return uint16_t the GenerationDeltaTime-Value + */ +inline uint16_t getGenerationDeltaTimeValue(const CAM& cam){ + return getGenerationDeltaTime(cam).value; +} + +/** + * @brief Get the stationType object + * + * @param cam CAM to get the stationType value from + * @return stationType value + */ +inline uint8_t getStationType(const CAM& cam){ + return cam.cam.cam_parameters.basic_container.station_type.value; +} + +/** + * @brief Get the Latitude value of CAM + * + * @param cam CAM to get the Latitude value from + * @return Latitude value in degree as decimal number + */ +inline double getLatitude(const CAM& cam){ + return getLatitude(cam.cam.cam_parameters.basic_container.reference_position.latitude); +} + +/** + * @brief Get the Longitude value of CAM + * + * @param cam CAM to get the Longitude value from + * @return Longitude value in degree as decimal number + */ +inline double getLongitude(const CAM& cam){ + return getLongitude(cam.cam.cam_parameters.basic_container.reference_position.longitude); +} + +/** + * @brief Get the Altitude value of CAM + * + * @param cam CAM to get the Altitude value from + * @return Altitude value (above the reference ellipsoid surface) in meter as decimal number + */ +inline double getAltitude(const CAM& cam){ + return getAltitude(cam.cam.cam_parameters.basic_container.reference_position.altitude); +} + +/** + * @brief Get the Heading value of CAM + * + * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West + * + * @param cam CAM to get the Heading value from + * @return Heading value in degree as decimal number + */ +inline double getHeading(const CAM& cam){ + return getHeading(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading); +} + +/** + * @brief Get the Vehicle Length + * + * @param cam CAM to get the vehicle length value from + * @return vehicle length value in meter as decimal number + */ +inline double getVehicleLength(const CAM& cam){ + return getVehicleLength(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length); +} + +/** + * @brief Get the Vehicle Width + * + * @param cam CAM to get the vehicle width value from + * @return vehicle width value in meter as decimal number + */ +inline double getVehicleWidth(const CAM& cam){ + return getVehicleWidth(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width); +} + +/** + * @brief Get the vehicle speed + * + * @param cam CAM to get the speed value from + * @return speed value in m/s as decimal number + */ +inline double getSpeed(const CAM& cam){ + return getSpeed(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed); +} + +/** + * @brief Get the lateral acceleration + * + * @param cam CAM to get the lateral acceleration from + * @return lateral acceleration in m/s^2 as decimal number (left is positive) + */ +inline double getLongitudinalAcceleration(const CAM& cam){ + return getLongitudinalAcceleration(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration); +} + +/** + * @brief Get the lateral acceleration + * + * @param cam CAM to get the lateral acceleration from + * @return lateral acceleration in m/s^2 as decimal number (left is positive) + */ +inline double getLateralAcceleration(const CAM& cam){ + if(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration_is_present) + { + return getLateralAcceleration(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration); + } + else + { + throw std::invalid_argument("LateralAcceleration is not present!"); + } +} + +/** + * @brief Get the UTM Position defined within the BasicContainer of the CAM + * + * The position is transformed into UTM by using GeographicLib::UTMUPS + * The altitude value is directly used as z-Coordinate + * + * @param[in] cam CAM to get the UTM Position from + * @param[out] zone the UTM zone (zero means UPS) + * @param[out] northp hemisphere (true means north, false means south) + * @return gm::PointStamped geometry_msgs::PointStamped of the given position + */ +inline gm::PointStamped getUTMPosition(const CAM& cam, int& zone, bool& northp){ + return getUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, zone, northp); +} + +/** + * @brief Get Exterior Lights as bool vector + * + * @param cam CAM to get the ExteriorLights values from + * @return std::vector + */ +inline std::vector getExteriorLights(const CAM& cam){ + if(cam.cam.cam_parameters.low_frequency_container_is_present) { + if(cam.cam.cam_parameters.low_frequency_container.choice == LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY) { + return getExteriorLights(cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights); + } + else { + throw std::invalid_argument("LowFrequencyContainer is not BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY!"); + } + } + else { + throw std::invalid_argument("LowFrequencyContainer is not present!"); + } +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_setters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_setters.h index f373da25d..dbdf0d564 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_setters.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_setters.h @@ -26,17 +26,17 @@ SOFTWARE. /** * @file impl/cam/cam_setters.h - * @brief Setter functions for the ETSI ITS CAM + * @brief Setter functions for the ETSI ITS CAM (EN) */ #pragma once #include -namespace cdd = etsi_its_msgs::cdd_access; -namespace etsi_its_cam_msgs { +namespace etsi_its_cam_msgs::access { -namespace access { +#include +#include /** * @brief Set the ItsPduHeader-object for a CAM @@ -45,169 +45,9 @@ namespace access { * @param station_id * @param protocol_version */ - inline void setItsPduHeader(CAM& cam, const uint32_t station_id, const uint8_t protocol_version = 0){ - cdd::setItsPduHeader(cam.header, ItsPduHeader::MESSAGE_ID_CAM, station_id, protocol_version); - } - - /** - * @brief Set the GenerationDeltaTime-Value - * - * @param generation_delta_time GenerationDeltaTime to set the GenerationDeltaTime-Value for - * @param unix_nanosecs Timestamp in unix-nanoseconds to set the GenerationDeltaTime-Value from - * @param n_leap_seconds Number of leap seconds since 2004 for the given timestamp (Default: etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) - */ - inline void setGenerationDeltaTime(GenerationDeltaTime& generation_delta_time, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) { - TimestampIts t_its; - cdd::setTimestampITS(t_its, unix_nanosecs, n_leap_seconds); - uint16_t gdt_value = t_its.value%65536; - cdd::throwIfOutOfRange(gdt_value, GenerationDeltaTime::MIN, GenerationDeltaTime::MAX, "GenerationDeltaTime"); - generation_delta_time.value=gdt_value; - } - - /** - * @brief Set the Generation Delta Time object - * - * @param cam CAM to set the GenerationDeltaTime-Value for - * @param unix_nanosecs Timestamp in unix-nanoseconds to set the GenerationDeltaTime-Value from - * @param n_leap_seconds Number of leap seconds since 2004 for the given timestamp (Default: etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) - */ - inline void setGenerationDeltaTime(CAM& cam, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) { - setGenerationDeltaTime(cam.cam.generation_delta_time, unix_nanosecs, n_leap_seconds); - } - - /** - * @brief Set the StationType for a CAM - * - * @param cam CAM-Message to set the station_type value - * @param value station_type value to set - */ - inline void setStationType(CAM& cam, const uint8_t value){ - cdd::setStationType(cam.cam.cam_parameters.basic_container.station_type, value); - } - - /** - * @brief Set the ReferencePosition for a CAM - * - * Altitude is set to UNAVAILABLE - * - * @param cam CAM to set the ReferencePosition - * @param latitude Latitude value in degree as decimal number - * @param longitude Longitude value in degree as decimal number - */ - inline void setReferencePosition(CAM& cam, const double latitude, const double longitude) - { - cdd::setReferencePosition(cam.cam.cam_parameters.basic_container.reference_position, latitude, longitude); - } - - /** - * @brief Set the ReferencePosition for a CAM - * - * @param cam CAM to set the ReferencePosition - * @param latitude Latitude value in degree as decimal number - * @param longitude Longitude value in degree as decimal number - * @param altitude Altitude value (above the reference ellipsoid surface) in meter as decimal number - */ - inline void setReferencePosition(CAM& cam, const double latitude, const double longitude, const double altitude) - { - cdd::setReferencePosition(cam.cam.cam_parameters.basic_container.reference_position, latitude, longitude, altitude); - } - - /** - * @brief Set the Heading for a CAM - * - * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West - * HeadingConfidence is set to UNAVAILABLE - * - * @param cam CAM to set the ReferencePosition - * @param value Heading value in degree as decimal number - */ - inline void setHeading(CAM& cam, const double heading_val){ - cdd::setHeading(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading, heading_val); - } - - /** - * @brief Set the vehicle dimensions - * - * @param cam CAM to set the vehicle dimensions - * @param vehicle_length vehicle length in meter as decimal number - * @param vehicle_width vehicle width in meter as decimal number - */ - inline void setVehicleDimensions(CAM& cam, const double vehicle_length, const double vehicle_width){ - cdd::setVehicleLength(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length, vehicle_length); - cdd::setVehicleWidth(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width, vehicle_width); - } - - /** - * @brief Set the vehicle speed - * - * @param cam CAM to set the speed value - * @param speed_val speed value to set in m/s as decimal number - */ - inline void setSpeed(CAM& cam, const double speed_val){ - cdd::setSpeed(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed, speed_val); - } - - /** - * @brief Set the longitudinal acceleration - * - * @param cam CAM to set the acceleration value s - * @param lon_accel longitudinal acceleration to set in m/s^2 as decimal number (braking is negative), if not available use 16.1 m/s^2 - */ - inline void setLongitudinalAcceleration(CAM& cam, const double lon_accel){ - cdd::setLongitudinalAcceleration(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration, lon_accel); - } - - /** - * @brief Set the lateral acceleration - * - * @param cam CAM to set the acceleration value s - * @param lat_accel lateral acceleration to set in m/s^2 as decimal number (left is positiv), if not available use 16.1 m/s^2 - */ - inline void setLateralAcceleration(CAM& cam, const double lat_accel){ - cdd::setLateralAcceleration(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration, lat_accel); - cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration_is_present = true; - } - - /** - * @brief Set the ReferencePosition of a CAM from a given UTM-Position - * - * The position is transformed to latitude and longitude by using GeographicLib::UTMUPS - * The z-Coordinate is directly used as altitude value - * The frame_id of the given utm_position must be set to 'utm_' - * - * @param[out] cam CAM for which to set the ReferencePosition - * @param[in] utm_position geometry_msgs::PointStamped describing the given utm position - * @param[in] zone the UTM zone (zero means UPS) of the given position - * @param[in] northp hemisphere (true means north, false means south) - */ - inline void setFromUTMPosition(CAM& cam, const gm::PointStamped& utm_position, const int& zone, const bool& northp) + inline void setItsPduHeader(CAM &cam, const uint32_t station_id, const uint8_t protocol_version = 0) { - cdd::setFromUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, utm_position, zone, northp); - } - - /** - * @brief Set the Exterior Lights by using a vector of bools - * - * @param cam CAM to set the exterior lights - * @param exterior_lights vector of bools to set the exterior lights - */ - inline void setExteriorLights(CAM& cam, const std::vector& exterior_lights){ - if(etsi_its_cam_msgs::ExteriorLights::SIZE_BITS != exterior_lights.size()) { - throw std::invalid_argument("Vector has wrong size. (" + std::to_string(exterior_lights.size()) + " != " + std::to_string(etsi_its_cam_msgs::ExteriorLights::SIZE_BITS) + ")"); - } - if(cam.cam.cam_parameters.low_frequency_container_is_present) { - if(cam.cam.cam_parameters.low_frequency_container.choice == etsi_its_cam_msgs::LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY) { - cdd::setExteriorLights(cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights, exterior_lights); - } - else { - throw std::invalid_argument("LowFrequencyContainer is not BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY!"); - } - } - else { - throw std::invalid_argument("LowFrequencyContainer is not present!"); - } + setItsPduHeader(cam.header, ItsPduHeader::MESSAGE_ID_CAM, station_id, protocol_version); } -} // namespace access - -} // namespace etsi_its_cam_msgs +} // namespace etsi_its_cam_msgs::access diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_setters_common.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_setters_common.h new file mode 100644 index 000000000..77e1953d0 --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_setters_common.h @@ -0,0 +1,193 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cam/cam_setters_common.h + * @brief Common setter functions for the ETSI ITS CAM (EN and TS) + */ + +#pragma once + +#include + +/** + * @brief Set the GenerationDeltaTime-Value + * + * @param generation_delta_time GenerationDeltaTime to set the GenerationDeltaTime-Value for + * @param unix_nanosecs Timestamp in unix-nanoseconds to set the GenerationDeltaTime-Value from + * @param n_leap_seconds Number of leap seconds since 2004 for the given timestamp (Default: etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) + */ +inline void setGenerationDeltaTime(GenerationDeltaTime& generation_delta_time, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) { + TimestampIts t_its; + setTimestampITS(t_its, unix_nanosecs, n_leap_seconds); + uint16_t gdt_value = t_its.value%65536; + throwIfOutOfRange(gdt_value, GenerationDeltaTime::MIN, GenerationDeltaTime::MAX, "GenerationDeltaTime"); + generation_delta_time.value=gdt_value; +} + +/** + * @brief Set the Generation Delta Time object + * + * @param cam CAM to set the GenerationDeltaTime-Value for + * @param unix_nanosecs Timestamp in unix-nanoseconds to set the GenerationDeltaTime-Value from + * @param n_leap_seconds Number of leap seconds since 2004 for the given timestamp (Default: etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) + */ +inline void setGenerationDeltaTime(CAM& cam, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) { + setGenerationDeltaTime(cam.cam.generation_delta_time, unix_nanosecs, n_leap_seconds); +} + +/** + * @brief Set the StationType for a CAM + * + * @param cam CAM-Message to set the station_type value + * @param value station_type value to set + */ +inline void setStationType(CAM& cam, const uint8_t value){ + setStationType(cam.cam.cam_parameters.basic_container.station_type, value); +} + +/** + * @brief Set the ReferencePosition for a CAM + * + * Altitude is set to UNAVAILABLE + * + * @param cam CAM to set the ReferencePosition + * @param latitude Latitude value in degree as decimal number + * @param longitude Longitude value in degree as decimal number + */ +inline void setReferencePosition(CAM& cam, const double latitude, const double longitude) +{ + setReferencePosition(cam.cam.cam_parameters.basic_container.reference_position, latitude, longitude); +} + +/** + * @brief Set the ReferencePosition for a CAM + * + * @param cam CAM to set the ReferencePosition + * @param latitude Latitude value in degree as decimal number + * @param longitude Longitude value in degree as decimal number + * @param altitude Altitude value (above the reference ellipsoid surface) in meter as decimal number + */ +inline void setReferencePosition(CAM& cam, const double latitude, const double longitude, const double altitude) +{ + setReferencePosition(cam.cam.cam_parameters.basic_container.reference_position, latitude, longitude, altitude); +} + +/** + * @brief Set the Heading for a CAM + * + * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West + * HeadingConfidence is set to UNAVAILABLE + * + * @param cam CAM to set the ReferencePosition + * @param value Heading value in degree as decimal number + */ +inline void setHeading(CAM& cam, const double heading_val){ + setHeading(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.heading, heading_val); +} + +/** + * @brief Set the vehicle dimensions + * + * @param cam CAM to set the vehicle dimensions + * @param vehicle_length vehicle length in meter as decimal number + * @param vehicle_width vehicle width in meter as decimal number + */ +inline void setVehicleDimensions(CAM& cam, const double vehicle_length, const double vehicle_width){ + setVehicleLength(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_length, vehicle_length); + setVehicleWidth(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.vehicle_width, vehicle_width); +} + +/** + * @brief Set the vehicle speed + * + * @param cam CAM to set the speed value + * @param speed_val speed value to set in m/s as decimal number + */ +inline void setSpeed(CAM& cam, const double speed_val){ + setSpeed(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.speed, speed_val); +} + +/** + * @brief Set the longitudinal acceleration + * + * @param cam CAM to set the acceleration value s + * @param lon_accel longitudinal acceleration to set in m/s^2 as decimal number (braking is negative), if not available use 16.1 m/s^2 + */ +inline void setLongitudinalAcceleration(CAM& cam, const double lon_accel){ + setLongitudinalAcceleration(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.longitudinal_acceleration, lon_accel); +} + +/** + * @brief Set the lateral acceleration + * + * @param cam CAM to set the acceleration value s + * @param lat_accel lateral acceleration to set in m/s^2 as decimal number (left is positiv), if not available use 16.1 m/s^2 + */ +inline void setLateralAcceleration(CAM& cam, const double lat_accel){ + setLateralAcceleration(cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration, lat_accel); + cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency.lateral_acceleration_is_present = true; +} + +/** + * @brief Set the ReferencePosition of a CAM from a given UTM-Position + * + * The position is transformed to latitude and longitude by using GeographicLib::UTMUPS + * The z-Coordinate is directly used as altitude value + * The frame_id of the given utm_position must be set to 'utm_' + * + * @param[out] cam CAM for which to set the ReferencePosition + * @param[in] utm_position geometry_msgs::PointStamped describing the given utm position + * @param[in] zone the UTM zone (zero means UPS) of the given position + * @param[in] northp hemisphere (true means north, false means south) + */ +inline void setFromUTMPosition(CAM& cam, const gm::PointStamped& utm_position, const int& zone, const bool& northp) +{ + setFromUTMPosition(cam.cam.cam_parameters.basic_container.reference_position, utm_position, zone, northp); +} + +/** + * @brief Set the Exterior Lights by using a vector of bools + * + * @param cam CAM to set the exterior lights + * @param exterior_lights vector of bools to set the exterior lights + */ +inline void setExteriorLights(CAM& cam, const std::vector& exterior_lights){ + if(ExteriorLights::SIZE_BITS != exterior_lights.size()) { + throw std::invalid_argument("Vector has wrong size. (" + std::to_string(exterior_lights.size()) + " != " + std::to_string(ExteriorLights::SIZE_BITS) + ")"); + } + if(cam.cam.cam_parameters.low_frequency_container_is_present) { + if(cam.cam.cam_parameters.low_frequency_container.choice == LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY) { + setExteriorLights(cam.cam.cam_parameters.low_frequency_container.basic_vehicle_container_low_frequency.exterior_lights, exterior_lights); + } + else { + throw std::invalid_argument("LowFrequencyContainer is not BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY!"); + } + } + else { + throw std::invalid_argument("LowFrequencyContainer is not present!"); + } +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_access.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_access.h new file mode 100644 index 000000000..8f4e3a9a3 --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_access.h @@ -0,0 +1,45 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cam/cam_ts_access.h + * @brief Main CAM TS access implementation header + */ + +#pragma once + +#include +#include +#include + +#include + +#include +#include + +namespace etsi_its_cam_ts_msgs::access { +#include +} // namespace etsi_its_cam_ts_msgs::access \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_access.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_getters.h similarity index 81% rename from etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_access.h rename to etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_getters.h index a725b86ca..1c83b2c12 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_access.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_getters.h @@ -25,14 +25,13 @@ SOFTWARE. */ /** - * @file impl/cdd/cdd_access.h - * @brief Main CDD access implementation header + * @file impl/cam/cam_ts_getters.h + * @brief Getter functions for the ETSI ITS CAM (TS) */ #pragma once -#include - -#include -#include -#include +namespace etsi_its_cam_ts_msgs::access { +#include +#include +} // namespace etsi_its_cam_ts_msgs::access diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_setters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_setters.h new file mode 100644 index 000000000..e3ed27a27 --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_ts_setters.h @@ -0,0 +1,52 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cam/cam_ts_setters.h + * @brief Setter functions for the ETSI ITS CAM (TS) + */ + +#pragma once + +#include + +namespace etsi_its_cam_ts_msgs::access { + +#include +#include + + /** + * @brief Set the ItsPduHeader-object for a CAM + * + * @param cam CAM-Message to set the ItsPduHeader + * @param station_id + * @param protocol_version + */ + inline void setItsPduHeader(CAM& cam, const uint32_t station_id, const uint8_t protocol_version = 0){ + setItsPduHeader(cam.header, MessageId::CAM, station_id, protocol_version); + } + +} // namespace etsi_its_cam_ts_msgs::access diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_utils.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_utils.h index c0809f97b..ba54b749a 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_utils.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cam/cam_utils.h @@ -26,7 +26,7 @@ SOFTWARE. /** * @file impl/cam/cam_utils.h - * @brief Utility functions for the ETSI ITS CAM + * @brief Utility functions for the ETSI ITS CAM (EN and TS) */ #include @@ -34,53 +34,45 @@ SOFTWARE. #pragma once -namespace cdd = etsi_its_msgs::cdd_access; -namespace etsi_its_cam_msgs { - -namespace access { - - /** - * @brief Get the TimestampITS from a given GenerationDeltaTime object - * - * @param generation_delta_time the GenerationDeltaTime object to get the TimestampITS from - * @param timestamp_estimate estimated time to calculate the corresponding generation from - * @return TimestampIts the corresponding TimestampITS object - */ - inline TimestampIts getTimestampITSFromGenerationDeltaTime(const GenerationDeltaTime& generation_delta_time, const TimestampIts& timestamp_estimate) - { - TimestampIts t_its; - t_its.value = std::floor(timestamp_estimate.value/65536)*65536+generation_delta_time.value; - cdd::throwIfOutOfRange(t_its.value, TimestampIts::MIN, TimestampIts::MAX, "TimestampIts"); - return t_its; - } - - /** - * @brief Get the Unix-Nanoseconds from a given GenerationDeltaTime object - * - * @param generation_delta_time the GenerationDeltaTime object to get the Unix-Nanoseconds from - * @param timestamp_estimate estimated time to calculate the corresponding generation from - * @param n_leap_seconds number of leap-seconds since 2004. (Default: etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) - * @return uint64_t the corresponding Unix-Nanoseconds - */ - inline uint64_t getUnixNanosecondsFromGenerationDeltaTime(const GenerationDeltaTime& generation_delta_time, const TimestampIts& timestamp_estimate, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) - { - TimestampIts t_its = getTimestampITSFromGenerationDeltaTime(generation_delta_time, timestamp_estimate); - return t_its.value*1e6+etsi_its_msgs::UNIX_SECONDS_2004*1e9-n_leap_seconds*1e9; - } +/** + * @brief Get the TimestampITS from a given GenerationDeltaTime object + * + * @param generation_delta_time the GenerationDeltaTime object to get the TimestampITS from + * @param timestamp_estimate estimated time to calculate the corresponding generation from + * @return TimestampIts the corresponding TimestampITS object + */ +inline TimestampIts getTimestampITSFromGenerationDeltaTime(const GenerationDeltaTime& generation_delta_time, const TimestampIts& timestamp_estimate) +{ + TimestampIts t_its; + t_its.value = std::floor(timestamp_estimate.value/65536)*65536+generation_delta_time.value; + throwIfOutOfRange(t_its.value, TimestampIts::MIN, TimestampIts::MAX, "TimestampIts"); + return t_its; +} - /** - * @brief Get the Unix Nanoseconds from Generation Delta Time object - * - * @param generation_delta_time the GenerationDeltaTime object to get the Unix-Nanoseconds from - * @param unix_timestamp_estimate estimated unix-time (in Nanoseconds) to calculate the corresponding generation from - * @return uint64_t the corresponding Unix-Nanoseconds - */ - inline uint64_t getUnixNanosecondsFromGenerationDeltaTime(const GenerationDeltaTime& generation_delta_time, const uint64_t unix_timestamp_estimate, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) - { - TimestampIts t_its; - cdd::setTimestampITS(t_its, unix_timestamp_estimate, n_leap_seconds); - return getUnixNanosecondsFromGenerationDeltaTime(generation_delta_time, t_its, n_leap_seconds); - } +/** + * @brief Get the Unix-Nanoseconds from a given GenerationDeltaTime object + * + * @param generation_delta_time the GenerationDeltaTime object to get the Unix-Nanoseconds from + * @param timestamp_estimate estimated time to calculate the corresponding generation from + * @param n_leap_seconds number of leap-seconds since 2004. (Default: etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) + * @return uint64_t the corresponding Unix-Nanoseconds + */ +inline uint64_t getUnixNanosecondsFromGenerationDeltaTime(const GenerationDeltaTime& generation_delta_time, const TimestampIts& timestamp_estimate, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) +{ + TimestampIts t_its = getTimestampITSFromGenerationDeltaTime(generation_delta_time, timestamp_estimate); + return t_its.value*1e6+etsi_its_msgs::UNIX_SECONDS_2004*1e9-n_leap_seconds*1e9; +} -} // namespace etsi_its_cam_msgs -} // namespace access +/** + * @brief Get the Unix Nanoseconds from Generation Delta Time object + * + * @param generation_delta_time the GenerationDeltaTime object to get the Unix-Nanoseconds from + * @param unix_timestamp_estimate estimated unix-time (in Nanoseconds) to calculate the corresponding generation from + * @return uint64_t the corresponding Unix-Nanoseconds + */ +inline uint64_t getUnixNanosecondsFromGenerationDeltaTime(const GenerationDeltaTime& generation_delta_time, const uint64_t unix_timestamp_estimate, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) +{ + TimestampIts t_its; + setTimestampITS(t_its, unix_timestamp_estimate, n_leap_seconds); + return getUnixNanosecondsFromGenerationDeltaTime(generation_delta_time, t_its, n_leap_seconds); +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_checks.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_checks.h index b5e1c443e..16e371f77 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_checks.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_checks.h @@ -31,15 +31,7 @@ SOFTWARE. #pragma once -namespace etsi_its_msgs { - -namespace cdd_access { - - template - void throwIfOutOfRange(const T1& val, const T2& min, const T2& max, const std::string val_desc) { - if (val < min || val > max) throw std::invalid_argument(val_desc+" value is out of range ("+std::to_string(min)+"..."+std::to_string(max)+")!"); - } - -} // namespace cdd_access - -} // namespace etsi_its_msgs \ No newline at end of file +template +void throwIfOutOfRange(const T1& val, const T2& min, const T2& max, const std::string val_desc) { + if (val < min || val > max) throw std::invalid_argument(val_desc+" value is out of range ("+std::to_string(min)+"..."+std::to_string(max)+")!"); +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_getters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_getters.h deleted file mode 100644 index 08a65baf0..000000000 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_getters.h +++ /dev/null @@ -1,265 +0,0 @@ -/* -============================================================================= -MIT License - -Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -============================================================================= -*/ - -/** - * @file impl/cdd/cdd_getters.h - * @brief Getter functions for the ETSI ITS Common Data Dictionary (CDD) - */ - -#include - -#pragma once - -namespace etsi_its_msgs { - -namespace cdd_access { - - /** - * @brief Get the StationID of ItsPduHeader - * - * @param header ItsPduHeader to get the StationID value from - * @return stationID value - */ - inline uint32_t getStationID(const ItsPduHeader& header){ - return header.station_id.value; - } - - /** - * @brief Get the Latitude value - * - * @param latitude to get the Latitude value from - * @return Latitude value in degree as decimal number - */ - inline double getLatitude(const Latitude& latitude){ - return ((double)latitude.value)*1e-7; - } - - /** - * @brief Get the Longitude value - * - * @param longitude to get the Longitude value from - * @return Longitude value in degree as decimal number - */ - inline double getLongitude(const Longitude& longitude){ - return ((double)longitude.value)*1e-7; - } - - /** - * @brief Get the Altitude value - * - * @param altitude to get the Altitude value from - * @return Altitude value (above the reference ellipsoid surface) in meter as decimal number - */ - inline double getAltitude(const Altitude& altitude){ - return ((double)altitude.altitude_value.value)*1e-2; - } - - /** - * @brief Get the Heading value - * - * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West - * - * @param heading to get the Heading value from - * @return Heading value in degree as decimal number - */ - inline double getHeading(const Heading& heading){ - return ((double)heading.heading_value.value)*1e-1; - } - - /** - * @brief Get the Vehicle Length - * - * @param vehicleLength to get the vehicle length value from - * @return vehicle length value in meter as decimal number - */ - inline double getVehicleLength(const VehicleLength& vehicle_length){ - return ((double)vehicle_length.vehicle_length_value.value)*1e-1; - } - - /** - * @brief Get the Vehicle Width - * - * @param vehicleWidth to get the vehicle width value from - * @return vehicle width value in meter as decimal number - */ - inline double getVehicleWidth(const VehicleWidth& vehicle_width){ - return ((double)vehicle_width.value)*1e-1; - } - - /** - * @brief Get the vehicle speed - * - * @param speed to get the speed value from - * @return speed value in m/s as decimal number - */ - inline double getSpeed(const Speed& speed){ - return ((double)speed.speed_value.value)*1e-2; - } - - /** - * @brief Get the lateral acceleration - * - * @param longitudinalAcceleration to get the lateral acceleration from - * @return lateral acceleration in m/s^2 as decimal number (left is positive) - */ - inline double getLongitudinalAcceleration(const LongitudinalAcceleration& longitudinal_acceleration){ - return ((double)longitudinal_acceleration.longitudinal_acceleration_value.value)*1e-1; - } - - /** - * @brief Get the lateral acceleration - * - * @param lateralAcceleration to get the lateral acceleration from - * @return lateral acceleration in m/s^2 as decimal number (left is positive) - */ - inline double getLateralAcceleration(const LateralAcceleration& lateral_acceleration){ - return ((double)lateral_acceleration.lateral_acceleration_value.value)*1e-1; - } - - /** - * @brief Get the UTM Position defined by the given ReferencePosition - * - * The position is transformed into UTM by using GeographicLib::UTMUPS - * The altitude value is directly used as z-Coordinate - * - * @param[in] reference_position ReferencePosition to get the UTM Position from - * @param[out] zone the UTM zone (zero means UPS) - * @param[out] northp hemisphere (true means north, false means south) - * @return gm::PointStamped geometry_msgs::PointStamped of the given position - */ - inline gm::PointStamped getUTMPosition(const ReferencePosition& reference_position, int& zone, bool& northp){ - gm::PointStamped utm_point; - double latitude = getLatitude(reference_position.latitude); - double longitude = getLongitude(reference_position.longitude); - utm_point.point.z = getAltitude(reference_position.altitude); - try { - GeographicLib::UTMUPS::Forward(latitude, longitude, zone, northp, utm_point.point.x, utm_point.point.y); - std::string hemisphere; - if(northp) hemisphere="N"; - else hemisphere="S"; - utm_point.header.frame_id="utm_"+std::to_string(zone)+hemisphere; - } catch (GeographicLib::GeographicErr& e) { - throw std::invalid_argument(e.what()); - } - return utm_point; - } - - /** - * @brief Get a Bit String in form of bool vector - * - * @param buffer as uint8_t vector - * @param bits_unused number of bits to ignore at the end of the bit string - * @return std::vector - */ - inline std::vector getBitString(const std::vector& buffer, const int bits_unused) { - // bit string size - const int bits_per_byte = 8; - const int n_bytes = buffer.size(); - const int n_bits = n_bytes * bits_per_byte; - std::vector bits; - bits.resize(n_bits - bits_unused, 0); - - // loop over bytes in reverse order - for (int byte_idx = n_bytes - 1; byte_idx >= 0; byte_idx--) { - - // loop over bits in a byte - for (int bit_idx_in_byte = 0; bit_idx_in_byte < bits_per_byte; bit_idx_in_byte++) { - - // map bit index in byte to bit index in total bitstring - int bit_idx = (n_bytes - byte_idx - 1) * bits_per_byte + bit_idx_in_byte; - if (byte_idx == 0 && bit_idx >= n_bits - bits_unused) break; - - // extract bit from bitstring and set output array entry appropriately - bool byte_has_true_bit = buffer[byte_idx] & (1 << bit_idx_in_byte); - if (byte_has_true_bit) bits[bit_idx] = 1; - } - } - return bits; - } - - /** - * @brief Get Acceleration Control in form of bool vector - * - * @param acceleration_control - * @return std::vector - */ - inline std::vector getAccelerationControl(const AccelerationControl& acceleration_control){ - return getBitString(acceleration_control.value, acceleration_control.bits_unused); - } - - /** - * @brief Get the Driving Lane Status in form of bool vector - * - * @param driving_lane_status - * @return std::vector - */ - inline std::vector getDrivingLaneStatus(const DrivingLaneStatus& driving_lane_status){ - return getBitString(driving_lane_status.value, driving_lane_status.bits_unused); - } - - /** - * @brief Get the Exterior Lights in form of bool vector - * - * @param exterior_lights - * @return std::vector - */ - inline std::vector getExteriorLights(const ExteriorLights& exterior_lights){ - return getBitString(exterior_lights.value, exterior_lights.bits_unused); - } - - /** - * @brief Get the Special Transport Type in form of bool vector - * - * @param special_transport_type - * @return std::vector - */ - inline std::vector getSpecialTransportType(const SpecialTransportType& special_transport_type) { - return getBitString(special_transport_type.value, special_transport_type.bits_unused); - } - - /** - * @brief Get the Lightbar Siren In Use in form of bool vector - * - * @param light_bar_siren_in_use - * @return std::vector - */ - inline std::vector getLightBarSirenInUse(const LightBarSirenInUse& light_bar_siren_in_use) { - return getBitString(light_bar_siren_in_use.value, light_bar_siren_in_use.bits_unused); - } - - /** - * @brief Get the Vehicle Role in form of bool vector - * - * @param vehicle_role - * @return std::vector - */ - inline std::vector getEmergencyPriority(const EmergencyPriority& emergency_priority) { - return getBitString(emergency_priority.value, emergency_priority.bits_unused); - } - -} // namespace access - -} // namespace etsi_its_msgs diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_getters_common.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_getters_common.h new file mode 100644 index 000000000..432b58f9a --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_getters_common.h @@ -0,0 +1,209 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cdd/cdd_getters_common.h + * @brief Common getter functions for the ETSI ITS Common Data Dictionary (CDD) v1.3.1 and v2.1.1 + */ +#pragma once + +#include + + +/** +* @brief Get the StationID of ItsPduHeader +* +* @param header ItsPduHeader to get the StationID value from +* @return stationID value +*/ +inline uint32_t getStationID(const ItsPduHeader& header){ + return header.station_id.value; +} + +/** + * @brief Get the Latitude value + * + * @param latitude to get the Latitude value from + * @return Latitude value in degree as decimal number + */ +inline double getLatitude(const Latitude& latitude){ + return ((double)latitude.value)*1e-7; +} + +/** + * @brief Get the Longitude value + * + * @param longitude to get the Longitude value from + * @return Longitude value in degree as decimal number + */ +inline double getLongitude(const Longitude& longitude){ + return ((double)longitude.value)*1e-7; +} + +/** + * @brief Get the Altitude value + * + * @param altitude to get the Altitude value from + * @return Altitude value (above the reference ellipsoid surface) in meter as decimal number + */ +inline double getAltitude(const Altitude& altitude){ + return ((double)altitude.altitude_value.value)*1e-2; +} + +/** + * @brief Get the Heading value + * + * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West + * + * @param heading to get the Heading value from + * @return Heading value in degree as decimal number + */ +inline double getHeading(const Heading& heading){ + return ((double)heading.heading_value.value)*1e-1; +} + +/** + * @brief Get the Vehicle Length + * + * @param vehicleLength to get the vehicle length value from + * @return vehicle length value in meter as decimal number + */ +inline double getVehicleLength(const VehicleLength& vehicle_length){ + return ((double)vehicle_length.vehicle_length_value.value)*1e-1; +} + +/** + * @brief Get the Vehicle Width + * + * @param vehicleWidth to get the vehicle width value from + * @return vehicle width value in meter as decimal number + */ +inline double getVehicleWidth(const VehicleWidth& vehicle_width){ + return ((double)vehicle_width.value)*1e-1; +} + +/** + * @brief Get the vehicle speed + * + * @param speed to get the speed value from + * @return speed value in m/s as decimal number + */ +inline double getSpeed(const Speed& speed){ + return ((double)speed.speed_value.value)*1e-2; +} + +/** + * @brief Get a Bit String in form of bool vector + * + * @param buffer as uint8_t vector + * @param bits_unused number of bits to ignore at the end of the bit string + * @return std::vector + */ +inline std::vector getBitString(const std::vector& buffer, const int bits_unused) { + // bit string size + const int bits_per_byte = 8; + const int n_bytes = buffer.size(); + const int n_bits = n_bytes * bits_per_byte; + std::vector bits; + bits.resize(n_bits - bits_unused, 0); + + // loop over bytes in reverse order + for (int byte_idx = n_bytes - 1; byte_idx >= 0; byte_idx--) { + + // loop over bits in a byte + for (int bit_idx_in_byte = 0; bit_idx_in_byte < bits_per_byte; bit_idx_in_byte++) { + + // map bit index in byte to bit index in total bitstring + int bit_idx = (n_bytes - byte_idx - 1) * bits_per_byte + bit_idx_in_byte; + if (byte_idx == 0 && bit_idx >= n_bits - bits_unused) break; + + // extract bit from bitstring and set output array entry appropriately + bool byte_has_true_bit = buffer[byte_idx] & (1 << bit_idx_in_byte); + if (byte_has_true_bit) bits[bit_idx] = 1; + } + } + return bits; +} + +/** + * @brief Get Acceleration Control in form of bool vector + * + * @param acceleration_control + * @return std::vector + */ +inline std::vector getAccelerationControl(const AccelerationControl& acceleration_control){ + return getBitString(acceleration_control.value, acceleration_control.bits_unused); +} + +/** + * @brief Get the Driving Lane Status in form of bool vector + * + * @param driving_lane_status + * @return std::vector + */ +inline std::vector getDrivingLaneStatus(const DrivingLaneStatus& driving_lane_status){ + return getBitString(driving_lane_status.value, driving_lane_status.bits_unused); +} + +/** + * @brief Get the Exterior Lights in form of bool vector + * + * @param exterior_lights + * @return std::vector + */ +inline std::vector getExteriorLights(const ExteriorLights& exterior_lights){ + return getBitString(exterior_lights.value, exterior_lights.bits_unused); +} + +/** + * @brief Get the Special Transport Type in form of bool vector + * + * @param special_transport_type + * @return std::vector + */ +inline std::vector getSpecialTransportType(const SpecialTransportType& special_transport_type) { + return getBitString(special_transport_type.value, special_transport_type.bits_unused); +} + +/** + * @brief Get the Lightbar Siren In Use in form of bool vector + * + * @param light_bar_siren_in_use + * @return std::vector + */ +inline std::vector getLightBarSirenInUse(const LightBarSirenInUse& light_bar_siren_in_use) { + return getBitString(light_bar_siren_in_use.value, light_bar_siren_in_use.bits_unused); +} + +/** + * @brief Get the Vehicle Role in form of bool vector + * + * @param vehicle_role + * @return std::vector + */ +inline std::vector getEmergencyPriority(const EmergencyPriority& emergency_priority) { + return getBitString(emergency_priority.value, emergency_priority.bits_unused); +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_setters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_setters.h deleted file mode 100644 index 3c3e8a20c..000000000 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_setters.h +++ /dev/null @@ -1,444 +0,0 @@ -/* -============================================================================= -MIT License - -Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -============================================================================= -*/ - -/** - * @file impl/cdd/cdd_setters.h - * @brief Setter functions for the ETSI ITS Common Data Dictionary (CDD) - */ - -#include -#include -#include -#include - -#pragma once - - -namespace etsi_its_msgs { - -namespace cdd_access { - - /** - * @brief Set the Station Id object - * - * @param station_id - * @param id_value - */ - inline void setStationId(StationID& station_id, const uint32_t id_value) { - throwIfOutOfRange(id_value, StationID::MIN, StationID::MAX, "StationID"); - station_id.value = id_value; - } - - /** - * @brief Set the TimestampITS object - * - * @param[in] timestamp_its TimestampITS object to set the timestamp - * @param[in] unix_nanosecs Unix-Nanoseconds to set the timestamp for - * @param[in] n_leap_seconds Number of leap-seconds since 2004. (Default: etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) - * @param[in] epoch_offset Unix-Timestamp in seconds for the 01.01.2004 at 00:00:00 - */ - inline void setTimestampITS(TimestampIts& timestamp_its, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) { - uint64_t t_its = unix_nanosecs*1e-6 + (uint64_t)(n_leap_seconds*1e3) - etsi_its_msgs::UNIX_SECONDS_2004*1e3; - throwIfOutOfRange(t_its, TimestampIts::MIN, TimestampIts::MAX, "TimestampIts"); - timestamp_its.value = t_its; - } - - /** - * @brief Set the Its Pdu Header object - * - * @param header ItsPduHeader to be set - * @param message_id ID of the message - * @param station_id - * @param protocol_version - */ - inline void setItsPduHeader(ItsPduHeader& header, const uint8_t message_id, const uint32_t station_id, const uint8_t protocol_version=0) { - setStationId(header.station_id, station_id); - throwIfOutOfRange(message_id, ItsPduHeader::MESSAGE_ID_MIN, ItsPduHeader::MESSAGE_ID_MAX, "MessageID"); - header.message_id = message_id; - throwIfOutOfRange(protocol_version, ItsPduHeader::PROTOCOL_VERSION_MIN, ItsPduHeader::PROTOCOL_VERSION_MAX, "ProtocolVersion"); - header.protocol_version = protocol_version; - } - - /** - * @brief Set the Station Type - * - * @param station_type - * @param value - */ - inline void setStationType(StationType& station_type, const uint8_t value) { - throwIfOutOfRange(value, StationType::MIN, StationType::MAX, "StationType"); - station_type.value = value; - } - - /** - * @brief Set the Latitude object - * - * @param latitude object to set - * @param deg Latitude value in degree as decimal number - */ - inline void setLatitude(Latitude& latitude, const double deg) { - int64_t angle_in_10_micro_degree = (int64_t)std::round(deg*1e7); - throwIfOutOfRange(angle_in_10_micro_degree, Latitude::MIN, Latitude::MAX, "Latitude"); - latitude.value = angle_in_10_micro_degree; - } - - /** - * @brief Set the Longitude object - * - * @param longitude object to set - * @param deg Longitude value in degree as decimal number - */ - inline void setLongitude(Longitude& longitude, const double deg) { - int64_t angle_in_10_micro_degree = (int64_t)std::round(deg*1e7); - throwIfOutOfRange(angle_in_10_micro_degree, Longitude::MIN, Longitude::MAX, "Longitude"); - longitude.value = angle_in_10_micro_degree; - } - - /** - * @brief Set the AltitudeValue object - * - * @param altitude object to set - * @param value AltitudeValue value (above the reference ellipsoid surface) in meter as decimal number - */ - inline void setAltitudeValue(AltitudeValue& altitude, const double value) { - int64_t alt_in_cm = (int64_t)std::round(value*1e2); - if(alt_in_cm>=AltitudeValue::MIN && alt_in_cm<=AltitudeValue::MAX) altitude.value = alt_in_cm; - else if(alt_in_cmAltitudeValue::MAX) altitude.value = AltitudeValue::MAX; - } - - /** - * @brief Set the Altitude object - * - * AltitudeConfidence is set to UNAVAILABLE - * - * @param altitude object to set - * @param value Altitude value (above the reference ellipsoid surface) in meter as decimal number - */ - inline void setAltitude(Altitude& altitude, const double value) { - altitude.altitude_confidence.value = AltitudeConfidence::UNAVAILABLE; - setAltitudeValue(altitude.altitude_value, value); - } - - /** - * @brief Set the Reference Position object - * - * Altitude is set to UNAVAILABLE - * - * @param ref_position object to set - * @param latitude Latitude value in degree as decimal number - * @param longitude Longitude value in degree as decimal number - */ - inline void setReferencePosition(ReferencePosition& ref_position, const double latitude, const double longitude) - { - setLatitude(ref_position.latitude, latitude); - setLongitude(ref_position.longitude, longitude); - ref_position.altitude.altitude_value.value = AltitudeValue::UNAVAILABLE; - ref_position.altitude.altitude_confidence.value = AltitudeConfidence::UNAVAILABLE; - } - - /** - * @brief Set the Reference Position object - * - * @param ref_position object to set - * @param latitude Latitude value in degree as decimal number - * @param longitude Longitude value in degree as decimal number - * @param altitude Altitude value (above the reference ellipsoid surface) in meter as decimal number - */ - inline void setReferencePosition(ReferencePosition& ref_position, const double latitude, const double longitude, const double altitude) - { - setLatitude(ref_position.latitude, latitude); - setLongitude(ref_position.longitude, longitude); - setAltitude(ref_position.altitude, altitude); - } - - /** - * @brief Set the HeadingValue object - * - * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West - * - * @param heading object to set - * @param value Heading value in degree as decimal number - */ - inline void setHeadingValue(HeadingValue& heading, const double value) { - int64_t deg = (int64_t)std::round(value*1e1); - throwIfOutOfRange(deg, HeadingValue::MIN, HeadingValue::MAX, "HeadingValue"); - heading.value = deg; - } - - /** - * @brief Set the Heading object - * - * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West - * HeadingConfidence is set to UNAVAILABLE - * - * @param heading object to set - * @param value Heading value in degree as decimal number - */ - inline void setHeading(Heading& heading, const double value) { - heading.heading_confidence.value = HeadingConfidence::UNAVAILABLE; - setHeadingValue(heading.heading_value, value); - } - - /** - * @brief Set the VehicleLengthValue object - * - * @param vehicle_length object to set - * @param value VehicleLengthValue in meter as decimal number - */ - inline void setVehicleLengthValue(VehicleLengthValue& vehicle_length, const double value) { - int64_t length = (int64_t)std::round(value*1e1); - throwIfOutOfRange(length, VehicleLengthValue::MIN, VehicleLengthValue::MAX, "VehicleLengthValue"); - vehicle_length.value = length; - } - - /** - * @brief Set the VehicleLength object - * - * VehicleLengthConfidenceIndication is set to UNAVAILABLE - * - * @param vehicle_length object to set - * @param value VehicleLengthValue in meter as decimal number - */ - inline void setVehicleLength(VehicleLength& vehicle_length, const double value) { - vehicle_length.vehicle_length_confidence_indication.value = VehicleLengthConfidenceIndication::UNAVAILABLE; - setVehicleLengthValue(vehicle_length.vehicle_length_value, value); - } - - /** - * @brief Set the VehicleWidth object - * - * @param vehicle_width object to set - * @param value VehicleWidth in meter as decimal number - */ - inline void setVehicleWidth(VehicleWidth& vehicle_width, const double value) { - int64_t width = (int64_t)std::round(value*1e1); - throwIfOutOfRange(width, VehicleWidth::MIN, VehicleWidth::MAX, "VehicleWidthValue"); - vehicle_width.value = width; - } - - /** - * @brief Set the SpeedValue object - * - * @param speed object to set - * @param value SpeedValue in m/s as decimal number - */ - inline void setSpeedValue(SpeedValue& speed, const double value) { - int64_t speed_val = (int64_t)std::round(value*1e2); - throwIfOutOfRange(speed_val, SpeedValue::MIN, SpeedValue::MAX, "SpeedValue"); - speed.value = speed_val; - } - - /** - * @brief Set the Speed object - * - * SpeedConfidence is set to UNAVAILABLE - * - * @param speed object to set - * @param value Speed in in m/s as decimal number - */ - inline void setSpeed(Speed& speed, const double value) { - speed.speed_confidence.value = SpeedConfidence::UNAVAILABLE; - setSpeedValue(speed.speed_value, value); - } - - /** - * @brief Set the LongitudinalAccelerationValue object - * - * @param accel object to set - * @param value LongitudinalAccelerationValue in m/s^2 as decimal number (braking is negative) - */ - inline void setLongitudinalAccelerationValue(LongitudinalAccelerationValue& accel, const double value) { - int64_t accel_val = (int64_t)std::round(value*1e1); - if(accel_val>=LongitudinalAccelerationValue::MIN && accel_val<=LongitudinalAccelerationValue::MAX) accel.value = accel_val; - else if(accel_valLongitudinalAccelerationValue::MAX) accel.value = LongitudinalAccelerationValue::MAX-1; - } - - /** - * @brief Set the LongitudinalAcceleration object - * - * AccelerationConfidence is set to UNAVAILABLE - * - * @param accel object to set - * @param value LongitudinalAccelerationValue in m/s^2 as decimal number (braking is negative) - */ - inline void setLongitudinalAcceleration(LongitudinalAcceleration& accel, const double value) { - accel.longitudinal_acceleration_confidence.value = AccelerationConfidence::UNAVAILABLE; - setLongitudinalAccelerationValue(accel.longitudinal_acceleration_value, value); - } - - /** - * @brief Set the LateralAccelerationValue object - * - * @param accel object to set - * @param value LateralAccelerationValue in m/s^2 as decimal number (left is positive) - */ - inline void setLateralAccelerationValue(LateralAccelerationValue& accel, const double value) { - int64_t accel_val = (int64_t)std::round(value*1e1); - if(accel_val>=LateralAccelerationValue::MIN && accel_val<=LateralAccelerationValue::MAX) accel.value = accel_val; - else if(accel_valLateralAccelerationValue::MAX) accel.value = LateralAccelerationValue::MAX-1; - } - - /** - * @brief Set the LateralAcceleration object - * - * AccelerationConfidence is set to UNAVAILABLE - * - * @param accel object to set - * @param value LaterallAccelerationValue in m/s^2 as decimal number (left is positive) - */ - inline void setLateralAcceleration(LateralAcceleration& accel, const double value) { - accel.lateral_acceleration_confidence.value = AccelerationConfidence::UNAVAILABLE; - setLateralAccelerationValue(accel.lateral_acceleration_value, value); - } - - /** - * @brief Set the ReferencePosition from a given UTM-Position - * - * The position is transformed to latitude and longitude by using GeographicLib::UTMUPS - * The z-Coordinate is directly used as altitude value - * The frame_id of the given utm_position must be set to 'utm_' - * - * @param[out] reference_position ReferencePosition to set - * @param[in] utm_position geometry_msgs::PointStamped describing the given utm position - * @param[in] zone the UTM zone (zero means UPS) of the given position - * @param[in] northp hemisphere (true means north, false means south) - */ - inline void setFromUTMPosition(ReferencePosition& reference_position, const gm::PointStamped& utm_position, const int zone, const bool northp) - { - std::string required_frame_prefix = "utm_"; - if(utm_position.header.frame_id.rfind(required_frame_prefix, 0) != 0) - { - throw std::invalid_argument("Frame-ID of UTM Position '"+utm_position.header.frame_id+"' does not start with required prefix '"+required_frame_prefix+"'!"); - } - double latitude, longitude; - try { - GeographicLib::UTMUPS::Reverse(zone, northp, utm_position.point.x, utm_position.point.y, latitude, longitude); - } catch (GeographicLib::GeographicErr& e) { - throw std::invalid_argument(e.what()); - } - setReferencePosition(reference_position, latitude, longitude, utm_position.point.z); - } - - /** - * @brief Set a Bit String by a vector of bools - * - * @tparam T - * @param bitstring BitString to set - * @param bits vector of bools - */ - template - inline void setBitString(T& bitstring, const std::vector& bits) { - // bit string size - const int bits_per_byte = 8; - const int n_bytes = (bits.size() - 1) / bits_per_byte + 1; - const int n_bits = n_bytes * bits_per_byte; - - // init output - bitstring.bits_unused = n_bits - bits.size(); - bitstring.value = std::vector(n_bytes); - - // loop over all bytes in reverse order - for (int byte_idx = n_bytes - 1; byte_idx >= 0; byte_idx--) { - - // loop over bits in a byte - for (int bit_idx_in_byte = 0; bit_idx_in_byte < bits_per_byte; bit_idx_in_byte++) { - - // map bit index in byte to bit index in total bitstring - int bit_idx = (n_bytes - byte_idx - 1) * bits_per_byte + bit_idx_in_byte; - if (byte_idx == 0 && bit_idx >= n_bits - bitstring.bits_unused) break; - - // set bit in output bitstring appropriately - bitstring.value[byte_idx] |= bits[bit_idx] << bit_idx_in_byte; - } - } - } - - /** - * @brief Set the Acceleration Control by a vector of bools - * - * @param acceleration_control - * @param bits - */ - inline void setAccelerationControl(AccelerationControl& acceleration_control, const std::vector& bits) { - setBitString(acceleration_control, bits); - } - - /** - * @brief Set the Driving Lane Status by a vector of bools - * - * @param driving_lane_status - * @param bits - */ - inline void setDrivingLaneStatus(DrivingLaneStatus& driving_lane_status, const std::vector& bits) { - setBitString(driving_lane_status, bits); - } - - /** - * @brief Set the Exterior Lights by a vector of bools - * - * @param exterior_lights - * @param bits - */ - inline void setExteriorLights(ExteriorLights& exterior_lights, const std::vector& bits) { - setBitString(exterior_lights, bits); - } - - /** - * @brief Set the Special Transport Type by a vector of bools - * - * @param special_transport_type - * @param bits - */ - inline void setSpecialTransportType(SpecialTransportType& special_transport_type, const std::vector& bits) { - setBitString(special_transport_type, bits); - } - - /** - * @brief Set the Lightbar Siren In Use by a vector of bools - * - * @param light_bar_siren_in_use - * @param bits - */ - inline void setLightBarSirenInUse(LightBarSirenInUse& light_bar_siren_in_use, const std::vector& bits) { - setBitString(light_bar_siren_in_use, bits); - } - - /** - * @brief Set the Emergency Priority by a vector of bools - * - * @param emergency_priority - * @param bits - */ - inline void setEmergencyPriority(EmergencyPriority& emergency_priority, const std::vector& bits) { - setBitString(emergency_priority, bits); - } - -} // namespace cdd_access - -} // namespace etsi_its_msgs diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_setters_common.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_setters_common.h new file mode 100644 index 000000000..1f957139c --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_setters_common.h @@ -0,0 +1,287 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cdd/cdd_setters_common.h + * @brief Common setter functions for the ETSI ITS Common Data Dictionary (CDD) v1.3.1 and v2.1.1 + */ + +#pragma once + +#include +#include +#include +#include + + + +/** + * @brief Set the TimestampITS object + * + * @param[in] timestamp_its TimestampITS object to set the timestamp + * @param[in] unix_nanosecs Unix-Nanoseconds to set the timestamp for + * @param[in] n_leap_seconds Number of leap-seconds since 2004. (Default: etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) + * @param[in] epoch_offset Unix-Timestamp in seconds for the 01.01.2004 at 00:00:00 + */ +inline void setTimestampITS(TimestampIts& timestamp_its, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) { + uint64_t t_its = unix_nanosecs*1e-6 + (uint64_t)(n_leap_seconds*1e3) - etsi_its_msgs::UNIX_SECONDS_2004*1e3; + throwIfOutOfRange(t_its, TimestampIts::MIN, TimestampIts::MAX, "TimestampIts"); + timestamp_its.value = t_its; +} + +/** + * @brief Set the Latitude object + * + * @param latitude object to set + * @param deg Latitude value in degree as decimal number + */ +inline void setLatitude(Latitude& latitude, const double deg) { + int64_t angle_in_10_micro_degree = (int64_t)std::round(deg*1e7); + throwIfOutOfRange(angle_in_10_micro_degree, Latitude::MIN, Latitude::MAX, "Latitude"); + latitude.value = angle_in_10_micro_degree; +} + +/** + * @brief Set the Longitude object + * + * @param longitude object to set + * @param deg Longitude value in degree as decimal number + */ +inline void setLongitude(Longitude& longitude, const double deg) { + int64_t angle_in_10_micro_degree = (int64_t)std::round(deg*1e7); + throwIfOutOfRange(angle_in_10_micro_degree, Longitude::MIN, Longitude::MAX, "Longitude"); + longitude.value = angle_in_10_micro_degree; +} + +/** + * @brief Set the AltitudeValue object + * + * @param altitude object to set + * @param value AltitudeValue value (above the reference ellipsoid surface) in meter as decimal number + */ +inline void setAltitudeValue(AltitudeValue& altitude, const double value) { + int64_t alt_in_cm = (int64_t)std::round(value*1e2); + if(alt_in_cm>=AltitudeValue::MIN && alt_in_cm<=AltitudeValue::MAX) altitude.value = alt_in_cm; + else if(alt_in_cmAltitudeValue::MAX) altitude.value = AltitudeValue::MAX; +} + +/** + * @brief Set the Altitude object + * + * AltitudeConfidence is set to UNAVAILABLE + * + * @param altitude object to set + * @param value Altitude value (above the reference ellipsoid surface) in meter as decimal number + */ +inline void setAltitude(Altitude& altitude, const double value) { + altitude.altitude_confidence.value = AltitudeConfidence::UNAVAILABLE; + setAltitudeValue(altitude.altitude_value, value); +} + +/** + * @brief Set the HeadingValue object + * + * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West + * + * @param heading object to set + * @param value Heading value in degree as decimal number + */ +inline void setHeadingValue(HeadingValue& heading, const double value) { + int64_t deg = (int64_t)std::round(value*1e1); + throwIfOutOfRange(deg, HeadingValue::MIN, HeadingValue::MAX, "HeadingValue"); + heading.value = deg; +} + +/** + * @brief Set the Heading object + * + * 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West + * HeadingConfidence is set to UNAVAILABLE + * + * @param heading object to set + * @param value Heading value in degree as decimal number + */ +inline void setHeading(Heading& heading, const double value) { + heading.heading_confidence.value = HeadingConfidence::UNAVAILABLE; + setHeadingValue(heading.heading_value, value); +} + +/** + * @brief Set the VehicleLengthValue object + * + * @param vehicle_length object to set + * @param value VehicleLengthValue in meter as decimal number + */ +inline void setVehicleLengthValue(VehicleLengthValue& vehicle_length, const double value) { + int64_t length = (int64_t)std::round(value*1e1); + throwIfOutOfRange(length, VehicleLengthValue::MIN, VehicleLengthValue::MAX, "VehicleLengthValue"); + vehicle_length.value = length; +} + +/** + * @brief Set the VehicleLength object + * + * VehicleLengthConfidenceIndication is set to UNAVAILABLE + * + * @param vehicle_length object to set + * @param value VehicleLengthValue in meter as decimal number + */ +inline void setVehicleLength(VehicleLength& vehicle_length, const double value) { + vehicle_length.vehicle_length_confidence_indication.value = VehicleLengthConfidenceIndication::UNAVAILABLE; + setVehicleLengthValue(vehicle_length.vehicle_length_value, value); +} + +/** + * @brief Set the VehicleWidth object + * + * @param vehicle_width object to set + * @param value VehicleWidth in meter as decimal number + */ +inline void setVehicleWidth(VehicleWidth& vehicle_width, const double value) { + int64_t width = (int64_t)std::round(value*1e1); + throwIfOutOfRange(width, VehicleWidth::MIN, VehicleWidth::MAX, "VehicleWidthValue"); + vehicle_width.value = width; +} + +/** + * @brief Set the SpeedValue object + * + * @param speed object to set + * @param value SpeedValue in m/s as decimal number + */ +inline void setSpeedValue(SpeedValue& speed, const double value) { + int64_t speed_val = (int64_t)std::round(value*1e2); + throwIfOutOfRange(speed_val, SpeedValue::MIN, SpeedValue::MAX, "SpeedValue"); + speed.value = speed_val; +} + +/** + * @brief Set the Speed object + * + * SpeedConfidence is set to UNAVAILABLE + * + * @param speed object to set + * @param value Speed in in m/s as decimal number + */ +inline void setSpeed(Speed& speed, const double value) { + speed.speed_confidence.value = SpeedConfidence::UNAVAILABLE; + setSpeedValue(speed.speed_value, value); +} + +/** + * @brief Set a Bit String by a vector of bools + * + * @tparam T + * @param bitstring BitString to set + * @param bits vector of bools + */ +template +inline void setBitString(T& bitstring, const std::vector& bits) { + // bit string size + const int bits_per_byte = 8; + const int n_bytes = (bits.size() - 1) / bits_per_byte + 1; + const int n_bits = n_bytes * bits_per_byte; + + // init output + bitstring.bits_unused = n_bits - bits.size(); + bitstring.value = std::vector(n_bytes); + + // loop over all bytes in reverse order + for (int byte_idx = n_bytes - 1; byte_idx >= 0; byte_idx--) { + + // loop over bits in a byte + for (int bit_idx_in_byte = 0; bit_idx_in_byte < bits_per_byte; bit_idx_in_byte++) { + + // map bit index in byte to bit index in total bitstring + int bit_idx = (n_bytes - byte_idx - 1) * bits_per_byte + bit_idx_in_byte; + if (byte_idx == 0 && bit_idx >= n_bits - bitstring.bits_unused) break; + + // set bit in output bitstring appropriately + bitstring.value[byte_idx] |= bits[bit_idx] << bit_idx_in_byte; + } + } +} + +/** + * @brief Set the Acceleration Control by a vector of bools + * + * @param acceleration_control + * @param bits + */ +inline void setAccelerationControl(AccelerationControl& acceleration_control, const std::vector& bits) { + setBitString(acceleration_control, bits); +} + +/** + * @brief Set the Driving Lane Status by a vector of bools + * + * @param driving_lane_status + * @param bits + */ +inline void setDrivingLaneStatus(DrivingLaneStatus& driving_lane_status, const std::vector& bits) { + setBitString(driving_lane_status, bits); +} + +/** + * @brief Set the Exterior Lights by a vector of bools + * + * @param exterior_lights + * @param bits + */ +inline void setExteriorLights(ExteriorLights& exterior_lights, const std::vector& bits) { + setBitString(exterior_lights, bits); +} + +/** + * @brief Set the Special Transport Type by a vector of bools + * + * @param special_transport_type + * @param bits + */ +inline void setSpecialTransportType(SpecialTransportType& special_transport_type, const std::vector& bits) { + setBitString(special_transport_type, bits); +} + +/** + * @brief Set the Lightbar Siren In Use by a vector of bools + * + * @param light_bar_siren_in_use + * @param bits + */ +inline void setLightBarSirenInUse(LightBarSirenInUse& light_bar_siren_in_use, const std::vector& bits) { + setBitString(light_bar_siren_in_use, bits); +} + +/** + * @brief Set the Emergency Priority by a vector of bools + * + * @param emergency_priority + * @param bits + */ +inline void setEmergencyPriority(EmergencyPriority& emergency_priority, const std::vector& bits) { + setBitString(emergency_priority, bits); +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v1-3-1_getters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v1-3-1_getters.h new file mode 100644 index 000000000..3c008b332 --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v1-3-1_getters.h @@ -0,0 +1,83 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cdd/cdd_v1-3-1_getters.h + * @brief Getter functions for the ETSI ITS Common Data Dictionary (CDD) v1.3.1 + */ +#pragma once + +#include +#include + + +/** + * @brief Get the lateral acceleration + * + * @param longitudinalAcceleration to get the lateral acceleration from + * @return lateral acceleration in m/s^2 as decimal number (left is positive) + */ +inline double getLongitudinalAcceleration(const LongitudinalAcceleration& longitudinal_acceleration){ + return ((double)longitudinal_acceleration.longitudinal_acceleration_value.value)*1e-1; +} + +/** + * @brief Get the lateral acceleration + * + * @param lateralAcceleration to get the lateral acceleration from + * @return lateral acceleration in m/s^2 as decimal number (left is positive) + */ +inline double getLateralAcceleration(const LateralAcceleration& lateral_acceleration){ + return ((double)lateral_acceleration.lateral_acceleration_value.value)*1e-1; +} + +/** + * @brief Get the UTM Position defined by the given ReferencePosition + * + * The position is transformed into UTM by using GeographicLib::UTMUPS + * The altitude value is directly used as z-Coordinate + * + * @param[in] reference_position ReferencePosition to get the UTM Position from + * @param[out] zone the UTM zone (zero means UPS) + * @param[out] northp hemisphere (true means north, false means south) + * @return gm::PointStamped geometry_msgs::PointStamped of the given position + */ +inline gm::PointStamped getUTMPosition(const ReferencePosition& reference_position, int& zone, bool& northp){ + gm::PointStamped utm_point; + double latitude = getLatitude(reference_position.latitude); + double longitude = getLongitude(reference_position.longitude); + utm_point.point.z = getAltitude(reference_position.altitude); + try { + GeographicLib::UTMUPS::Forward(latitude, longitude, zone, northp, utm_point.point.x, utm_point.point.y); + std::string hemisphere; + if(northp) hemisphere="N"; + else hemisphere="S"; + utm_point.header.frame_id="utm_"+std::to_string(zone)+hemisphere; + } catch (GeographicLib::GeographicErr& e) { + throw std::invalid_argument(e.what()); + } + return utm_point; +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v1-3-1_setters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v1-3-1_setters.h new file mode 100644 index 000000000..6dfc54752 --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v1-3-1_setters.h @@ -0,0 +1,187 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cdd/cdd_v1-3-1_setters.h + * @brief Setter functions for the ETSI ITS Common Data Dictionary (CDD) v1.3.1 + */ +#pragma once + +#include +#include +#include +#include + + +/** + * @brief Set the Station Id object + * + * @param station_id + * @param id_value + */ +inline void setStationId(StationID& station_id, const uint32_t id_value) { + throwIfOutOfRange(id_value, StationID::MIN, StationID::MAX, "StationID"); + station_id.value = id_value; +} + +/** + * @brief Set the Its Pdu Header object + * + * @param header ItsPduHeader to be set + * @param message_id ID of the message + * @param station_id + * @param protocol_version + */ +inline void setItsPduHeader(ItsPduHeader& header, const uint8_t message_id, const uint32_t station_id, const uint8_t protocol_version=0) { + setStationId(header.station_id, station_id); + throwIfOutOfRange(message_id, ItsPduHeader::MESSAGE_ID_MIN, ItsPduHeader::MESSAGE_ID_MAX, "MessageID"); + header.message_id = message_id; + throwIfOutOfRange(protocol_version, ItsPduHeader::PROTOCOL_VERSION_MIN, ItsPduHeader::PROTOCOL_VERSION_MAX, "ProtocolVersion"); + header.protocol_version = protocol_version; +} + +/** + * @brief Set the Station Type + * + * @param station_type + * @param value + */ +inline void setStationType(StationType& station_type, const uint8_t value) { + throwIfOutOfRange(value, StationType::MIN, StationType::MAX, "StationType"); + station_type.value = value; +} + +/** + * @brief Set the Reference Position object + * + * Altitude is set to UNAVAILABLE + * + * @param ref_position object to set + * @param latitude Latitude value in degree as decimal number + * @param longitude Longitude value in degree as decimal number + */ +inline void setReferencePosition(ReferencePosition& ref_position, const double latitude, const double longitude) +{ + setLatitude(ref_position.latitude, latitude); + setLongitude(ref_position.longitude, longitude); + ref_position.altitude.altitude_value.value = AltitudeValue::UNAVAILABLE; + ref_position.altitude.altitude_confidence.value = AltitudeConfidence::UNAVAILABLE; +} + +/** + * @brief Set the Reference Position object + * + * @param ref_position object to set + * @param latitude Latitude value in degree as decimal number + * @param longitude Longitude value in degree as decimal number + * @param altitude Altitude value (above the reference ellipsoid surface) in meter as decimal number + */ +inline void setReferencePosition(ReferencePosition& ref_position, const double latitude, const double longitude, const double altitude) +{ + setLatitude(ref_position.latitude, latitude); + setLongitude(ref_position.longitude, longitude); + setAltitude(ref_position.altitude, altitude); +} + +/** + * @brief Set the LongitudinalAccelerationValue object + * + * @param accel object to set + * @param value LongitudinalAccelerationValue in m/s^2 as decimal number (braking is negative) + */ +inline void setLongitudinalAccelerationValue(LongitudinalAccelerationValue& accel, const double value) { + int64_t accel_val = (int64_t)std::round(value*1e1); + if(accel_val>=LongitudinalAccelerationValue::MIN && accel_val<=LongitudinalAccelerationValue::MAX) accel.value = accel_val; + else if(accel_valLongitudinalAccelerationValue::MAX) accel.value = LongitudinalAccelerationValue::MAX-1; +} + +/** + * @brief Set the LongitudinalAcceleration object + * + * AccelerationConfidence is set to UNAVAILABLE + * + * @param accel object to set + * @param value LongitudinalAccelerationValue in m/s^2 as decimal number (braking is negative) + */ +inline void setLongitudinalAcceleration(LongitudinalAcceleration& accel, const double value) { + accel.longitudinal_acceleration_confidence.value = AccelerationConfidence::UNAVAILABLE; + setLongitudinalAccelerationValue(accel.longitudinal_acceleration_value, value); +} + + /** + * @brief Set the LateralAccelerationValue object + * + * @param accel object to set + * @param value LateralAccelerationValue in m/s^2 as decimal number (left is positive) + */ +inline void setLateralAccelerationValue(LateralAccelerationValue& accel, const double value) { + int64_t accel_val = (int64_t)std::round(value*1e1); + if(accel_val>=LateralAccelerationValue::MIN && accel_val<=LateralAccelerationValue::MAX) accel.value = accel_val; + else if(accel_valLateralAccelerationValue::MAX) accel.value = LateralAccelerationValue::MAX-1; +} + +/** + * @brief Set the LateralAcceleration object + * + * AccelerationConfidence is set to UNAVAILABLE + * + * @param accel object to set + * @param value LaterallAccelerationValue in m/s^2 as decimal number (left is positive) + */ +inline void setLateralAcceleration(LateralAcceleration& accel, const double value) { + accel.lateral_acceleration_confidence.value = AccelerationConfidence::UNAVAILABLE; + setLateralAccelerationValue(accel.lateral_acceleration_value, value); +} + +/** + * @brief Set the ReferencePosition from a given UTM-Position + * + * The position is transformed to latitude and longitude by using GeographicLib::UTMUPS + * The z-Coordinate is directly used as altitude value + * The frame_id of the given utm_position must be set to 'utm_' + * + * @param[out] reference_position ReferencePosition to set + * @param[in] utm_position geometry_msgs::PointStamped describing the given utm position + * @param[in] zone the UTM zone (zero means UPS) of the given position + * @param[in] northp hemisphere (true means north, false means south) + */ +inline void setFromUTMPosition(ReferencePosition& reference_position, const gm::PointStamped& utm_position, const int zone, const bool northp) +{ + std::string required_frame_prefix = "utm_"; + if(utm_position.header.frame_id.rfind(required_frame_prefix, 0) != 0) + { + throw std::invalid_argument("Frame-ID of UTM Position '"+utm_position.header.frame_id+"' does not start with required prefix '"+required_frame_prefix+"'!"); + } + double latitude, longitude; + try { + GeographicLib::UTMUPS::Reverse(zone, northp, utm_position.point.x, utm_position.point.y, latitude, longitude); + } catch (GeographicLib::GeographicErr& e) { + throw std::invalid_argument(e.what()); + } + setReferencePosition(reference_position, latitude, longitude, utm_position.point.z); +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v2-1-1_getters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v2-1-1_getters.h new file mode 100644 index 000000000..174594fbd --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v2-1-1_getters.h @@ -0,0 +1,82 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cdd/cdd_v2-1-1_getters.h + * @brief Getter functions for the ETSI ITS Common Data Dictionary (CDD) v2.1.1 + */ +#pragma once + +#include +#include + +/** + * @brief Get the lateral acceleration + * + * @param longitudinalAcceleration to get the lateral acceleration from + * @return lateral acceleration in m/s^2 as decimal number (left is positive) + */ +inline double getLongitudinalAcceleration(const AccelerationComponent& longitudinal_acceleration){ + return ((int16_t)longitudinal_acceleration.value.value)*1e-1; +} + +/** + * @brief Get the lateral acceleration + * + * @param lateralAcceleration to get the lateral acceleration from + * @return lateral acceleration in m/s^2 as decimal number (left is positive) + */ +inline double getLateralAcceleration(const AccelerationComponent& lateral_acceleration){ + return ((int16_t)lateral_acceleration.value.value)*1e-1; +} + +/** + * @brief Get the UTM Position defined by the given ReferencePosition + * + * The position is transformed into UTM by using GeographicLib::UTMUPS + * The altitude value is directly used as z-Coordinate + * + * @param[in] reference_position ReferencePosition to get the UTM Position from + * @param[out] zone the UTM zone (zero means UPS) + * @param[out] northp hemisphere (true means north, false means south) + * @return gm::PointStamped geometry_msgs::PointStamped of the given position + */ +inline gm::PointStamped getUTMPosition(const ReferencePositionWithConfidence& reference_position, int& zone, bool& northp){ + gm::PointStamped utm_point; + double latitude = getLatitude(reference_position.latitude); + double longitude = getLongitude(reference_position.longitude); + utm_point.point.z = getAltitude(reference_position.altitude); + try { + GeographicLib::UTMUPS::Forward(latitude, longitude, zone, northp, utm_point.point.x, utm_point.point.y); + std::string hemisphere; + if(northp) hemisphere="N"; + else hemisphere="S"; + utm_point.header.frame_id="utm_"+std::to_string(zone)+hemisphere; + } catch (GeographicLib::GeographicErr& e) { + throw std::invalid_argument(e.what()); + } + return utm_point; +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v2-1-1_setters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v2-1-1_setters.h new file mode 100644 index 000000000..1b482ddc7 --- /dev/null +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/cdd/cdd_v2-1-1_setters.h @@ -0,0 +1,189 @@ +/* +============================================================================= +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= +*/ + +/** + * @file impl/cdd/cdd_v2-1-1_setters.h + * @brief Setter functions for the ETSI ITS Common Data Dictionary (CDD) v2.1.1 + */ + +#pragma once + +#include +#include +#include +#include +#include + + +/** + * @brief Set the Station Id object + * + * @param station_id + * @param id_value + */ +inline void setStationId(StationId& station_id, const uint32_t id_value) { + throwIfOutOfRange(id_value, StationId::MIN, StationId::MAX, "StationId"); + station_id.value = id_value; +} + +/** + * @brief Set the Its Pdu Header object + * + * @param header ItsPduHeader to be set + * @param message_id ID of the message + * @param station_id + * @param protocol_version + */ +inline void setItsPduHeader(ItsPduHeader& header, const uint8_t message_id, const uint32_t station_id, const uint8_t protocol_version=0) { + setStationId(header.station_id, station_id); + throwIfOutOfRange(message_id, MessageId::MIN, MessageId::MAX, "MessageID"); + header.message_id.value = message_id; + throwIfOutOfRange(protocol_version, OrdinalNumber1B::MIN, OrdinalNumber1B::MAX, "ProtocolVersion"); + header.protocol_version.value = protocol_version; +} + +/** + * @brief Set the Station Type + * + * @param station_type + * @param value + */ +inline void setStationType(TrafficParticipantType& station_type, const uint8_t value) { + throwIfOutOfRange(value, TrafficParticipantType::MIN, TrafficParticipantType::MAX, "StationType"); + station_type.value = value; +} + +/** + * @brief Set the Reference Position object + * + * Altitude is set to UNAVAILABLE + * + * @param ref_position object to set + * @param latitude Latitude value in degree as decimal number + * @param longitude Longitude value in degree as decimal number + */ +inline void setReferencePosition(ReferencePositionWithConfidence& ref_position, const double latitude, const double longitude) +{ + setLatitude(ref_position.latitude, latitude); + setLongitude(ref_position.longitude, longitude); + ref_position.altitude.altitude_value.value = AltitudeValue::UNAVAILABLE; + ref_position.altitude.altitude_confidence.value = AltitudeConfidence::UNAVAILABLE; +} + +/** + * @brief Set the Reference Position object + * + * @param ref_position object to set + * @param latitude Latitude value in degree as decimal number + * @param longitude Longitude value in degree as decimal number + * @param altitude Altitude value (above the reference ellipsoid surface) in meter as decimal number + */ +inline void setReferencePosition(ReferencePositionWithConfidence& ref_position, const double latitude, const double longitude, const double altitude) +{ + setLatitude(ref_position.latitude, latitude); + setLongitude(ref_position.longitude, longitude); + setAltitude(ref_position.altitude, altitude); +} + +/** + * @brief Set the LongitudinalAccelerationValue object + * + * @param accel object to set + * @param value LongitudinalAccelerationValue in m/s^2 as decimal number (braking is negative) + */ +inline void setLongitudinalAccelerationValue(AccelerationValue& accel, const double value) { + int64_t accel_val = (int64_t)std::round(value*1e1); + if(accel_val>=AccelerationValue::MIN && accel_val<=AccelerationValue::MAX) accel.value = accel_val; + else if(accel_valAccelerationValue::MAX) accel.value = AccelerationValue::MAX-1; +} + +/** + * @brief Set the LongitudinalAcceleration object + * + * AccelerationConfidence is set to UNAVAILABLE + * + * @param accel object to set + * @param value LongitudinalAccelerationValue in m/s^2 as decimal number (braking is negative) + */ +inline void setLongitudinalAcceleration(AccelerationComponent& accel, const double value) { + accel.confidence.value = AccelerationConfidence::UNAVAILABLE; + setLongitudinalAccelerationValue(accel.value, value); +} + + /** + * @brief Set the LateralAccelerationValue object + * + * @param accel object to set + * @param value LateralAccelerationValue in m/s^2 as decimal number (left is positive) + */ +inline void setLateralAccelerationValue(AccelerationValue& accel, const double value) { + int64_t accel_val = (int64_t)std::round(value*1e1); + if(accel_val>=AccelerationValue::MIN && accel_val<=AccelerationValue::MAX) accel.value = accel_val; + else if(accel_valAccelerationValue::MAX) accel.value = AccelerationValue::MAX-1; +} + +/** + * @brief Set the LateralAcceleration object + * + * AccelerationConfidence is set to UNAVAILABLE + * + * @param accel object to set + * @param value LaterallAccelerationValue in m/s^2 as decimal number (left is positive) + */ +inline void setLateralAcceleration(AccelerationComponent& accel, const double value) { + accel.confidence.value = AccelerationConfidence::UNAVAILABLE; + setLateralAccelerationValue(accel.value, value); +} + +/** + * @brief Set the ReferencePosition from a given UTM-Position + * + * The position is transformed to latitude and longitude by using GeographicLib::UTMUPS + * The z-Coordinate is directly used as altitude value + * The frame_id of the given utm_position must be set to 'utm_' + * + * @param[out] reference_position ReferencePosition to set + * @param[in] utm_position geometry_msgs::PointStamped describing the given utm position + * @param[in] zone the UTM zone (zero means UPS) of the given position + * @param[in] northp hemisphere (true means north, false means south) + */ +inline void setFromUTMPosition(ReferencePositionWithConfidence& reference_position, const gm::PointStamped& utm_position, const int zone, const bool northp) +{ + std::string required_frame_prefix = "utm_"; + if(utm_position.header.frame_id.rfind(required_frame_prefix, 0) != 0) + { + throw std::invalid_argument("Frame-ID of UTM Position '"+utm_position.header.frame_id+"' does not start with required prefix '"+required_frame_prefix+"'!"); + } + double latitude, longitude; + try { + GeographicLib::UTMUPS::Reverse(zone, northp, utm_position.point.x, utm_position.point.y, latitude, longitude); + } catch (GeographicLib::GeographicErr& e) { + throw std::invalid_argument(e.what()); + } + setReferencePosition(reference_position, latitude, longitude, utm_position.point.z); +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_access.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_access.h index cd231ef80..3f66aab84 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_access.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_access.h @@ -31,10 +31,15 @@ SOFTWARE. #pragma once -using namespace etsi_its_denm_msgs; +#include +#include +#include -#include +#include #include #include + +namespace etsi_its_denm_msgs::access { #include +} // namespace etsi_its_denm_msgs::access \ No newline at end of file diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_getters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_getters.h index 812ae14db..772b6a7ad 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_getters.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_getters.h @@ -26,16 +26,14 @@ SOFTWARE. /** * @file impl/denm/denm_getters.h - * @brief Getter functions for the ETSI ITS DENM + * @brief Getter functions for the ETSI ITS DENM (EN) */ #pragma once -namespace cdd = etsi_its_msgs::cdd_access; -namespace etsi_its_denm_msgs { - -namespace access { +namespace etsi_its_denm_msgs::access { +#include /** * @brief Get the Station ID object @@ -44,7 +42,7 @@ namespace access { * @return stationID value */ inline uint32_t getStationID(const DENM& denm){ - return cdd::getStationID(denm.header); + return getStationID(denm.header); } /** @@ -84,7 +82,7 @@ namespace access { * @return Latitude value in degree as decimal number */ inline double getLatitude(const DENM& denm){ - return cdd::getLatitude(denm.denm.management.event_position.latitude); + return getLatitude(denm.denm.management.event_position.latitude); } /** @@ -94,7 +92,7 @@ namespace access { * @return Longitude value in degree as decimal number */ inline double getLongitude(const DENM& denm){ - return cdd::getLongitude(denm.denm.management.event_position.longitude); + return getLongitude(denm.denm.management.event_position.longitude); } /** @@ -104,7 +102,7 @@ namespace access { * @return Altitude value (above the reference ellipsoid surface) in meter as decimal number */ inline double getAltitude(const DENM& denm){ - return cdd::getAltitude(denm.denm.management.event_position.altitude); + return getAltitude(denm.denm.management.event_position.altitude); } /** @@ -116,7 +114,7 @@ namespace access { inline double getHeading(const DENM& denm){ if(denm.denm.location_is_present){ if(denm.denm.location.event_position_heading_is_present){ - return cdd::getHeading(denm.denm.location.event_position_heading); + return getHeading(denm.denm.location.event_position_heading); } else{ throw std::invalid_argument("Heading is not present!"); @@ -151,7 +149,7 @@ namespace access { inline double getSpeed(const DENM& denm){ if(denm.denm.location_is_present){ if(denm.denm.location.event_speed_is_present){ - return cdd::getSpeed(denm.denm.location.event_speed); + return getSpeed(denm.denm.location.event_speed); } else{ throw std::invalid_argument("Speed is not present!"); @@ -186,7 +184,7 @@ namespace access { * @return gm::PointStamped geometry_msgs::PointStamped of the given position */ inline gm::PointStamped getUTMPosition(const DENM& denm, int& zone, bool& northp){ - return cdd::getUTMPosition(denm.denm.management.event_position, zone, northp); + return getUTMPosition(denm.denm.management.event_position, zone, northp); } /** @@ -417,6 +415,4 @@ namespace access { } } -} // namespace access - -} // namespace etsi_its_denm_msgs +} // namespace etsi_its_denm_msgs::access diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_setters.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_setters.h index 159097bf4..492b14d92 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_setters.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_setters.h @@ -26,17 +26,16 @@ SOFTWARE. /** * @file impl/denm/denm_setters.h - * @brief Setter functions for the ETSI ITS DENM + * @brief Setter functions for the ETSI ITS DENM (EN) */ #pragma once #include -namespace cdd = etsi_its_msgs::cdd_access; -namespace etsi_its_denm_msgs { +namespace etsi_its_denm_msgs::access { -namespace access { +#include /** * @brief Set the ItsPduHeader-object for a DENM @@ -46,7 +45,7 @@ namespace access { * @param protocol_version */ inline void setItsPduHeader(DENM& denm, const uint32_t station_id, const uint8_t protocol_version = 0){ - cdd::setItsPduHeader(denm.header, ItsPduHeader::MESSAGE_ID_DENM, station_id, protocol_version); + setItsPduHeader(denm.header, ItsPduHeader::MESSAGE_ID_DENM, station_id, protocol_version); } /** @@ -58,8 +57,8 @@ namespace access { */ inline void setReferenceTime(DENM& denm, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second){ TimestampIts t_its; - cdd::setTimestampITS(t_its, unix_nanosecs, n_leap_seconds); - cdd::throwIfOutOfRange(t_its.value, TimestampIts::MIN, TimestampIts::MAX, "TimestampIts"); + setTimestampITS(t_its, unix_nanosecs, n_leap_seconds); + throwIfOutOfRange(t_its.value, TimestampIts::MIN, TimestampIts::MAX, "TimestampIts"); denm.denm.management.reference_time = t_its; } @@ -70,7 +69,7 @@ namespace access { * @param value station_type value to set */ inline void setStationType(DENM& denm, const int value){ - cdd::setStationType(denm.denm.management.station_type, value); + setStationType(denm.denm.management.station_type, value); } /** @@ -84,7 +83,7 @@ namespace access { */ inline void setReferencePosition(DENM& denm, const double latitude, const double longitude) { - cdd::setReferencePosition(denm.denm.management.event_position, latitude, longitude); + setReferencePosition(denm.denm.management.event_position, latitude, longitude); } /** @@ -97,7 +96,7 @@ namespace access { */ inline void setReferencePosition(DENM& denm, const double latitude, const double longitude, const double altitude) { - cdd::setReferencePosition(denm.denm.management.event_position, latitude, longitude, altitude); + setReferencePosition(denm.denm.management.event_position, latitude, longitude, altitude); } /** @@ -126,7 +125,7 @@ namespace access { */ inline void setHeading(DENM& denm, const double heading_val){ if(denm.denm.location_is_present){ - cdd::setHeading(denm.denm.location.event_position_heading, heading_val); + setHeading(denm.denm.location.event_position_heading, heading_val); setIsHeadingPresent(denm, true); } else{ @@ -157,7 +156,7 @@ namespace access { */ inline void setSpeed(DENM& denm, const double speed_val){ if(denm.denm.location_is_present){ - cdd::setSpeed(denm.denm.location.event_speed, speed_val); + setSpeed(denm.denm.location.event_speed, speed_val); setIsSpeedPresent(denm, true); } else{ @@ -179,9 +178,7 @@ namespace access { */ inline void setFromUTMPosition(DENM& denm, const gm::PointStamped& utm_position, const int& zone, const bool& northp) { - cdd::setFromUTMPosition(denm.denm.management.event_position, utm_position, zone, northp); + setFromUTMPosition(denm.denm.management.event_position, utm_position, zone, northp); } -} // namespace access - -} // namespace etsi_its_denm_msgs +} // namespace etsi_its_denm_msgs::access diff --git a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_utils.h b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_utils.h index 951ce8214..cfcf9a8a8 100644 --- a/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_utils.h +++ b/etsi_its_msgs_utils/include/etsi_its_msgs_utils/impl/denm/denm_utils.h @@ -26,7 +26,7 @@ SOFTWARE. /** * @file impl/denm/denm_utils.h - * @brief Utility functions for the ETSI ITS DENM + * @brief Utility functions for the ETSI ITS DENM (EN) */ #include @@ -34,20 +34,14 @@ SOFTWARE. #pragma once -namespace cdd = etsi_its_msgs::cdd_access; -namespace etsi_its_denm_msgs { - -namespace access { - /** - * @brief Get the Unix-Nanoseconds from a given ReferenceTime object - * - * @param reference_time the ReferenceTime object to get the Unix-Nanoseconds from - * @param n_leap_seconds number of leap-seconds since 2004. (Default: etsi_its_msgs::N_LEAP_SECONDS) - * @return uint64_t the corresponding Unix-Nanoseconds - */ - inline uint64_t getUnixNanosecondsFromReferenceTime(const TimestampIts& reference_time, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) - { - return reference_time.value*1e6+etsi_its_msgs::UNIX_SECONDS_2004*1e9-n_leap_seconds*1e9; - } -} // namespace etsi_its_denm_msgs -} // namespace access \ No newline at end of file +/** + * @brief Get the Unix-Nanoseconds from a given ReferenceTime object + * + * @param reference_time the ReferenceTime object to get the Unix-Nanoseconds from + * @param n_leap_seconds number of leap-seconds since 2004. (Default: etsi_its_msgs::N_LEAP_SECONDS) + * @return uint64_t the corresponding Unix-Nanoseconds + */ +inline uint64_t getUnixNanosecondsFromReferenceTime(const TimestampIts& reference_time, const uint16_t n_leap_seconds = etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.end()->second) +{ + return reference_time.value*1e6+etsi_its_msgs::UNIX_SECONDS_2004*1e9-n_leap_seconds*1e9; +} \ No newline at end of file diff --git a/etsi_its_msgs_utils/test/impl/test_cam_access.cpp b/etsi_its_msgs_utils/test/impl/test_cam_access.cpp index 0dc8ca030..2458a9eec 100644 --- a/etsi_its_msgs_utils/test/impl/test_cam_access.cpp +++ b/etsi_its_msgs_utils/test/impl/test_cam_access.cpp @@ -38,13 +38,13 @@ TEST(etsi_its_cam_msgs, test_set_get_cam) { uint64_t t_2007 = ((uint64_t)1167609600)*1e9; TimestampIts t_its; EXPECT_EQ(1, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); - etsi_its_msgs::cdd_access::setTimestampITS(t_its, t_2007, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); + etsi_its_cam_msgs::access::setTimestampITS(t_its, t_2007, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); EXPECT_EQ(94694401000, t_its.value); setGenerationDeltaTime(cam, t_2007, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); EXPECT_EQ(94694401000%65536, getGenerationDeltaTimeValue(cam)); TimestampIts t_its2; uint64_t t_2007_off = t_2007 + 5*1e9; - etsi_its_msgs::cdd_access::setTimestampITS(t_its2, t_2007_off, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); + etsi_its_cam_msgs::access::setTimestampITS(t_its2, t_2007_off, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); EXPECT_EQ(94694401000, getTimestampITSFromGenerationDeltaTime(getGenerationDeltaTime(cam), t_its2).value); EXPECT_EQ(t_2007, getUnixNanosecondsFromGenerationDeltaTime(getGenerationDeltaTime(cam), t_its2, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9))); EXPECT_EQ(t_2007, getUnixNanosecondsFromGenerationDeltaTime(getGenerationDeltaTime(cam), t_2007_off, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9))); diff --git a/etsi_its_msgs_utils/test/impl/test_cam_ts_access.cpp b/etsi_its_msgs_utils/test/impl/test_cam_ts_access.cpp new file mode 100644 index 000000000..c6b7a57bb --- /dev/null +++ b/etsi_its_msgs_utils/test/impl/test_cam_ts_access.cpp @@ -0,0 +1,121 @@ +#include +#include +#include +#include +#include + +#include + +std::default_random_engine random_engine; + + +double randomDouble(double min, double max) { + std::uniform_real_distribution uniform_distribution_double(min, max); + return uniform_distribution_double(random_engine); +} + +int randomInt(int min, int max) { + std::uniform_int_distribution uniform_distribution_int(min, max); + return uniform_distribution_int(random_engine); +} + +TEST(etsi_its_cam_ts_msgs, test_set_get_cam) { + + CAM cam; + + int station_id = randomInt(StationId::MIN,StationId::MAX); + int protocol_version = randomInt(OrdinalNumber1B::MIN,OrdinalNumber1B::MAX); + setItsPduHeader(cam, station_id, protocol_version); + EXPECT_EQ(MessageId::CAM, cam.header.message_id.value); + EXPECT_EQ(protocol_version, cam.header.protocol_version.value); + EXPECT_EQ(station_id, getStationID(cam)); + + // https://www.etsi.org/deliver/etsi_ts/102800_102899/10289402/01.02.01_60/ts_10289402v010201p.pdf + // DE_TimestampITS + // The value for TimestampIts for 2007-01-01T00:00:00.000Z is + // 94694401000 milliseconds, which includes one leap second insertion + // since 2004-01-01T00:00:00.000Z. + uint64_t t_2007 = ((uint64_t)1167609600)*1e9; + TimestampIts t_its; + EXPECT_EQ(1, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); + etsi_its_cam_ts_msgs::access::setTimestampITS(t_its, t_2007, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); + EXPECT_EQ(94694401000, t_its.value); + setGenerationDeltaTime(cam, t_2007, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); + EXPECT_EQ(94694401000%65536, getGenerationDeltaTimeValue(cam)); + TimestampIts t_its2; + uint64_t t_2007_off = t_2007 + 5*1e9; + etsi_its_cam_ts_msgs::access::setTimestampITS(t_its2, t_2007_off, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9)); + EXPECT_EQ(94694401000, getTimestampITSFromGenerationDeltaTime(getGenerationDeltaTime(cam), t_its2).value); + EXPECT_EQ(t_2007, getUnixNanosecondsFromGenerationDeltaTime(getGenerationDeltaTime(cam), t_its2, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9))); + EXPECT_EQ(t_2007, getUnixNanosecondsFromGenerationDeltaTime(getGenerationDeltaTime(cam), t_2007_off, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007*1e-9))); + + int stationType_val = randomInt(TrafficParticipantType::MIN, TrafficParticipantType::MAX); + setStationType(cam, stationType_val); + EXPECT_EQ(stationType_val, getStationType(cam)); + + double latitude = randomDouble(-90.0, 90.0); + double longitude = randomDouble(-180.0, 180.0); + setReferencePosition(cam, latitude, longitude); + EXPECT_NEAR(latitude, getLatitude(cam), 1e-7); + EXPECT_NEAR(longitude, getLongitude(cam), 1e-7); + latitude = randomDouble(-90.0, 90.0); + longitude = randomDouble(-180.0, 180.0); + double altitude = randomDouble(-1000.0, 8000.0); + setReferencePosition(cam, latitude, longitude, altitude); + EXPECT_NEAR(latitude, getLatitude(cam), 1e-7); + EXPECT_NEAR(longitude, getLongitude(cam), 1e-7); + EXPECT_NEAR(altitude, getAltitude(cam), 1e-2); + + // Set specific position to test utm projection + latitude = 50.787467; + longitude = 6.046498; + altitude = 209.0; + setReferencePosition(cam, latitude, longitude, altitude); + int zone; + bool northp; + gm::PointStamped utm = getUTMPosition(cam, zone, northp); + EXPECT_NEAR(291827.02, utm.point.x, 1e-1); + EXPECT_NEAR(5630349.72, utm.point.y, 1e-1); + EXPECT_EQ(altitude, utm.point.z); + EXPECT_EQ(32, zone); + EXPECT_EQ(true, northp); + setFromUTMPosition(cam, utm, zone, northp); + EXPECT_NEAR(latitude, getLatitude(cam), 1e-7); + EXPECT_NEAR(longitude, getLongitude(cam), 1e-7); + EXPECT_NEAR(altitude, getAltitude(cam), 1e-2); + + double heading_val = randomDouble(0.0, 360.0); + setHeading(cam, heading_val); + EXPECT_NEAR(heading_val, getHeading(cam), 1e-1); + + double length = randomDouble(0.0, 102.2); + double width = randomDouble(0.0, 6.2); + setVehicleDimensions(cam, length, width); + EXPECT_NEAR(length, getVehicleLength(cam), 1e-1); + EXPECT_NEAR(width, getVehicleWidth(cam), 1e-1); + + double speed_val = randomDouble(0.0, 163.82); + setSpeed(cam, speed_val); + EXPECT_NEAR(speed_val, getSpeed(cam), 1e-2); + + double lon_accel = randomDouble(-16.0, 16.0); + double lat_accel = randomDouble(-16.0, 16.0); + setLongitudinalAcceleration(cam, lon_accel); + EXPECT_NEAR(lon_accel, getLongitudinalAcceleration(cam), 1e-1); + setLateralAcceleration(cam, lat_accel); + EXPECT_NEAR(lat_accel, getLateralAcceleration(cam), 1e-1); + + std::vector exterior_lights(ExteriorLights::SIZE_BITS); + for (int i = 0; i < ExteriorLights::SIZE_BITS; i++) { + exterior_lights.at(i) = randomInt(0, 1); + } + cam.cam.cam_parameters.low_frequency_container_is_present = true; + cam.cam.cam_parameters.low_frequency_container.choice = LowFrequencyContainer::CHOICE_BASIC_VEHICLE_CONTAINER_LOW_FREQUENCY; + setExteriorLights(cam, exterior_lights); + EXPECT_EQ(exterior_lights, getExteriorLights(cam)); +} + +int main(int argc, char *argv[]) { + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/etsi_its_msgs_utils/test/impl/test_denm_access.cpp b/etsi_its_msgs_utils/test/impl/test_denm_access.cpp index 5afacf0a8..af837f97b 100644 --- a/etsi_its_msgs_utils/test/impl/test_denm_access.cpp +++ b/etsi_its_msgs_utils/test/impl/test_denm_access.cpp @@ -37,7 +37,7 @@ TEST(etsi_its_denm_msgs, test_set_get_denm) { // since 2004-01-01T00:00:00.000Z. uint64_t t_2007 = ((uint64_t)1167609600)*1e9; TimestampIts t_its; - etsi_its_msgs::cdd_access::setTimestampITS(t_its, t_2007, 1); + etsi_its_denm_msgs::access::setTimestampITS(t_its, t_2007, 1); EXPECT_EQ(94694401000, t_its.value); setReferenceTime(denm, t_2007, 1); diff --git a/etsi_its_msgs_utils/test/test_cam_ts_access.ros2.cpp b/etsi_its_msgs_utils/test/test_cam_ts_access.ros2.cpp new file mode 100644 index 000000000..ab45d10bc --- /dev/null +++ b/etsi_its_msgs_utils/test/test_cam_ts_access.ros2.cpp @@ -0,0 +1,10 @@ + +#include + +#include + +using namespace etsi_its_cam_ts_msgs::msg; +using namespace etsi_its_cam_ts_msgs::access; +namespace gm = geometry_msgs::msg; + +#include diff --git a/utils/scripts/publish_cam.py b/utils/scripts/publish_cam.py index b9a7d8b48..8fdfe6b2c 100755 --- a/utils/scripts/publish_cam.py +++ b/utils/scripts/publish_cam.py @@ -44,6 +44,7 @@ def publish(self): msg.header.protocol_version = 2 msg.header.message_id = msg.header.MESSAGE_ID_CAM + msg.header.station_id.value = 32 msg.cam.generation_delta_time.value = msg.cam.generation_delta_time.ONE_MILLI_SEC diff --git a/utils/scripts/publish_cam_ts.py b/utils/scripts/publish_cam_ts.py new file mode 100755 index 000000000..dfb6c547c --- /dev/null +++ b/utils/scripts/publish_cam_ts.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python + +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +import rclpy +from rclpy.node import Node +from etsi_its_cam_ts_msgs.msg import * + + +class Publisher(Node): + + def __init__(self): + + super().__init__("cam_ts_publisher") + topic = "/etsi_its_conversion/cam_ts/in" + self.publisher = self.create_publisher(CAM, topic, 1) + self.timer = self.create_timer(1.0, self.publish) + + def publish(self): + + msg = CAM() + + msg.header.protocol_version.value = 2 + msg.header.message_id.value = msg.header.message_id.CAM + msg.header.station_id.value = 32 + + msg.cam.generation_delta_time.value = msg.cam.generation_delta_time.ONE_MILLI_SEC + + msg.cam.cam_parameters.basic_container.station_type.value = msg.cam.cam_parameters.basic_container.station_type.PASSENGER_CAR + msg.cam.cam_parameters.basic_container.reference_position.latitude.value = int(1e7 * 51.215169611787054) + + basic_vehicle_container_high_frequency = BasicVehicleContainerHighFrequency() + basic_vehicle_container_high_frequency.heading.heading_value.value = basic_vehicle_container_high_frequency.heading.heading_value.WGS84_NORTH + basic_vehicle_container_high_frequency.heading.heading_confidence.value = basic_vehicle_container_high_frequency.heading.heading_confidence.MIN + basic_vehicle_container_high_frequency.speed.speed_value.value = 1 + basic_vehicle_container_high_frequency.speed.speed_confidence.value = basic_vehicle_container_high_frequency.speed.speed_confidence.MIN + basic_vehicle_container_high_frequency.vehicle_length.vehicle_length_value.value = basic_vehicle_container_high_frequency.vehicle_length.vehicle_length_value.MIN + basic_vehicle_container_high_frequency.vehicle_width.value = basic_vehicle_container_high_frequency.vehicle_width.MIN + msg.cam.cam_parameters.high_frequency_container.choice = msg.cam.cam_parameters.high_frequency_container.CHOICE_BASIC_VEHICLE_CONTAINER_HIGH_FREQUENCY + msg.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_frequency = basic_vehicle_container_high_frequency + + self.get_logger().info(f"Publishing CAM (TS)") + self.publisher.publish(msg) + + +if __name__ == "__main__": + + rclpy.init() + publisher = Publisher() + rclpy.spin(publisher) + rclpy.shutdown()