diff --git a/.vscode/launch.json b/.vscode/launch.json index 7191732f5..55ebf21d2 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -3,17 +3,17 @@ "compounds": [ { "name": "All (coding)", - "configurations": ["CAM (coding)", "CAM TS (coding)", "DENM (coding)", "CPM TS (coding)", "VAM TS (coding)", "MAPEM TS (coding)", "SPATEM TS (coding)"], + "configurations": ["CAM (coding)", "CAM TS (coding)", "DENM (coding)", "CPM TS (coding)", "VAM TS (coding)", "MAPEM TS (coding)", "SPATEM TS (coding), IVIM TS (coding)"], "stopAll": false }, { "name": "All (msgs)", - "configurations": ["CAM (msgs)", "CAM TS (msgs)", "DENM (msgs)", "CPM TS (msgs)", "VAM TS (msgs)", "MAPEM TS (msgs)", "SPATEM TS (msgs)"], + "configurations": ["CAM (msgs)", "CAM TS (msgs)", "DENM (msgs)", "CPM TS (msgs)", "VAM TS (msgs)", "MAPEM TS (msgs)", "SPATEM TS (msgs), IVIM TS (msgs)"], "stopAll": false }, { "name": "All (conversion)", - "configurations": ["CAM (conversion)", "CAM TS (conversion)", "DENM (conversion)", "CPM TS (conversion)", "VAM TS (conversion)", "MAPEM TS (conversion)", "SPATEM TS (conversion)"], + "configurations": ["CAM (conversion)", "CAM TS (conversion)", "DENM (conversion)", "CPM TS (conversion)", "VAM TS (conversion)", "MAPEM TS (conversion)", "SPATEM TS (conversion), IVIM TS (conversion)"], "stopAll": false } ], @@ -285,6 +285,81 @@ "console": "integratedTerminal", "justMyCode": true }, + { + "name": "IVIM TS (coding)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/asn1ToC/asn1ToC.py", + "args": [ + "asn1/raw/is_ts103301/IVIM-PDU-Descriptions.asn", + "asn1/raw/is_ts103301/cdd/ITS-Container.asn", + "asn1/raw/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14823-missing.asn", + "asn1/raw/is_ts103301/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn", + "asn1/raw/is_ts103301/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "asn1/raw/is_ts103301/build/asn1/ISO19321IVIv2.asn", + "-t", + "ivim_ts", + "-o", + "etsi_its_coding/etsi_its_ivim_ts_coding" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "IVIM TS (msgs)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/codegen-py/asn1ToRosMsg.py", + "args": [ + "asn1/raw/is_ts103301/IVIM-PDU-Descriptions.asn", + "asn1/raw/is_ts103301/cdd/ITS-Container.asn", + "asn1/raw/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14823-missing.asn", + "asn1/raw/is_ts103301/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn", + "asn1/raw/is_ts103301/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "asn1/raw/is_ts103301/build/asn1/ISO19321IVIv2.asn", + "-t", + "ivim_ts", + "-o", + "etsi_its_msgs/etsi_its_ivim_ts_msgs/msg" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "IVIM TS (conversion)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/codegen-py/asn1ToConversionHeader.py", + "args": [ + "asn1/raw/is_ts103301/IVIM-PDU-Descriptions.asn", + "asn1/raw/is_ts103301/cdd/ITS-Container.asn", + "asn1/raw/is_ts103301/iso-patched/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14823-missing.asn", + "asn1/raw/is_ts103301/build/asn1/TS17419_2014_CITSapplMgmtIDs.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcGenericv7-patched.asn", + "asn1/raw/is_ts103301/iso-patched/ISO14906(2018)EfcDsrcApplicationv6-patched.asn", + "asn1/raw/is_ts103301/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "asn1/raw/is_ts103301/build/asn1/ISO19321IVIv2.asn", + "-t", + "ivim_ts", + "-o", + "etsi_its_conversion/etsi_its_ivim_ts_conversion/include/etsi_its_ivim_ts_conversion" + ], + "console": "integratedTerminal", + "justMyCode": true + }, { "name": "MAPEM TS (coding)", "preLaunchTask": "Patch ASN.1 files", diff --git a/README.md b/README.md index 8ab297d6e..2f961c3e1 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ - +

**ROS / ROS 2 Support for ETSI ITS Messages for V2X Communication** @@ -56,6 +56,7 @@ During runtime, the `etsi_its_conversion` ROS node converts incoming UDP payload | :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)) | [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: | 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)) | | :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: | IVIM | In-Vehicle Information Message | - | [TS 103 301 V2.1.1](https://cdn.standards.iteh.ai/samples/59277/21ee1e46b905419c84f44b40713f4bbc/ETSI-TS-103-301-V2-1-1-2021-03-.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/is_ts103301/-/tree/v2.1.1/)) | | :white_check_mark: | MAPEM | Map Extended Message | - | [TS 103 301 V2.1.1](https://www.etsi.org/deliver/etsi_ts/103300_103399/103301/02.01.01_60/ts_103301v020101p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/is_ts103301/-/tree/v2.1.1?ref_type=tags)) | | :white_check_mark: | SPATEM | Signal Phase and Timing Extended Message | - | [TS 103 301 V2.1.1](https://www.etsi.org/deliver/etsi_ts/103300_103399/103301/02.01.01_60/ts_103301v020101p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/is_ts103301/-/tree/v2.1.1?ref_type=tags)) | | :white_check_mark: | VAM | VRU Awareness Message | - | [TS 103 300-3 V2.2.1](https://www.etsi.org/deliver/etsi_ts/103300_103399/10330003/02.02.01_60/ts_10330003v020201p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3)) | diff --git a/etsi_its_coding/etsi_its_coding/package.xml b/etsi_its_coding/etsi_its_coding/package.xml index 3631bf2ec..cba24a6cd 100644 --- a/etsi_its_coding/etsi_its_coding/package.xml +++ b/etsi_its_coding/etsi_its_coding/package.xml @@ -19,6 +19,7 @@ etsi_its_cam_ts_coding etsi_its_cpm_ts_coding etsi_its_denm_coding + etsi_its_ivim_ts_coding etsi_its_mapem_ts_coding etsi_its_spatem_ts_coding etsi_its_vam_ts_coding diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/CMakeLists.txt b/etsi_its_coding/etsi_its_ivim_ts_coding/CMakeLists.txt new file mode 100644 index 000000000..d5e2fb8e2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/CMakeLists.txt @@ -0,0 +1,69 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ANY.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ANY.h new file mode 100644 index 000000000..d26499a96 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/BIT_STRING.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/BIT_STRING.h new file mode 100644 index 000000000..ac5543334 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/BOOLEAN.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/BOOLEAN.h new file mode 100644 index 000000000..4e3e041f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ENUMERATED.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ENUMERATED.h new file mode 100644 index 000000000..f2135fe04 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/GraphicString.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/GraphicString.h new file mode 100644 index 000000000..1398aba84 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/IA5String.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/IA5String.h new file mode 100644 index 000000000..ccc71c13a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/INTEGER.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/INTEGER.h new file mode 100644 index 000000000..396152360 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/NULL.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/NULL.h new file mode 100644 index 000000000..b75aa7279 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/NativeEnumerated.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/NativeEnumerated.h new file mode 100644 index 000000000..b703caef6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/NativeInteger.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/NativeInteger.h new file mode 100644 index 000000000..12fae46da --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/NumericString.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/NumericString.h new file mode 100644 index 000000000..dcd4ae88d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/OBJECT_IDENTIFIER.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/OBJECT_IDENTIFIER.h new file mode 100644 index 000000000..be48ac51f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/OCTET_STRING.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/OCTET_STRING.h new file mode 100644 index 000000000..5ab900868 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/OPEN_TYPE.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/OPEN_TYPE.h new file mode 100644 index 000000000..64c3c03a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ObjectDescriptor.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ObjectDescriptor.h new file mode 100644 index 000000000..c1745a622 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/UTF8String.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/UTF8String.h new file mode 100644 index 000000000..f0ef87225 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/VisibleString.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/VisibleString.h new file mode 100644 index 000000000..f0d3cddda --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/VisibleString.h @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _VisibleString_H_ +#define _VisibleString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t VisibleString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_VisibleString; +extern asn_TYPE_operation_t asn_OP_VisibleString; + +#define VisibleString_free OCTET_STRING_free + +#if !defined(ASN_DISABLE_PRINT_SUPPORT) +#define VisibleString_print OCTET_STRING_print +#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */ + +#define VisibleString_compare OCTET_STRING_compare +#define VisibleString_copy OCTET_STRING_copy + +asn_constr_check_f VisibleString_constraint; + +#if !defined(ASN_DISABLE_BER_SUPPORT) +#define VisibleString_decode_ber OCTET_STRING_decode_ber +#define VisibleString_encode_der OCTET_STRING_encode_der +#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */ + +#if !defined(ASN_DISABLE_XER_SUPPORT) +#define VisibleString_decode_xer OCTET_STRING_decode_xer_hex +#define VisibleString_encode_xer OCTET_STRING_encode_xer +#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ + +#if !defined(ASN_DISABLE_JER_SUPPORT) +#define VisibleString_decode_jer OCTET_STRING_decode_jer_hex +#define VisibleString_encode_jer OCTET_STRING_encode_jer +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + +#if !defined(ASN_DISABLE_UPER_SUPPORT) +#define VisibleString_decode_uper OCTET_STRING_decode_uper +#define VisibleString_encode_uper OCTET_STRING_encode_uper +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */ +#if !defined(ASN_DISABLE_APER_SUPPORT) +#define VisibleString_decode_aper OCTET_STRING_decode_aper +#define VisibleString_encode_aper OCTET_STRING_encode_aper +#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _VisibleString_H_ */ diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/aper_decoder.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/aper_decoder.h new file mode 100644 index 000000000..d868caff8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/aper_encoder.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/aper_encoder.h new file mode 100644 index 000000000..005f23202 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/aper_opentype.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/aper_opentype.h new file mode 100644 index 000000000..e510f510b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/aper_support.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/aper_support.h new file mode 100644 index 000000000..d70731186 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_SEQUENCE_OF.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_SEQUENCE_OF.h new file mode 100644 index 000000000..48510a512 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_SET_OF.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_SET_OF.h new file mode 100644 index 000000000..882e1a47d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_application.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_application.h new file mode 100644 index 000000000..8b5c8f31d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/asn_system.h" /* for platform-dependent types */ +#include "etsi_its_ivim_ts_coding/asn_codecs.h" /* for ASN.1 codecs specifics */ +#include "etsi_its_ivim_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_ivim_ts_coding/constr_TYPE.h" /* for asn_TYPE_descriptor_t */ + +#endif /* ASN_APPLICATION_H */ diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_bit_data.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_bit_data.h new file mode 100644 index 000000000..9187af262 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_codecs.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_codecs.h new file mode 100644 index 000000000..e75c2709c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_codecs_prim.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_codecs_prim.h new file mode 100644 index 000000000..643ce989f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_config.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_config.h new file mode 100644 index 000000000..ddcac9026 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_internal.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_internal.h new file mode 100644 index 000000000..2f5204ec1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_ioc.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_ioc.h new file mode 100644 index 000000000..085d04169 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_random_fill.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_random_fill.h new file mode 100644 index 000000000..47f9b8af0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_system.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/asn_system.h new file mode 100644 index 000000000..194f96a5f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ber_tlv_length.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ber_tlv_length.h new file mode 100644 index 000000000..d1e4d48dd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ber_tlv_tag.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ber_tlv_tag.h new file mode 100644 index 000000000..ce227add6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_CHOICE.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_CHOICE.h new file mode 100644 index 000000000..17d70ae10 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_SEQUENCE.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_SEQUENCE.h new file mode 100644 index 000000000..8c2161480 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_SEQUENCE_OF.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_SEQUENCE_OF.h new file mode 100644 index 000000000..f03313be6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_SET_OF.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_SET_OF.h new file mode 100644 index 000000000..bcb182b0c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_TYPE.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constr_TYPE.h new file mode 100644 index 000000000..d6cab7e6b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constraints.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/constraints.h new file mode 100644 index 000000000..bb2213b15 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePosition.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePosition.h new file mode 100644 index 000000000..e51c737b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePosition.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AbsolutePosition_H_ +#define _ivim_ts_AbsolutePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_AbsolutePosition */ +typedef struct ivim_ts_AbsolutePosition { + ivim_ts_Latitude_t latitude; + ivim_ts_Longitude_t longitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AbsolutePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AbsolutePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AbsolutePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AbsolutePosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AbsolutePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionWAltitude.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionWAltitude.h new file mode 100644 index 000000000..8c6b09c0c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionWAltitude.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AbsolutePositionWAltitude_H_ +#define _ivim_ts_AbsolutePositionWAltitude_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_AbsolutePositionWAltitude */ +typedef struct ivim_ts_AbsolutePositionWAltitude { + ivim_ts_Latitude_t latitude; + ivim_ts_Longitude_t longitude; + ivim_ts_Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AbsolutePositionWAltitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AbsolutePositionWAltitude; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AbsolutePositionWAltitude_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AbsolutePositionWAltitude_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AbsolutePositionWAltitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositions.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositions.h new file mode 100644 index 000000000..22e682b1c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositions.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AbsolutePositions_H_ +#define _ivim_ts_AbsolutePositions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_AbsolutePosition; + +/* ivim_ts_AbsolutePositions */ +typedef struct ivim_ts_AbsolutePositions { + A_SEQUENCE_OF(struct ivim_ts_AbsolutePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AbsolutePositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AbsolutePositions; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_AbsolutePositions_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AbsolutePositions_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_AbsolutePositions_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AbsolutePosition.h" + +#endif /* _ivim_ts_AbsolutePositions_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionsWAltitude.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionsWAltitude.h new file mode 100644 index 000000000..653232f9e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionsWAltitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AbsolutePositionsWAltitude_H_ +#define _ivim_ts_AbsolutePositionsWAltitude_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_AbsolutePositionWAltitude; + +/* ivim_ts_AbsolutePositionsWAltitude */ +typedef struct ivim_ts_AbsolutePositionsWAltitude { + A_SEQUENCE_OF(struct ivim_ts_AbsolutePositionWAltitude) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AbsolutePositionsWAltitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AbsolutePositionsWAltitude; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_AbsolutePositionsWAltitude_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AbsolutePositionsWAltitude_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_AbsolutePositionsWAltitude_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionWAltitude.h" + +#endif /* _ivim_ts_AbsolutePositionsWAltitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccelerationConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccelerationConfidence.h new file mode 100644 index 000000000..50dd89594 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccelerationConfidence.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AccelerationConfidence_H_ +#define _ivim_ts_AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AccelerationConfidence { + ivim_ts_AccelerationConfidence_pointOneMeterPerSecSquared = 1, + ivim_ts_AccelerationConfidence_outOfRange = 101, + ivim_ts_AccelerationConfidence_unavailable = 102 +} e_ivim_ts_AccelerationConfidence; + +/* ivim_ts_AccelerationConfidence */ +typedef long ivim_ts_AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AccelerationConfidence; +asn_struct_free_f ivim_ts_AccelerationConfidence_free; +asn_struct_print_f ivim_ts_AccelerationConfidence_print; +asn_constr_check_f ivim_ts_AccelerationConfidence_constraint; +per_type_decoder_f ivim_ts_AccelerationConfidence_decode_uper; +per_type_encoder_f ivim_ts_AccelerationConfidence_encode_uper; +per_type_decoder_f ivim_ts_AccelerationConfidence_decode_aper; +per_type_encoder_f ivim_ts_AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AccelerationConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccelerationControl.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccelerationControl.h new file mode 100644 index 000000000..cd1a731c9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccelerationControl.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AccelerationControl_H_ +#define _ivim_ts_AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AccelerationControl { + ivim_ts_AccelerationControl_brakePedalEngaged = 0, + ivim_ts_AccelerationControl_gasPedalEngaged = 1, + ivim_ts_AccelerationControl_emergencyBrakeEngaged = 2, + ivim_ts_AccelerationControl_collisionWarningEngaged = 3, + ivim_ts_AccelerationControl_accEngaged = 4, + ivim_ts_AccelerationControl_cruiseControlEngaged = 5, + ivim_ts_AccelerationControl_speedLimiterEngaged = 6 +} e_ivim_ts_AccelerationControl; + +/* ivim_ts_AccelerationControl */ +typedef BIT_STRING_t ivim_ts_AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AccelerationControl; +asn_struct_free_f ivim_ts_AccelerationControl_free; +asn_struct_print_f ivim_ts_AccelerationControl_print; +asn_constr_check_f ivim_ts_AccelerationControl_constraint; +per_type_decoder_f ivim_ts_AccelerationControl_decode_uper; +per_type_encoder_f ivim_ts_AccelerationControl_encode_uper; +per_type_decoder_f ivim_ts_AccelerationControl_decode_aper; +per_type_encoder_f ivim_ts_AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AccelerationControl_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccidentSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccidentSubCauseCode.h new file mode 100644 index 000000000..0c908a97d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AccidentSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AccidentSubCauseCode_H_ +#define _ivim_ts_AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AccidentSubCauseCode { + ivim_ts_AccidentSubCauseCode_unavailable = 0, + ivim_ts_AccidentSubCauseCode_multiVehicleAccident = 1, + ivim_ts_AccidentSubCauseCode_heavyAccident = 2, + ivim_ts_AccidentSubCauseCode_accidentInvolvingLorry = 3, + ivim_ts_AccidentSubCauseCode_accidentInvolvingBus = 4, + ivim_ts_AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + ivim_ts_AccidentSubCauseCode_accidentOnOppositeLane = 6, + ivim_ts_AccidentSubCauseCode_unsecuredAccident = 7, + ivim_ts_AccidentSubCauseCode_assistanceRequested = 8 +} e_ivim_ts_AccidentSubCauseCode; + +/* ivim_ts_AccidentSubCauseCode */ +typedef long ivim_ts_AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AccidentSubCauseCode; +asn_struct_free_f ivim_ts_AccidentSubCauseCode_free; +asn_struct_print_f ivim_ts_AccidentSubCauseCode_print; +asn_constr_check_f ivim_ts_AccidentSubCauseCode_constraint; +per_type_decoder_f ivim_ts_AccidentSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_AccidentSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_AccidentSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AccidentSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ActionID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ActionID.h new file mode 100644 index 000000000..a1d1e5ce0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ActionID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ActionID_H_ +#define _ivim_ts_ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_StationID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ActionID */ +typedef struct ivim_ts_ActionID { + ivim_ts_StationID_t originatingStationID; + ivim_ts_SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ActionID; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ActionID_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ActionID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ActionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ActualNumberOfPassengers.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ActualNumberOfPassengers.h new file mode 100644 index 000000000..a3fa65f1c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ActualNumberOfPassengers.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ActualNumberOfPassengers_H_ +#define _ivim_ts_ActualNumberOfPassengers_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ActualNumberOfPassengers */ +typedef ivim_ts_Int1_t ivim_ts_ActualNumberOfPassengers_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ActualNumberOfPassengers; +asn_struct_free_f ivim_ts_ActualNumberOfPassengers_free; +asn_struct_print_f ivim_ts_ActualNumberOfPassengers_print; +asn_constr_check_f ivim_ts_ActualNumberOfPassengers_constraint; +per_type_decoder_f ivim_ts_ActualNumberOfPassengers_decode_uper; +per_type_encoder_f ivim_ts_ActualNumberOfPassengers_encode_uper; +per_type_decoder_f ivim_ts_ActualNumberOfPassengers_decode_aper; +per_type_encoder_f ivim_ts_ActualNumberOfPassengers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ActualNumberOfPassengers_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AddRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AddRq.h new file mode 100644 index 000000000..bbe02bf8d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AddRq.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AddRq_H_ +#define _ivim_ts_AddRq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_AddRq */ +typedef struct ivim_ts_AddRq { + long attributeId; + long value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AddRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AddRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AddRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 000000000..56ee303f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode { + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* ivim_ts_AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +per_type_decoder_f ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 000000000..2bcec0d25 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* ivim_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +per_type_decoder_f ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 000000000..bc55b17dd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode { + ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* ivim_ts_AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +per_type_decoder_f ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 000000000..e1ffb2571 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode { + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* ivim_ts_AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +per_type_decoder_f ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeed.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeed.h new file mode 100644 index 000000000..6977e9b11 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeed.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AdvisorySpeed_H_ +#define _ivim_ts_AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedAdvice.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidenceDSRC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneLength.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_AdvisorySpeed; + +/* ivim_ts_AdvisorySpeed */ +typedef struct ivim_ts_AdvisorySpeed { + ivim_ts_AdvisorySpeedType_t type; + ivim_ts_SpeedAdvice_t *speed; /* OPTIONAL */ + ivim_ts_SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + ivim_ts_ZoneLength_t *distance; /* OPTIONAL */ + ivim_ts_RestrictionClassID_t *Class; /* OPTIONAL */ + struct ivim_ts_AdvisorySpeed__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_AdvisorySpeed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedList.h new file mode 100644 index 000000000..b6278b391 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AdvisorySpeedList_H_ +#define _ivim_ts_AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_AdvisorySpeed; + +/* ivim_ts_AdvisorySpeedList */ +typedef struct ivim_ts_AdvisorySpeedList { + A_SEQUENCE_OF(struct ivim_ts_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeed.h" + +#endif /* _ivim_ts_AdvisorySpeedList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedType.h new file mode 100644 index 000000000..66079d837 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedType.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AdvisorySpeedType_H_ +#define _ivim_ts_AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AdvisorySpeedType { + ivim_ts_AdvisorySpeedType_none = 0, + ivim_ts_AdvisorySpeedType_greenwave = 1, + ivim_ts_AdvisorySpeedType_ecoDrive = 2, + ivim_ts_AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_ivim_ts_AdvisorySpeedType; + +/* ivim_ts_AdvisorySpeedType */ +typedef long ivim_ts_AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_AdvisorySpeedType_specs_1; +asn_struct_free_f ivim_ts_AdvisorySpeedType_free; +asn_struct_print_f ivim_ts_AdvisorySpeedType_print; +asn_constr_check_f ivim_ts_AdvisorySpeedType_constraint; +per_type_decoder_f ivim_ts_AdvisorySpeedType_decode_uper; +per_type_encoder_f ivim_ts_AdvisorySpeedType_encode_uper; +per_type_decoder_f ivim_ts_AdvisorySpeedType_decode_aper; +per_type_encoder_f ivim_ts_AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AdvisorySpeedType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AllowedManeuvers.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AllowedManeuvers.h new file mode 100644 index 000000000..8e215156e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AllowedManeuvers.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AllowedManeuvers_H_ +#define _ivim_ts_AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AllowedManeuvers { + ivim_ts_AllowedManeuvers_maneuverStraightAllowed = 0, + ivim_ts_AllowedManeuvers_maneuverLeftAllowed = 1, + ivim_ts_AllowedManeuvers_maneuverRightAllowed = 2, + ivim_ts_AllowedManeuvers_maneuverUTurnAllowed = 3, + ivim_ts_AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + ivim_ts_AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + ivim_ts_AllowedManeuvers_maneuverLaneChangeAllowed = 6, + ivim_ts_AllowedManeuvers_maneuverNoStoppingAllowed = 7, + ivim_ts_AllowedManeuvers_yieldAllwaysRequired = 8, + ivim_ts_AllowedManeuvers_goWithHalt = 9, + ivim_ts_AllowedManeuvers_caution = 10, + ivim_ts_AllowedManeuvers_reserved1 = 11 +} e_ivim_ts_AllowedManeuvers; + +/* ivim_ts_AllowedManeuvers */ +typedef BIT_STRING_t ivim_ts_AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AllowedManeuvers; +asn_struct_free_f ivim_ts_AllowedManeuvers_free; +asn_struct_print_f ivim_ts_AllowedManeuvers_print; +asn_constr_check_f ivim_ts_AllowedManeuvers_constraint; +per_type_decoder_f ivim_ts_AllowedManeuvers_decode_uper; +per_type_encoder_f ivim_ts_AllowedManeuvers_encode_uper; +per_type_decoder_f ivim_ts_AllowedManeuvers_decode_aper; +per_type_encoder_f ivim_ts_AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AllowedManeuvers_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AlphabetIndicator.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AlphabetIndicator.h new file mode 100644 index 000000000..98344e2a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AlphabetIndicator.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AlphabetIndicator_H_ +#define _ivim_ts_AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AlphabetIndicator { + ivim_ts_AlphabetIndicator_latinAlphabetNo1 = 0, + ivim_ts_AlphabetIndicator_latinAlphabetNo2 = 1, + ivim_ts_AlphabetIndicator_latinAlphabetNo3 = 2, + ivim_ts_AlphabetIndicator_latinAlphabetNo4 = 3, + ivim_ts_AlphabetIndicator_latinCyrillicAlphabet = 4, + ivim_ts_AlphabetIndicator_latinArabicAlphabet = 5, + ivim_ts_AlphabetIndicator_latinGreekAlphabet = 6, + ivim_ts_AlphabetIndicator_latinHebrewAlphabet = 7, + ivim_ts_AlphabetIndicator_latinAlphabetNo5 = 8, + ivim_ts_AlphabetIndicator_latinAlphabetNo6 = 9, + ivim_ts_AlphabetIndicator_twoOctetBMP = 10, + ivim_ts_AlphabetIndicator_fourOctetCanonical = 11 +} e_ivim_ts_AlphabetIndicator; + +/* ivim_ts_AlphabetIndicator */ +typedef long ivim_ts_AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AlphabetIndicator; +asn_struct_free_f ivim_ts_AlphabetIndicator_free; +asn_struct_print_f ivim_ts_AlphabetIndicator_print; +asn_constr_check_f ivim_ts_AlphabetIndicator_constraint; +per_type_decoder_f ivim_ts_AlphabetIndicator_decode_uper; +per_type_encoder_f ivim_ts_AlphabetIndicator_encode_uper; +per_type_decoder_f ivim_ts_AlphabetIndicator_decode_aper; +per_type_encoder_f ivim_ts_AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AlphabetIndicator_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Altitude.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Altitude.h new file mode 100644 index 000000000..77aad4ad7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Altitude_H_ +#define _ivim_ts_Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AltitudeValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Altitude */ +typedef struct ivim_ts_Altitude { + ivim_ts_AltitudeValue_t altitudeValue; + ivim_ts_AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Altitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AltitudeConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AltitudeConfidence.h new file mode 100644 index 000000000..ab4c43869 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AltitudeConfidence.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AltitudeConfidence_H_ +#define _ivim_ts_AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AltitudeConfidence { + ivim_ts_AltitudeConfidence_alt_000_01 = 0, + ivim_ts_AltitudeConfidence_alt_000_02 = 1, + ivim_ts_AltitudeConfidence_alt_000_05 = 2, + ivim_ts_AltitudeConfidence_alt_000_10 = 3, + ivim_ts_AltitudeConfidence_alt_000_20 = 4, + ivim_ts_AltitudeConfidence_alt_000_50 = 5, + ivim_ts_AltitudeConfidence_alt_001_00 = 6, + ivim_ts_AltitudeConfidence_alt_002_00 = 7, + ivim_ts_AltitudeConfidence_alt_005_00 = 8, + ivim_ts_AltitudeConfidence_alt_010_00 = 9, + ivim_ts_AltitudeConfidence_alt_020_00 = 10, + ivim_ts_AltitudeConfidence_alt_050_00 = 11, + ivim_ts_AltitudeConfidence_alt_100_00 = 12, + ivim_ts_AltitudeConfidence_alt_200_00 = 13, + ivim_ts_AltitudeConfidence_outOfRange = 14, + ivim_ts_AltitudeConfidence_unavailable = 15 +} e_ivim_ts_AltitudeConfidence; + +/* ivim_ts_AltitudeConfidence */ +typedef long ivim_ts_AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_AltitudeConfidence_specs_1; +asn_struct_free_f ivim_ts_AltitudeConfidence_free; +asn_struct_print_f ivim_ts_AltitudeConfidence_print; +asn_constr_check_f ivim_ts_AltitudeConfidence_constraint; +per_type_decoder_f ivim_ts_AltitudeConfidence_decode_uper; +per_type_encoder_f ivim_ts_AltitudeConfidence_encode_uper; +per_type_decoder_f ivim_ts_AltitudeConfidence_decode_aper; +per_type_encoder_f ivim_ts_AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AltitudeConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AltitudeValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AltitudeValue.h new file mode 100644 index 000000000..3a7782a37 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AltitudeValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AltitudeValue_H_ +#define _ivim_ts_AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_AltitudeValue { + ivim_ts_AltitudeValue_referenceEllipsoidSurface = 0, + ivim_ts_AltitudeValue_oneCentimeter = 1, + ivim_ts_AltitudeValue_unavailable = 800001 +} e_ivim_ts_AltitudeValue; + +/* ivim_ts_AltitudeValue */ +typedef long ivim_ts_AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AltitudeValue; +asn_struct_free_f ivim_ts_AltitudeValue_free; +asn_struct_print_f ivim_ts_AltitudeValue_print; +asn_constr_check_f ivim_ts_AltitudeValue_constraint; +per_type_decoder_f ivim_ts_AltitudeValue_decode_uper; +per_type_encoder_f ivim_ts_AltitudeValue_encode_uper; +per_type_decoder_f ivim_ts_AltitudeValue_decode_aper; +per_type_encoder_f ivim_ts_AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AltitudeValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Angle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Angle.h new file mode 100644 index 000000000..94cb437df --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Angle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Angle_H_ +#define _ivim_ts_Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Angle */ +typedef long ivim_ts_Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Angle; +asn_struct_free_f ivim_ts_Angle_free; +asn_struct_print_f ivim_ts_Angle_print; +asn_constr_check_f ivim_ts_Angle_constraint; +per_type_decoder_f ivim_ts_Angle_decode_uper; +per_type_encoder_f ivim_ts_Angle_encode_uper; +per_type_decoder_f ivim_ts_Angle_decode_aper; +per_type_encoder_f ivim_ts_Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Angle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AntennaOffsetSet.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AntennaOffsetSet.h new file mode 100644 index 000000000..6e267c93e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AntennaOffsetSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AntennaOffsetSet_H_ +#define _ivim_ts_AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B12.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B09.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_AntennaOffsetSet */ +typedef struct ivim_ts_AntennaOffsetSet { + ivim_ts_Offset_B12_t antOffsetX; + ivim_ts_Offset_B09_t antOffsetY; + ivim_ts_Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AntennaOffsetSet_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AnyCatalogue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AnyCatalogue.h new file mode 100644 index 000000000..d2f0edf75 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AnyCatalogue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AnyCatalogue_H_ +#define _ivim_ts_AnyCatalogue_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Provider.h" +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_RSCUnit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ISO14823Attributes; + +/* ivim_ts_AnyCatalogue */ +typedef struct ivim_ts_AnyCatalogue { + ivim_ts_Provider_t owner; + long version; + long pictogramCode; + long *value; /* OPTIONAL */ + ivim_ts_RSCUnit_t *unit; /* OPTIONAL */ + struct ivim_ts_ISO14823Attributes *attributes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AnyCatalogue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AnyCatalogue; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AnyCatalogue_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AnyCatalogue_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attributes.h" + +#endif /* _ivim_ts_AnyCatalogue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ApproachID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ApproachID.h new file mode 100644 index 000000000..7d6dd0bd4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ApproachID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ApproachID_H_ +#define _ivim_ts_ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ApproachID */ +typedef long ivim_ts_ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ApproachID; +asn_struct_free_f ivim_ts_ApproachID_free; +asn_struct_print_f ivim_ts_ApproachID_print; +asn_constr_check_f ivim_ts_ApproachID_constraint; +per_type_decoder_f ivim_ts_ApproachID_decode_uper; +per_type_encoder_f ivim_ts_ApproachID_encode_uper; +per_type_decoder_f ivim_ts_ApproachID_decode_aper; +per_type_encoder_f ivim_ts_ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ApproachID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AttributeIdList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AttributeIdList.h new file mode 100644 index 000000000..4219fdc04 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AttributeIdList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/input/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AttributeIdList_H_ +#define _ivim_ts_AttributeIdList_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_AttributeIdList */ +typedef struct ivim_ts_AttributeIdList { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AttributeIdList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AttributeIdList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_AttributeIdList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AttributeIdList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_AttributeIdList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AttributeIdList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AttributeList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AttributeList.h new file mode 100644 index 000000000..838a2be8b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AttributeList.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/input/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AttributeList_H_ +#define _ivim_ts_AttributeList_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AttributeList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Attributes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Attributes.h new file mode 100644 index 000000000..ed394e05e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Attributes.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/input/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Attributes_H_ +#define _ivim_ts_Attributes_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Attributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleContainer.h new file mode 100644 index 000000000..2baebeb02 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AutomatedVehicleContainer_H_ +#define _ivim_ts_AutomatedVehicleContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_AvcPart; + +/* ivim_ts_AutomatedVehicleContainer */ +typedef struct ivim_ts_AutomatedVehicleContainer { + A_SEQUENCE_OF(struct ivim_ts_AvcPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AutomatedVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AutomatedVehicleContainer; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_AutomatedVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AutomatedVehicleContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_AutomatedVehicleContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AvcPart.h" + +#endif /* _ivim_ts_AutomatedVehicleContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRule.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRule.h new file mode 100644 index 000000000..f5617b096 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRule.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AutomatedVehicleRule_H_ +#define _ivim_ts_AutomatedVehicleRule_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PriorityLevel.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevels.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_GapBetweenVehicles.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RoadSignCodes; +struct ivim_ts_ConstraintTextLines2; + +/* ivim_ts_AutomatedVehicleRule */ +typedef struct ivim_ts_AutomatedVehicleRule { + ivim_ts_PriorityLevel_t priority; + ivim_ts_SaeAutomationLevels_t allowedSaeAutomationLevels; + ivim_ts_GapBetweenVehicles_t *minGapBetweenVehicles; /* OPTIONAL */ + ivim_ts_GapBetweenVehicles_t *recGapBetweenVehicles; /* OPTIONAL */ + ivim_ts_SpeedValue_t *automatedVehicleMaxSpeedLimit; /* OPTIONAL */ + ivim_ts_SpeedValue_t *automatedVehicleMinSpeedLimit; /* OPTIONAL */ + ivim_ts_SpeedValue_t *automatedVehicleSpeedRecommendation; /* OPTIONAL */ + struct ivim_ts_RoadSignCodes *roadSignCodes; /* OPTIONAL */ + struct ivim_ts_ConstraintTextLines2 *extraText; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AutomatedVehicleRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AutomatedVehicleRule; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AutomatedVehicleRule_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AutomatedVehicleRule_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSignCodes.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines2.h" + +#endif /* _ivim_ts_AutomatedVehicleRule_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRules.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRules.h new file mode 100644 index 000000000..57d09cfdc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRules.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AutomatedVehicleRules_H_ +#define _ivim_ts_AutomatedVehicleRules_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_AutomatedVehicleRule; + +/* ivim_ts_AutomatedVehicleRules */ +typedef struct ivim_ts_AutomatedVehicleRules { + A_SEQUENCE_OF(struct ivim_ts_AutomatedVehicleRule) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AutomatedVehicleRules_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AutomatedVehicleRules; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_AutomatedVehicleRules_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AutomatedVehicleRules_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_AutomatedVehicleRules_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRule.h" + +#endif /* _ivim_ts_AutomatedVehicleRules_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AvcPart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AvcPart.h new file mode 100644 index 000000000..5468bd61d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AvcPart.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AvcPart_H_ +#define _ivim_ts_AvcPart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Direction.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ZoneIds; +struct ivim_ts_LanePositions; +struct ivim_ts_VehicleCharacteristicsList; +struct ivim_ts_AutomatedVehicleRules; +struct ivim_ts_PlatooningRules; + +/* ivim_ts_AvcPart */ +typedef struct ivim_ts_AvcPart { + struct ivim_ts_ZoneIds *detectionZoneIds; /* OPTIONAL */ + ivim_ts_ZoneIds_t relevanceZoneIds; + ivim_ts_Direction_t *direction; /* OPTIONAL */ + struct ivim_ts_LanePositions *applicableLanes; /* OPTIONAL */ + struct ivim_ts_VehicleCharacteristicsList *vehicleCharacteristics; /* OPTIONAL */ + struct ivim_ts_AutomatedVehicleRules *automatedVehicleRules; /* OPTIONAL */ + struct ivim_ts_PlatooningRules *platooningRules; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AvcPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AvcPart; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AvcPart_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AvcPart_1[7]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_AvcPart_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePositions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRules.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PlatooningRules.h" + +#endif /* _ivim_ts_AvcPart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AviEriDateTime.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AviEriDateTime.h new file mode 100644 index 000000000..ce02b3c34 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AviEriDateTime.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AviEriDateTime_H_ +#define _ivim_ts_AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_AviEriDateTime */ +typedef OCTET_STRING_t ivim_ts_AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AviEriDateTime; +asn_struct_free_f ivim_ts_AviEriDateTime_free; +asn_struct_print_f ivim_ts_AviEriDateTime_print; +asn_constr_check_f ivim_ts_AviEriDateTime_constraint; +per_type_decoder_f ivim_ts_AviEriDateTime_decode_uper; +per_type_encoder_f ivim_ts_AviEriDateTime_encode_uper; +per_type_decoder_f ivim_ts_AviEriDateTime_decode_aper; +per_type_encoder_f ivim_ts_AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AviEriDateTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AxleWeightLimits.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AxleWeightLimits.h new file mode 100644 index 000000000..d5d87c272 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_AxleWeightLimits.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_AxleWeightLimits_H_ +#define _ivim_ts_AxleWeightLimits_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_AxleWeightLimits */ +typedef struct ivim_ts_AxleWeightLimits { + ivim_ts_Int2_t maxLadenweightOnAxle1; + ivim_ts_Int2_t maxLadenweightOnAxle2; + ivim_ts_Int2_t maxLadenweightOnAxle3; + ivim_ts_Int2_t maxLadenweightOnAxle4; + ivim_ts_Int2_t maxLadenweightOnAxle5; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_AxleWeightLimits_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_AxleWeightLimits; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AxleWeightLimits_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_AxleWeightLimits_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_AxleWeightLimits_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BankingAngle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BankingAngle.h new file mode 100644 index 000000000..8fa497161 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BankingAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_BankingAngle_H_ +#define _ivim_ts_BankingAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_BankingAngle */ +typedef long ivim_ts_BankingAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_BankingAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_BankingAngle; +asn_struct_free_f ivim_ts_BankingAngle_free; +asn_struct_print_f ivim_ts_BankingAngle_print; +asn_constr_check_f ivim_ts_BankingAngle_constraint; +per_type_decoder_f ivim_ts_BankingAngle_decode_uper; +per_type_encoder_f ivim_ts_BankingAngle_encode_uper; +per_type_decoder_f ivim_ts_BankingAngle_decode_aper; +per_type_encoder_f ivim_ts_BankingAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_BankingAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BasicVehicleRole.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BasicVehicleRole.h new file mode 100644 index 000000000..dc6cce564 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BasicVehicleRole.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_BasicVehicleRole_H_ +#define _ivim_ts_BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_BasicVehicleRole { + ivim_ts_BasicVehicleRole_basicVehicle = 0, + ivim_ts_BasicVehicleRole_publicTransport = 1, + ivim_ts_BasicVehicleRole_specialTransport = 2, + ivim_ts_BasicVehicleRole_dangerousGoods = 3, + ivim_ts_BasicVehicleRole_roadWork = 4, + ivim_ts_BasicVehicleRole_roadRescue = 5, + ivim_ts_BasicVehicleRole_emergency = 6, + ivim_ts_BasicVehicleRole_safetyCar = 7, + ivim_ts_BasicVehicleRole_none_unknown = 8, + ivim_ts_BasicVehicleRole_truck = 9, + ivim_ts_BasicVehicleRole_motorcycle = 10, + ivim_ts_BasicVehicleRole_roadSideSource = 11, + ivim_ts_BasicVehicleRole_police = 12, + ivim_ts_BasicVehicleRole_fire = 13, + ivim_ts_BasicVehicleRole_ambulance = 14, + ivim_ts_BasicVehicleRole_dot = 15, + ivim_ts_BasicVehicleRole_transit = 16, + ivim_ts_BasicVehicleRole_slowMoving = 17, + ivim_ts_BasicVehicleRole_stopNgo = 18, + ivim_ts_BasicVehicleRole_cyclist = 19, + ivim_ts_BasicVehicleRole_pedestrian = 20, + ivim_ts_BasicVehicleRole_nonMotorized = 21, + ivim_ts_BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_ivim_ts_BasicVehicleRole; + +/* ivim_ts_BasicVehicleRole */ +typedef long ivim_ts_BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_BasicVehicleRole_specs_1; +asn_struct_free_f ivim_ts_BasicVehicleRole_free; +asn_struct_print_f ivim_ts_BasicVehicleRole_print; +asn_constr_check_f ivim_ts_BasicVehicleRole_constraint; +per_type_decoder_f ivim_ts_BasicVehicleRole_decode_uper; +per_type_encoder_f ivim_ts_BasicVehicleRole_encode_uper; +per_type_decoder_f ivim_ts_BasicVehicleRole_decode_aper; +per_type_encoder_f ivim_ts_BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_BasicVehicleRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BatteryStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BatteryStatus.h new file mode 100644 index 000000000..7327d518c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_BatteryStatus.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_BatteryStatus_H_ +#define _ivim_ts_BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_BatteryStatus { + ivim_ts_BatteryStatus_unknown = 0, + ivim_ts_BatteryStatus_critical = 1, + ivim_ts_BatteryStatus_low = 2, + ivim_ts_BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_ivim_ts_BatteryStatus; + +/* ivim_ts_BatteryStatus */ +typedef long ivim_ts_BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_BatteryStatus_specs_1; +asn_struct_free_f ivim_ts_BatteryStatus_free; +asn_struct_print_f ivim_ts_BatteryStatus_print; +asn_constr_check_f ivim_ts_BatteryStatus_constraint; +per_type_decoder_f ivim_ts_BatteryStatus_decode_uper; +per_type_encoder_f ivim_ts_BatteryStatus_encode_uper; +per_type_decoder_f ivim_ts_BatteryStatus_decode_aper; +per_type_encoder_f ivim_ts_BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_BatteryStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CO2EmissionValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CO2EmissionValue.h new file mode 100644 index 000000000..18a472e78 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CO2EmissionValue.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CO2EmissionValue_H_ +#define _ivim_ts_CO2EmissionValue_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CO2EmissionValue */ +typedef ivim_ts_Int2_t ivim_ts_CO2EmissionValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CO2EmissionValue; +asn_struct_free_f ivim_ts_CO2EmissionValue_free; +asn_struct_print_f ivim_ts_CO2EmissionValue_print; +asn_constr_check_f ivim_ts_CO2EmissionValue_constraint; +per_type_decoder_f ivim_ts_CO2EmissionValue_decode_uper; +per_type_encoder_f ivim_ts_CO2EmissionValue_encode_uper; +per_type_decoder_f ivim_ts_CO2EmissionValue_decode_aper; +per_type_encoder_f ivim_ts_CO2EmissionValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CO2EmissionValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS1.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS1.h new file mode 100644 index 000000000..e5520b8b7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS1.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CS1_H_ +#define _ivim_ts_CS1_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IssuerIdentifier.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CS1 */ +typedef struct ivim_ts_CS1 { + ivim_ts_CountryCode_t countryCode; + ivim_ts_IssuerIdentifier_t issuerIdentifier; + ivim_ts_ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CS1_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS2.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS2.h new file mode 100644 index 000000000..90d6acea5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CS2_H_ +#define _ivim_ts_CS2_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ManufacturerIdentifier.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CS2 */ +typedef struct ivim_ts_CS2 { + ivim_ts_ManufacturerIdentifier_t manufacturerIdentifier; + ivim_ts_ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CS2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS3.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS3.h new file mode 100644 index 000000000..2b108b70b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS3.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CS3_H_ +#define _ivim_ts_CS3_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_StartTime.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_StopTime.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_GeoGraphicalLimit.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CS3 */ +typedef struct ivim_ts_CS3 { + ivim_ts_StartTime_t startTime; + ivim_ts_StopTime_t stopTime; + ivim_ts_GeoGraphicalLimit_t geographLimit; + ivim_ts_ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CS3_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS4.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS4.h new file mode 100644 index 000000000..0294c3420 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS4.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CS4_H_ +#define _ivim_ts_CS4_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AlphabetIndicator.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CS4 */ +typedef struct ivim_ts_CS4 { + ivim_ts_CountryCode_t countryCode; + ivim_ts_AlphabetIndicator_t alphabetIndicator; + ivim_ts_LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CS4_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS5.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS5.h new file mode 100644 index 000000000..4b0757d64 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS5.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CS5_H_ +#define _ivim_ts_CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CS5 */ +typedef struct ivim_ts_CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CS5; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CS5_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_CS5_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CS5_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS7.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS7.h new file mode 100644 index 000000000..90775d724 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS7.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CS7_H_ +#define _ivim_ts_CS7_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CS7 */ +typedef ivim_ts_FreightContainerData_t ivim_ts_CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CS7; +asn_struct_free_f ivim_ts_CS7_free; +asn_struct_print_f ivim_ts_CS7_print; +asn_constr_check_f ivim_ts_CS7_constraint; +per_type_decoder_f ivim_ts_CS7_decode_uper; +per_type_encoder_f ivim_ts_CS7_encode_uper; +per_type_decoder_f ivim_ts_CS7_decode_aper; +per_type_encoder_f ivim_ts_CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CS7_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS8.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS8.h new file mode 100644 index 000000000..26ee34d3d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CS8.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CS8_H_ +#define _ivim_ts_CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CS8 */ +typedef struct ivim_ts_CS8 { + BIT_STRING_t fill; + ivim_ts_CountryCode_t countryCode; + ivim_ts_TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CS8_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CauseCode.h new file mode 100644 index 000000000..75c5845de --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CauseCode_H_ +#define _ivim_ts_CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_CauseCodeType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CauseCode */ +typedef struct ivim_ts_CauseCode { + ivim_ts_CauseCodeType_t causeCode; + ivim_ts_SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CauseCodeType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CauseCodeType.h new file mode 100644 index 000000000..9f8ecec14 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CauseCodeType.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CauseCodeType_H_ +#define _ivim_ts_CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_CauseCodeType { + ivim_ts_CauseCodeType_reserved = 0, + ivim_ts_CauseCodeType_trafficCondition = 1, + ivim_ts_CauseCodeType_accident = 2, + ivim_ts_CauseCodeType_roadworks = 3, + ivim_ts_CauseCodeType_impassability = 5, + ivim_ts_CauseCodeType_adverseWeatherCondition_Adhesion = 6, + ivim_ts_CauseCodeType_aquaplannning = 7, + ivim_ts_CauseCodeType_hazardousLocation_SurfaceCondition = 9, + ivim_ts_CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + ivim_ts_CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + ivim_ts_CauseCodeType_humanPresenceOnTheRoad = 12, + ivim_ts_CauseCodeType_wrongWayDriving = 14, + ivim_ts_CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + ivim_ts_CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + ivim_ts_CauseCodeType_adverseWeatherCondition_Visibility = 18, + ivim_ts_CauseCodeType_adverseWeatherCondition_Precipitation = 19, + ivim_ts_CauseCodeType_slowVehicle = 26, + ivim_ts_CauseCodeType_dangerousEndOfQueue = 27, + ivim_ts_CauseCodeType_vehicleBreakdown = 91, + ivim_ts_CauseCodeType_postCrash = 92, + ivim_ts_CauseCodeType_humanProblem = 93, + ivim_ts_CauseCodeType_stationaryVehicle = 94, + ivim_ts_CauseCodeType_emergencyVehicleApproaching = 95, + ivim_ts_CauseCodeType_hazardousLocation_DangerousCurve = 96, + ivim_ts_CauseCodeType_collisionRisk = 97, + ivim_ts_CauseCodeType_signalViolation = 98, + ivim_ts_CauseCodeType_dangerousSituation = 99 +} e_ivim_ts_CauseCodeType; + +/* ivim_ts_CauseCodeType */ +typedef long ivim_ts_CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CauseCodeType; +asn_struct_free_f ivim_ts_CauseCodeType_free; +asn_struct_print_f ivim_ts_CauseCodeType_print; +asn_constr_check_f ivim_ts_CauseCodeType_constraint; +per_type_decoder_f ivim_ts_CauseCodeType_decode_uper; +per_type_encoder_f ivim_ts_CauseCodeType_encode_uper; +per_type_decoder_f ivim_ts_CauseCodeType_decode_aper; +per_type_encoder_f ivim_ts_CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CauseCodeType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZone.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZone.h new file mode 100644 index 000000000..29c660172 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZone.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CenDsrcTollingZone_H_ +#define _ivim_ts_CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CenDsrcTollingZone */ +typedef struct ivim_ts_CenDsrcTollingZone { + ivim_ts_Latitude_t protectedZoneLatitude; + ivim_ts_Longitude_t protectedZoneLongitude; + ivim_ts_CenDsrcTollingZoneID_t *cenDsrcTollingZoneID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CenDsrcTollingZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZoneID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZoneID.h new file mode 100644 index 000000000..6fc86e81d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZoneID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CenDsrcTollingZoneID_H_ +#define _ivim_ts_CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CenDsrcTollingZoneID */ +typedef ivim_ts_ProtectedZoneID_t ivim_ts_CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CenDsrcTollingZoneID; +asn_struct_free_f ivim_ts_CenDsrcTollingZoneID_free; +asn_struct_print_f ivim_ts_CenDsrcTollingZoneID_print; +asn_constr_check_f ivim_ts_CenDsrcTollingZoneID_constraint; +per_type_decoder_f ivim_ts_CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f ivim_ts_CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f ivim_ts_CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f ivim_ts_CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CenDsrcTollingZoneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelId.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelId.h new file mode 100644 index 000000000..610cc9c27 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelId.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ChannelId_H_ +#define _ivim_ts_ChannelId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ChannelId { + ivim_ts_ChannelId_obu = 0, + ivim_ts_ChannelId_sam1 = 1, + ivim_ts_ChannelId_sam2 = 2, + ivim_ts_ChannelId_icc = 3, + ivim_ts_ChannelId_display = 4, + ivim_ts_ChannelId_buzzer = 5, + ivim_ts_ChannelId_printer = 6, + ivim_ts_ChannelId_serialInterface = 7, + ivim_ts_ChannelId_parallelInterface = 8, + ivim_ts_ChannelId_gPS = 9, + ivim_ts_ChannelId_tachograph = 10, + ivim_ts_ChannelId_privateUse1 = 11, + ivim_ts_ChannelId_privateUse2 = 12, + ivim_ts_ChannelId_privateUse3 = 13, + ivim_ts_ChannelId_privateUse4 = 14, + ivim_ts_ChannelId_privateUse5 = 15, + ivim_ts_ChannelId_bluetooth = 16 +} e_ivim_ts_ChannelId; + +/* ivim_ts_ChannelId */ +typedef long ivim_ts_ChannelId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ChannelId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ChannelId; +asn_struct_free_f ivim_ts_ChannelId_free; +asn_struct_print_f ivim_ts_ChannelId_print; +asn_constr_check_f ivim_ts_ChannelId_constraint; +per_type_decoder_f ivim_ts_ChannelId_decode_uper; +per_type_encoder_f ivim_ts_ChannelId_encode_uper; +per_type_decoder_f ivim_ts_ChannelId_decode_aper; +per_type_encoder_f ivim_ts_ChannelId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ChannelId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelRq.h new file mode 100644 index 000000000..346e14ef8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelRq.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ChannelRq_H_ +#define _ivim_ts_ChannelRq_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ChannelId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ChannelRq */ +typedef struct ivim_ts_ChannelRq { + ivim_ts_ChannelId_t channelId; + OCTET_STRING_t apdu; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ChannelRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ChannelRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ChannelRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelRs.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelRs.h new file mode 100644 index 000000000..873279b15 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ChannelRs.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ChannelRs_H_ +#define _ivim_ts_ChannelRs_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ChannelId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ChannelRs */ +typedef struct ivim_ts_ChannelRs { + ivim_ts_ChannelId_t channelId; + OCTET_STRING_t apdu; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ChannelRs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ChannelRs; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ChannelRs_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ClosedLanes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ClosedLanes.h new file mode 100644 index 000000000..2cdd0fe82 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ClosedLanes.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ClosedLanes_H_ +#define _ivim_ts_ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_HardShoulderStatus.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ClosedLanes */ +typedef struct ivim_ts_ClosedLanes { + ivim_ts_HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + ivim_ts_HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + ivim_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; +} ivim_ts_ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ClosedLanes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Code-Units.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Code-Units.h new file mode 100644 index 000000000..5f9dc3c39 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Code-Units.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Code_Units_H_ +#define _ivim_ts_Code_Units_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Code_Units { + ivim_ts_Code_Units_kmperh = 0, + ivim_ts_Code_Units_milesperh = 1, + ivim_ts_Code_Units_kilometre = 2, + ivim_ts_Code_Units_metre = 3, + ivim_ts_Code_Units_decimetre = 4, + ivim_ts_Code_Units_centimetre = 5, + ivim_ts_Code_Units_mile = 6, + ivim_ts_Code_Units_yard = 7, + ivim_ts_Code_Units_foot = 8, + ivim_ts_Code_Units_minutesOfTime = 9, + ivim_ts_Code_Units_tonnes = 10, + ivim_ts_Code_Units_hundredkg = 11, + ivim_ts_Code_Units_pound = 12, + ivim_ts_Code_Units_rateOfIncline = 13, + ivim_ts_Code_Units_durationinminutes = 14 +} e_ivim_ts_Code_Units; + +/* ivim_ts_Code-Units */ +typedef long ivim_ts_Code_Units_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Code_Units_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Code_Units; +asn_struct_free_f ivim_ts_Code_Units_free; +asn_struct_print_f ivim_ts_Code_Units_print; +asn_constr_check_f ivim_ts_Code_Units_constraint; +per_type_decoder_f ivim_ts_Code_Units_decode_uper; +per_type_encoder_f ivim_ts_Code_Units_encode_uper; +per_type_decoder_f ivim_ts_Code_Units_decode_aper; +per_type_encoder_f ivim_ts_Code_Units_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Code_Units_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CollisionRiskSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CollisionRiskSubCauseCode.h new file mode 100644 index 000000000..4873566cd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CollisionRiskSubCauseCode.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CollisionRiskSubCauseCode_H_ +#define _ivim_ts_CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_CollisionRiskSubCauseCode { + ivim_ts_CollisionRiskSubCauseCode_unavailable = 0, + ivim_ts_CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + ivim_ts_CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + ivim_ts_CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + ivim_ts_CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_ivim_ts_CollisionRiskSubCauseCode; + +/* ivim_ts_CollisionRiskSubCauseCode */ +typedef long ivim_ts_CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CollisionRiskSubCauseCode; +asn_struct_free_f ivim_ts_CollisionRiskSubCauseCode_free; +asn_struct_print_f ivim_ts_CollisionRiskSubCauseCode_print; +asn_constr_check_f ivim_ts_CollisionRiskSubCauseCode_constraint; +per_type_decoder_f ivim_ts_CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CollisionRiskSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComparisonOperator.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComparisonOperator.h new file mode 100644 index 000000000..b3ba23e5f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComparisonOperator.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ComparisonOperator_H_ +#define _ivim_ts_ComparisonOperator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ComparisonOperator { + ivim_ts_ComparisonOperator_greaterThan = 0, + ivim_ts_ComparisonOperator_greaterThanOrEqualTo = 1, + ivim_ts_ComparisonOperator_lessThan = 2, + ivim_ts_ComparisonOperator_lessThanOrEqualTo = 3 +} e_ivim_ts_ComparisonOperator; + +/* ivim_ts_ComparisonOperator */ +typedef long ivim_ts_ComparisonOperator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ComparisonOperator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ComparisonOperator; +asn_struct_free_f ivim_ts_ComparisonOperator_free; +asn_struct_print_f ivim_ts_ComparisonOperator_print; +asn_constr_check_f ivim_ts_ComparisonOperator_constraint; +per_type_decoder_f ivim_ts_ComparisonOperator_decode_uper; +per_type_encoder_f ivim_ts_ComparisonOperator_encode_uper; +per_type_decoder_f ivim_ts_ComparisonOperator_decode_aper; +per_type_encoder_f ivim_ts_ComparisonOperator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ComparisonOperator_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CompleteVehicleCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CompleteVehicleCharacteristics.h new file mode 100644 index 000000000..1985a01e7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CompleteVehicleCharacteristics.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CompleteVehicleCharacteristics_H_ +#define _ivim_ts_CompleteVehicleCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_TractorCharacteristics; +struct ivim_ts_TrailerCharacteristicsList; +struct ivim_ts_TrainCharacteristics; + +/* ivim_ts_CompleteVehicleCharacteristics */ +typedef struct ivim_ts_CompleteVehicleCharacteristics { + struct ivim_ts_TractorCharacteristics *tractor; /* OPTIONAL */ + struct ivim_ts_TrailerCharacteristicsList *trailer; /* OPTIONAL */ + struct ivim_ts_TrainCharacteristics *train; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CompleteVehicleCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CompleteVehicleCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CompleteVehicleCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_CompleteVehicleCharacteristics_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TractorCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TrainCharacteristics.h" + +#endif /* _ivim_ts_CompleteVehicleCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComputedLane.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComputedLane.h new file mode 100644 index 000000000..1813fe6db --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComputedLane.h @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ComputedLane_H_ +#define _ivim_ts_ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Angle.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Scale-B12.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetSm.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ComputedLane__offsetXaxis_PR { + ivim_ts_ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + ivim_ts_ComputedLane__offsetXaxis_PR_small, + ivim_ts_ComputedLane__offsetXaxis_PR_large +} ivim_ts_ComputedLane__offsetXaxis_PR; +typedef enum ivim_ts_ComputedLane__offsetYaxis_PR { + ivim_ts_ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + ivim_ts_ComputedLane__offsetYaxis_PR_small, + ivim_ts_ComputedLane__offsetYaxis_PR_large +} ivim_ts_ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct ivim_ts_Reg_ComputedLane; + +/* ivim_ts_ComputedLane */ +typedef struct ivim_ts_ComputedLane { + ivim_ts_LaneID_t referenceLaneId; + struct ivim_ts_ComputedLane__offsetXaxis { + ivim_ts_ComputedLane__offsetXaxis_PR present; + union ivim_ts_ComputedLane__ivim_ts_offsetXaxis_u { + ivim_ts_DrivenLineOffsetSm_t small; + ivim_ts_DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct ivim_ts_ComputedLane__offsetYaxis { + ivim_ts_ComputedLane__offsetYaxis_PR present; + union ivim_ts_ComputedLane__ivim_ts_offsetYaxis_u { + ivim_ts_DrivenLineOffsetSm_t small; + ivim_ts_DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + ivim_ts_Angle_t *rotateXY; /* OPTIONAL */ + ivim_ts_Scale_B12_t *scaleXaxis; /* OPTIONAL */ + ivim_ts_Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct ivim_ts_ComputedLane__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_ComputedLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_ComputedLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComputedSegment.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComputedSegment.h new file mode 100644 index 000000000..3b4b3c073 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ComputedSegment.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ComputedSegment_H_ +#define _ivim_ts_ComputedSegment_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Zid.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePosition.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IviLaneWidth.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DeltaReferencePosition; + +/* ivim_ts_ComputedSegment */ +typedef struct ivim_ts_ComputedSegment { + ivim_ts_Zid_t zoneId; + ivim_ts_LanePosition_t laneNumber; + ivim_ts_IviLaneWidth_t laneWidth; + long *offsetDistance; /* OPTIONAL */ + struct ivim_ts_DeltaReferencePosition *offsetPosition; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ComputedSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ComputedSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ComputedSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ComputedSegment_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePosition.h" + +#endif /* _ivim_ts_ComputedSegment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Condition.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Condition.h new file mode 100644 index 000000000..fc4e6e7c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Condition.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Condition_H_ +#define _ivim_ts_Condition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Condition { + ivim_ts_Condition_dry = 0, + ivim_ts_Condition_moist = 1, + ivim_ts_Condition_wet = 2, + ivim_ts_Condition_standingWater = 3, + ivim_ts_Condition_frost = 4, + ivim_ts_Condition_ice = 5, + ivim_ts_Condition_snow = 6, + ivim_ts_Condition_slush = 7, + ivim_ts_Condition_unvailable = 8 +} e_ivim_ts_Condition; + +/* ivim_ts_Condition */ +typedef long ivim_ts_Condition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Condition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Condition; +asn_struct_free_f ivim_ts_Condition_free; +asn_struct_print_f ivim_ts_Condition_print; +asn_constr_check_f ivim_ts_Condition_constraint; +per_type_decoder_f ivim_ts_Condition_decode_uper; +per_type_encoder_f ivim_ts_Condition_encode_uper; +per_type_decoder_f ivim_ts_Condition_decode_aper; +per_type_encoder_f ivim_ts_Condition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Condition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectedDenms.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectedDenms.h new file mode 100644 index 000000000..cb7e512af --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectedDenms.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ConnectedDenms_H_ +#define _ivim_ts_ConnectedDenms_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ActionID; + +/* ivim_ts_ConnectedDenms */ +typedef struct ivim_ts_ConnectedDenms { + A_SEQUENCE_OF(struct ivim_ts_ActionID) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ConnectedDenms_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectedDenms; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ConnectedDenms_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ConnectedDenms_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ConnectedDenms_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ActionID.h" + +#endif /* _ivim_ts_ConnectedDenms_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectingLane.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectingLane.h new file mode 100644 index 000000000..e5479feab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectingLane.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ConnectingLane_H_ +#define _ivim_ts_ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ConnectingLane */ +typedef struct ivim_ts_ConnectingLane { + ivim_ts_LaneID_t lane; + ivim_ts_AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ConnectingLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Connection.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Connection.h new file mode 100644 index 000000000..05fd52bc0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Connection.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Connection_H_ +#define _ivim_ts_Connection_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectingLane.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalGroupID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_IntersectionReferenceID; + +/* ivim_ts_Connection */ +typedef struct ivim_ts_Connection { + ivim_ts_ConnectingLane_t connectingLane; + struct ivim_ts_IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + ivim_ts_SignalGroupID_t *signalGroup; /* OPTIONAL */ + ivim_ts_RestrictionClassID_t *userClass; /* OPTIONAL */ + ivim_ts_LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h" + +#endif /* _ivim_ts_Connection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 000000000..e52fb7442 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist-addGrpC.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ConnectionManeuverAssist_addGrpC_H_ +#define _ivim_ts_ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ItsStationPositionList; + +/* ivim_ts_ConnectionManeuverAssist-addGrpC */ +typedef struct ivim_ts_ConnectionManeuverAssist_addGrpC { + struct ivim_ts_ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ItsStationPositionList.h" + +#endif /* _ivim_ts_ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist.h new file mode 100644 index 000000000..49d2254cf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ConnectionManeuverAssist_H_ +#define _ivim_ts_ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneLength.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_WaitOnStopline.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_ConnectionManeuverAssist; + +/* ivim_ts_ConnectionManeuverAssist */ +typedef struct ivim_ts_ConnectionManeuverAssist { + ivim_ts_LaneConnectionID_t connectionID; + ivim_ts_ZoneLength_t *queueLength; /* OPTIONAL */ + ivim_ts_ZoneLength_t *availableStorageLength; /* OPTIONAL */ + ivim_ts_WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + ivim_ts_PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct ivim_ts_ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_ConnectionManeuverAssist_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionTrajectory-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionTrajectory-addGrpC.h new file mode 100644 index 000000000..75eae3855 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectionTrajectory-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ConnectionTrajectory_addGrpC_H_ +#define _ivim_ts_ConnectionTrajectory_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeSetXY.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ConnectionTrajectory-addGrpC */ +typedef struct ivim_ts_ConnectionTrajectory_addGrpC { + ivim_ts_NodeSetXY_t nodes; + ivim_ts_LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectsToList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectsToList.h new file mode 100644 index 000000000..6de3e69d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConnectsToList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ConnectsToList_H_ +#define _ivim_ts_ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Connection; + +/* ivim_ts_ConnectsToList */ +typedef struct ivim_ts_ConnectsToList { + A_SEQUENCE_OF(struct ivim_ts_Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Connection.h" + +#endif /* _ivim_ts_ConnectsToList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines1.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines1.h new file mode 100644 index 000000000..88d3988be --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines1.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ConstraintTextLines1_H_ +#define _ivim_ts_ConstraintTextLines1_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Text; + +/* ivim_ts_ConstraintTextLines1 */ +typedef struct ivim_ts_ConstraintTextLines1 { + A_SEQUENCE_OF(struct ivim_ts_Text) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ConstraintTextLines1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConstraintTextLines1; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ConstraintTextLines1_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ConstraintTextLines1_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ConstraintTextLines1_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Text.h" + +#endif /* _ivim_ts_ConstraintTextLines1_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines2.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines2.h new file mode 100644 index 000000000..62092a3c9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines2.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ConstraintTextLines2_H_ +#define _ivim_ts_ConstraintTextLines2_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Text; + +/* ivim_ts_ConstraintTextLines2 */ +typedef struct ivim_ts_ConstraintTextLines2 { + A_SEQUENCE_OF(struct ivim_ts_Text) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ConstraintTextLines2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConstraintTextLines2; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ConstraintTextLines2_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ConstraintTextLines2_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ConstraintTextLines2_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Text.h" + +#endif /* _ivim_ts_ConstraintTextLines2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractAuthenticator.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractAuthenticator.h new file mode 100644 index 000000000..6109609ad --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractAuthenticator.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ContractAuthenticator_H_ +#define _ivim_ts_ContractAuthenticator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ContractAuthenticator */ +typedef OCTET_STRING_t ivim_ts_ContractAuthenticator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ContractAuthenticator; +asn_struct_free_f ivim_ts_ContractAuthenticator_free; +asn_struct_print_f ivim_ts_ContractAuthenticator_print; +asn_constr_check_f ivim_ts_ContractAuthenticator_constraint; +per_type_decoder_f ivim_ts_ContractAuthenticator_decode_uper; +per_type_encoder_f ivim_ts_ContractAuthenticator_encode_uper; +per_type_decoder_f ivim_ts_ContractAuthenticator_decode_aper; +per_type_encoder_f ivim_ts_ContractAuthenticator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ContractAuthenticator_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractSerialNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractSerialNumber.h new file mode 100644 index 000000000..4db66bec4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractSerialNumber.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ContractSerialNumber_H_ +#define _ivim_ts_ContractSerialNumber_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int4.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ContractSerialNumber */ +typedef ivim_ts_Int4_t ivim_ts_ContractSerialNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ContractSerialNumber; +asn_struct_free_f ivim_ts_ContractSerialNumber_free; +asn_struct_print_f ivim_ts_ContractSerialNumber_print; +asn_constr_check_f ivim_ts_ContractSerialNumber_constraint; +per_type_decoder_f ivim_ts_ContractSerialNumber_decode_uper; +per_type_encoder_f ivim_ts_ContractSerialNumber_encode_uper; +per_type_decoder_f ivim_ts_ContractSerialNumber_decode_aper; +per_type_encoder_f ivim_ts_ContractSerialNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ContractSerialNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractValidity.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractValidity.h new file mode 100644 index 000000000..d593068bc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractValidity.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ContractValidity_H_ +#define _ivim_ts_ContractValidity_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_DateCompact.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ContractValidity */ +typedef struct ivim_ts_ContractValidity { + OCTET_STRING_t contractRestrictions; + ivim_ts_DateCompact_t contractExpiryDate; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ContractValidity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ContractValidity; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ContractValidity_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractVehicle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractVehicle.h new file mode 100644 index 000000000..ae9d302ab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ContractVehicle.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ContractVehicle_H_ +#define _ivim_ts_ContractVehicle_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LPN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ContractVehicle */ +typedef ivim_ts_LPN_t ivim_ts_ContractVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ContractVehicle; +asn_struct_free_f ivim_ts_ContractVehicle_free; +asn_struct_print_f ivim_ts_ContractVehicle_print; +asn_constr_check_f ivim_ts_ContractVehicle_constraint; +per_type_decoder_f ivim_ts_ContractVehicle_decode_uper; +per_type_encoder_f ivim_ts_ContractVehicle_encode_uper; +per_type_decoder_f ivim_ts_ContractVehicle_decode_aper; +per_type_encoder_f ivim_ts_ContractVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ContractVehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CopValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CopValue.h new file mode 100644 index 000000000..71994e247 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CopValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CopValue_H_ +#define _ivim_ts_CopValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_CopValue { + ivim_ts_CopValue_noEntry = 0, + ivim_ts_CopValue_co2class1 = 1, + ivim_ts_CopValue_co2class2 = 2, + ivim_ts_CopValue_co2class3 = 3, + ivim_ts_CopValue_co2class4 = 4, + ivim_ts_CopValue_co2class5 = 5, + ivim_ts_CopValue_co2class6 = 6, + ivim_ts_CopValue_co2class7 = 7, + ivim_ts_CopValue_reservedforUse = 8 +} e_ivim_ts_CopValue; + +/* ivim_ts_CopValue */ +typedef long ivim_ts_CopValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_CopValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CopValue; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_CopValue_specs_1; +asn_struct_free_f ivim_ts_CopValue_free; +asn_struct_print_f ivim_ts_CopValue_print; +asn_constr_check_f ivim_ts_CopValue_constraint; +per_type_decoder_f ivim_ts_CopValue_decode_uper; +per_type_encoder_f ivim_ts_CopValue_encode_uper; +per_type_decoder_f ivim_ts_CopValue_decode_aper; +per_type_encoder_f ivim_ts_CopValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CopValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CopyRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CopyRq.h new file mode 100644 index 000000000..7467d2ff8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CopyRq.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CopyRq_H_ +#define _ivim_ts_CopyRq_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_AttributeIdList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CopyRq */ +typedef struct ivim_ts_CopyRq { + long destinationEID; + ivim_ts_AttributeIdList_t attributeIdList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CopyRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CopyRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CopyRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h new file mode 100644 index 000000000..ca7c58add --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CountryCode_H_ +#define _ivim_ts_CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CountryCode */ +typedef BIT_STRING_t ivim_ts_CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CountryCode; +asn_struct_free_f ivim_ts_CountryCode_free; +asn_struct_print_f ivim_ts_CountryCode_print; +asn_constr_check_f ivim_ts_CountryCode_constraint; +per_type_decoder_f ivim_ts_CountryCode_decode_uper; +per_type_encoder_f ivim_ts_CountryCode_encode_uper; +per_type_decoder_f ivim_ts_CountryCode_decode_aper; +per_type_encoder_f ivim_ts_CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CountryCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CreditRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CreditRq.h new file mode 100644 index 000000000..2eb93f7db --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CreditRq.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CreditRq_H_ +#define _ivim_ts_CreditRq_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentFee.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CreditRq */ +typedef struct ivim_ts_CreditRq { + ivim_ts_PaymentFee_t refund; + OCTET_STRING_t nonce; + long key; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CreditRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CreditRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CreditRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CreditRs.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CreditRs.h new file mode 100644 index 000000000..41a96a8f2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CreditRs.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CreditRs_H_ +#define _ivim_ts_CreditRs_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ResultFin.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_CreditRs */ +typedef struct ivim_ts_CreditRs { + ivim_ts_ResultFin_t creditResult; + OCTET_STRING_t creditAuthenticator; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_CreditRs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CreditRs; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CreditRs_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Curvature.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Curvature.h new file mode 100644 index 000000000..0da297c79 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Curvature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Curvature_H_ +#define _ivim_ts_Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_CurvatureValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Curvature */ +typedef struct ivim_ts_Curvature { + ivim_ts_CurvatureValue_t curvatureValue; + ivim_ts_CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Curvature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureCalculationMode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureCalculationMode.h new file mode 100644 index 000000000..f9fc9af86 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureCalculationMode.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CurvatureCalculationMode_H_ +#define _ivim_ts_CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_CurvatureCalculationMode { + ivim_ts_CurvatureCalculationMode_yawRateUsed = 0, + ivim_ts_CurvatureCalculationMode_yawRateNotUsed = 1, + ivim_ts_CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_ivim_ts_CurvatureCalculationMode; + +/* ivim_ts_CurvatureCalculationMode */ +typedef long ivim_ts_CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CurvatureCalculationMode; +asn_struct_free_f ivim_ts_CurvatureCalculationMode_free; +asn_struct_print_f ivim_ts_CurvatureCalculationMode_print; +asn_constr_check_f ivim_ts_CurvatureCalculationMode_constraint; +per_type_decoder_f ivim_ts_CurvatureCalculationMode_decode_uper; +per_type_encoder_f ivim_ts_CurvatureCalculationMode_encode_uper; +per_type_decoder_f ivim_ts_CurvatureCalculationMode_decode_aper; +per_type_encoder_f ivim_ts_CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CurvatureCalculationMode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureConfidence.h new file mode 100644 index 000000000..6197bc912 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CurvatureConfidence_H_ +#define _ivim_ts_CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_CurvatureConfidence { + ivim_ts_CurvatureConfidence_onePerMeter_0_00002 = 0, + ivim_ts_CurvatureConfidence_onePerMeter_0_0001 = 1, + ivim_ts_CurvatureConfidence_onePerMeter_0_0005 = 2, + ivim_ts_CurvatureConfidence_onePerMeter_0_002 = 3, + ivim_ts_CurvatureConfidence_onePerMeter_0_01 = 4, + ivim_ts_CurvatureConfidence_onePerMeter_0_1 = 5, + ivim_ts_CurvatureConfidence_outOfRange = 6, + ivim_ts_CurvatureConfidence_unavailable = 7 +} e_ivim_ts_CurvatureConfidence; + +/* ivim_ts_CurvatureConfidence */ +typedef long ivim_ts_CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_CurvatureConfidence_specs_1; +asn_struct_free_f ivim_ts_CurvatureConfidence_free; +asn_struct_print_f ivim_ts_CurvatureConfidence_print; +asn_constr_check_f ivim_ts_CurvatureConfidence_constraint; +per_type_decoder_f ivim_ts_CurvatureConfidence_decode_uper; +per_type_encoder_f ivim_ts_CurvatureConfidence_encode_uper; +per_type_decoder_f ivim_ts_CurvatureConfidence_decode_aper; +per_type_encoder_f ivim_ts_CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CurvatureConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureValue.h new file mode 100644 index 000000000..3c17a3239 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_CurvatureValue.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_CurvatureValue_H_ +#define _ivim_ts_CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_CurvatureValue { + ivim_ts_CurvatureValue_straight = 0, + ivim_ts_CurvatureValue_unavailable = 1023 +} e_ivim_ts_CurvatureValue; + +/* ivim_ts_CurvatureValue */ +typedef long ivim_ts_CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_CurvatureValue; +asn_struct_free_f ivim_ts_CurvatureValue_free; +asn_struct_print_f ivim_ts_CurvatureValue_print; +asn_constr_check_f ivim_ts_CurvatureValue_constraint; +per_type_decoder_f ivim_ts_CurvatureValue_decode_uper; +per_type_encoder_f ivim_ts_CurvatureValue_encode_uper; +per_type_decoder_f ivim_ts_CurvatureValue_decode_aper; +per_type_encoder_f ivim_ts_CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_CurvatureValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDD-IO-LIST.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDD-IO-LIST.h new file mode 100644 index 000000000..293b35201 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDD-IO-LIST.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DDD_IO_LIST_H_ +#define _ivim_ts_DDD_IO_LIST_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DDD_IO; + +/* ivim_ts_DDD-IO-LIST */ +typedef struct ivim_ts_DDD_IO_LIST { + A_SEQUENCE_OF(struct ivim_ts_DDD_IO) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DDD_IO_LIST_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DDD_IO_LIST; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_DDD_IO_LIST_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DDD_IO_LIST_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_DDD_IO_LIST_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DDD-IO.h" + +#endif /* _ivim_ts_DDD_IO_LIST_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDD-IO.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDD-IO.h new file mode 100644 index 000000000..836c4376a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDD-IO.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DDD_IO_H_ +#define _ivim_ts_DDD_IO_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DestinationPlaces; +struct ivim_ts_DestinationRoads; +struct ivim_ts_DistanceOrDuration; + +/* ivim_ts_DDD-IO */ +typedef struct ivim_ts_DDD_IO { + long arrowDirection; + struct ivim_ts_DestinationPlaces *destPlace; /* OPTIONAL */ + struct ivim_ts_DestinationRoads *destRoad; /* OPTIONAL */ + long *roadNumberIdentifier; /* OPTIONAL */ + long *streetName; /* OPTIONAL */ + UTF8String_t *streetNameText; /* OPTIONAL */ + struct ivim_ts_DistanceOrDuration *distanceToDivergingPoint; /* OPTIONAL */ + struct ivim_ts_DistanceOrDuration *distanceToDestinationPlace; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DDD_IO_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DDD_IO; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DDD_IO_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DDD_IO_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationPlaces.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationRoads.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DistanceOrDuration.h" + +#endif /* _ivim_ts_DDD_IO_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDateTime.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDateTime.h new file mode 100644 index 000000000..05da319e5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDateTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DDateTime_H_ +#define _ivim_ts_DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DMonth.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DDay.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DHour.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DMinute.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DSecond.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DDateTime */ +typedef struct ivim_ts_DDateTime { + ivim_ts_DYear_t *year; /* OPTIONAL */ + ivim_ts_DMonth_t *month; /* OPTIONAL */ + ivim_ts_DDay_t *day; /* OPTIONAL */ + ivim_ts_DHour_t *hour; /* OPTIONAL */ + ivim_ts_DMinute_t *minute; /* OPTIONAL */ + ivim_ts_DSecond_t *second; /* OPTIONAL */ + ivim_ts_DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DDateTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDay.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDay.h new file mode 100644 index 000000000..68a29e369 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DDay.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DDay_H_ +#define _ivim_ts_DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DDay */ +typedef long ivim_ts_DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DDay; +asn_struct_free_f ivim_ts_DDay_free; +asn_struct_print_f ivim_ts_DDay_print; +asn_constr_check_f ivim_ts_DDay_constraint; +per_type_decoder_f ivim_ts_DDay_decode_uper; +per_type_encoder_f ivim_ts_DDay_encode_uper; +per_type_decoder_f ivim_ts_DDay_decode_aper; +per_type_encoder_f ivim_ts_DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DDay_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DHour.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DHour.h new file mode 100644 index 000000000..f0dd9609b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DHour.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DHour_H_ +#define _ivim_ts_DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DHour */ +typedef long ivim_ts_DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DHour; +asn_struct_free_f ivim_ts_DHour_free; +asn_struct_print_f ivim_ts_DHour_print; +asn_constr_check_f ivim_ts_DHour_constraint; +per_type_decoder_f ivim_ts_DHour_decode_uper; +per_type_encoder_f ivim_ts_DHour_encode_uper; +per_type_decoder_f ivim_ts_DHour_decode_aper; +per_type_encoder_f ivim_ts_DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DHour_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DMinute.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DMinute.h new file mode 100644 index 000000000..d29650fc5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DMinute.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DMinute_H_ +#define _ivim_ts_DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DMinute */ +typedef long ivim_ts_DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DMinute; +asn_struct_free_f ivim_ts_DMinute_free; +asn_struct_print_f ivim_ts_DMinute_print; +asn_constr_check_f ivim_ts_DMinute_constraint; +per_type_decoder_f ivim_ts_DMinute_decode_uper; +per_type_encoder_f ivim_ts_DMinute_encode_uper; +per_type_decoder_f ivim_ts_DMinute_decode_aper; +per_type_encoder_f ivim_ts_DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DMinute_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DMonth.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DMonth.h new file mode 100644 index 000000000..69f76d541 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DMonth.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DMonth_H_ +#define _ivim_ts_DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DMonth */ +typedef long ivim_ts_DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DMonth; +asn_struct_free_f ivim_ts_DMonth_free; +asn_struct_print_f ivim_ts_DMonth_print; +asn_constr_check_f ivim_ts_DMonth_constraint; +per_type_decoder_f ivim_ts_DMonth_decode_uper; +per_type_encoder_f ivim_ts_DMonth_encode_uper; +per_type_decoder_f ivim_ts_DMonth_decode_aper; +per_type_encoder_f ivim_ts_DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DMonth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DOffset.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DOffset.h new file mode 100644 index 000000000..da91cbe1b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DOffset.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DOffset_H_ +#define _ivim_ts_DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DOffset */ +typedef long ivim_ts_DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DOffset; +asn_struct_free_f ivim_ts_DOffset_free; +asn_struct_print_f ivim_ts_DOffset_print; +asn_constr_check_f ivim_ts_DOffset_constraint; +per_type_decoder_f ivim_ts_DOffset_decode_uper; +per_type_encoder_f ivim_ts_DOffset_encode_uper; +per_type_decoder_f ivim_ts_DOffset_decode_aper; +per_type_encoder_f ivim_ts_DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DOffset_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DSRCmsgID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DSRCmsgID.h new file mode 100644 index 000000000..120c0d4be --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DSRCmsgID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DSRCmsgID_H_ +#define _ivim_ts_DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DSRCmsgID */ +typedef long ivim_ts_DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DSRCmsgID; +asn_struct_free_f ivim_ts_DSRCmsgID_free; +asn_struct_print_f ivim_ts_DSRCmsgID_print; +asn_constr_check_f ivim_ts_DSRCmsgID_constraint; +per_type_decoder_f ivim_ts_DSRCmsgID_decode_uper; +per_type_encoder_f ivim_ts_DSRCmsgID_encode_uper; +per_type_decoder_f ivim_ts_DSRCmsgID_decode_aper; +per_type_encoder_f ivim_ts_DSRCmsgID_encode_aper; +#define ivim_ts_DSRCmsgID_mapData ((ivim_ts_DSRCmsgID_t)18) +#define ivim_ts_DSRCmsgID_rtcmCorrections ((ivim_ts_DSRCmsgID_t)28) +#define ivim_ts_DSRCmsgID_signalPhaseAndTimingMessage ((ivim_ts_DSRCmsgID_t)19) +#define ivim_ts_DSRCmsgID_signalRequestMessage ((ivim_ts_DSRCmsgID_t)29) +#define ivim_ts_DSRCmsgID_signalStatusMessage ((ivim_ts_DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DSRCmsgID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DSecond.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DSecond.h new file mode 100644 index 000000000..25323923e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DSecond.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DSecond_H_ +#define _ivim_ts_DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DSecond */ +typedef long ivim_ts_DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DSecond; +asn_struct_free_f ivim_ts_DSecond_free; +asn_struct_print_f ivim_ts_DSecond_print; +asn_constr_check_f ivim_ts_DSecond_constraint; +per_type_decoder_f ivim_ts_DSecond_decode_uper; +per_type_encoder_f ivim_ts_DSecond_encode_uper; +per_type_decoder_f ivim_ts_DSecond_decode_aper; +per_type_encoder_f ivim_ts_DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DSecond_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DYear.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DYear.h new file mode 100644 index 000000000..be02e1f26 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DYear.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DYear_H_ +#define _ivim_ts_DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DYear */ +typedef long ivim_ts_DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DYear; +asn_struct_free_f ivim_ts_DYear_free; +asn_struct_print_f ivim_ts_DYear_print; +asn_constr_check_f ivim_ts_DYear_constraint; +per_type_decoder_f ivim_ts_DYear_decode_uper; +per_type_encoder_f ivim_ts_DYear_encode_uper; +per_type_decoder_f ivim_ts_DYear_decode_aper; +per_type_encoder_f ivim_ts_DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DYear_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousEndOfQueueSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 000000000..a3938faad --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DangerousEndOfQueueSubCauseCode_H_ +#define _ivim_ts_DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DangerousEndOfQueueSubCauseCode { + ivim_ts_DangerousEndOfQueueSubCauseCode_unavailable = 0, + ivim_ts_DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + ivim_ts_DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + ivim_ts_DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + ivim_ts_DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_ivim_ts_DangerousEndOfQueueSubCauseCode; + +/* ivim_ts_DangerousEndOfQueueSubCauseCode */ +typedef long ivim_ts_DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f ivim_ts_DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f ivim_ts_DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f ivim_ts_DangerousEndOfQueueSubCauseCode_constraint; +per_type_decoder_f ivim_ts_DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousGoodsBasic.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousGoodsBasic.h new file mode 100644 index 000000000..ccc86b9c6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousGoodsBasic.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DangerousGoodsBasic_H_ +#define _ivim_ts_DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DangerousGoodsBasic { + ivim_ts_DangerousGoodsBasic_explosives1 = 0, + ivim_ts_DangerousGoodsBasic_explosives2 = 1, + ivim_ts_DangerousGoodsBasic_explosives3 = 2, + ivim_ts_DangerousGoodsBasic_explosives4 = 3, + ivim_ts_DangerousGoodsBasic_explosives5 = 4, + ivim_ts_DangerousGoodsBasic_explosives6 = 5, + ivim_ts_DangerousGoodsBasic_flammableGases = 6, + ivim_ts_DangerousGoodsBasic_nonFlammableGases = 7, + ivim_ts_DangerousGoodsBasic_toxicGases = 8, + ivim_ts_DangerousGoodsBasic_flammableLiquids = 9, + ivim_ts_DangerousGoodsBasic_flammableSolids = 10, + ivim_ts_DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + ivim_ts_DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + ivim_ts_DangerousGoodsBasic_oxidizingSubstances = 13, + ivim_ts_DangerousGoodsBasic_organicPeroxides = 14, + ivim_ts_DangerousGoodsBasic_toxicSubstances = 15, + ivim_ts_DangerousGoodsBasic_infectiousSubstances = 16, + ivim_ts_DangerousGoodsBasic_radioactiveMaterial = 17, + ivim_ts_DangerousGoodsBasic_corrosiveSubstances = 18, + ivim_ts_DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_ivim_ts_DangerousGoodsBasic; + +/* ivim_ts_DangerousGoodsBasic */ +typedef long ivim_ts_DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_DangerousGoodsBasic_specs_1; +asn_struct_free_f ivim_ts_DangerousGoodsBasic_free; +asn_struct_print_f ivim_ts_DangerousGoodsBasic_print; +asn_constr_check_f ivim_ts_DangerousGoodsBasic_constraint; +per_type_decoder_f ivim_ts_DangerousGoodsBasic_decode_uper; +per_type_encoder_f ivim_ts_DangerousGoodsBasic_encode_uper; +per_type_decoder_f ivim_ts_DangerousGoodsBasic_decode_aper; +per_type_encoder_f ivim_ts_DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DangerousGoodsBasic_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousGoodsExtended.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousGoodsExtended.h new file mode 100644 index 000000000..f41af6a8b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousGoodsExtended.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DangerousGoodsExtended_H_ +#define _ivim_ts_DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DangerousGoodsBasic.h" +#include +#include +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DangerousGoodsExtended */ +typedef struct ivim_ts_DangerousGoodsExtended { + ivim_ts_DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + ivim_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; +} ivim_ts_DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DangerousGoodsExtended_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousSituationSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousSituationSubCauseCode.h new file mode 100644 index 000000000..443ad64d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DangerousSituationSubCauseCode.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DangerousSituationSubCauseCode_H_ +#define _ivim_ts_DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DangerousSituationSubCauseCode { + ivim_ts_DangerousSituationSubCauseCode_unavailable = 0, + ivim_ts_DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + ivim_ts_DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + ivim_ts_DangerousSituationSubCauseCode_espEngaged = 3, + ivim_ts_DangerousSituationSubCauseCode_absEngaged = 4, + ivim_ts_DangerousSituationSubCauseCode_aebEngaged = 5, + ivim_ts_DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + ivim_ts_DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_ivim_ts_DangerousSituationSubCauseCode; + +/* ivim_ts_DangerousSituationSubCauseCode */ +typedef long ivim_ts_DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DangerousSituationSubCauseCode; +asn_struct_free_f ivim_ts_DangerousSituationSubCauseCode_free; +asn_struct_print_f ivim_ts_DangerousSituationSubCauseCode_print; +asn_constr_check_f ivim_ts_DangerousSituationSubCauseCode_constraint; +per_type_decoder_f ivim_ts_DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DangerousSituationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DataParameters.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DataParameters.h new file mode 100644 index 000000000..7ed200c8c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DataParameters.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DataParameters_H_ +#define _ivim_ts_DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DataParameters */ +typedef struct ivim_ts_DataParameters { + IA5String_t *processMethod; /* OPTIONAL */ + IA5String_t *processAgency; /* OPTIONAL */ + IA5String_t *lastCheckedDate; /* OPTIONAL */ + IA5String_t *geoidUsed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DataParameters_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DateAndTime.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DateAndTime.h new file mode 100644 index 000000000..7bcb01773 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DateAndTime.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DateAndTime_H_ +#define _ivim_ts_DateAndTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DateCompact.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DateAndTime */ +typedef struct ivim_ts_DateAndTime { + ivim_ts_DateCompact_t timeDate; + struct ivim_ts_DateAndTime__timeCompact { + long hours; + long mins; + long double_secs; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } timeCompact; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DateAndTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DateAndTime; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DateAndTime_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DateAndTime_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DateAndTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DateCompact.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DateCompact.h new file mode 100644 index 000000000..cc6d16766 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DateCompact.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DateCompact_H_ +#define _ivim_ts_DateCompact_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DateCompact */ +typedef struct ivim_ts_DateCompact { + long year; + long month; + long day; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DateCompact_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DateCompact; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DateCompact_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DateCompact_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DateCompact_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DayOfWeek.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DayOfWeek.h new file mode 100644 index 000000000..dd096741e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DayOfWeek.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DayOfWeek_H_ +#define _ivim_ts_DayOfWeek_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DayOfWeek { + ivim_ts_DayOfWeek_unused = 0, + ivim_ts_DayOfWeek_monday = 1, + ivim_ts_DayOfWeek_tuesday = 2, + ivim_ts_DayOfWeek_wednesday = 3, + ivim_ts_DayOfWeek_thursday = 4, + ivim_ts_DayOfWeek_friday = 5, + ivim_ts_DayOfWeek_saturday = 6, + ivim_ts_DayOfWeek_sunday = 7 +} e_ivim_ts_DayOfWeek; + +/* ivim_ts_DayOfWeek */ +typedef BIT_STRING_t ivim_ts_DayOfWeek_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DayOfWeek_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DayOfWeek; +asn_struct_free_f ivim_ts_DayOfWeek_free; +asn_struct_print_f ivim_ts_DayOfWeek_print; +asn_constr_check_f ivim_ts_DayOfWeek_constraint; +per_type_decoder_f ivim_ts_DayOfWeek_decode_uper; +per_type_encoder_f ivim_ts_DayOfWeek_encode_uper; +per_type_decoder_f ivim_ts_DayOfWeek_decode_aper; +per_type_encoder_f ivim_ts_DayOfWeek_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DayOfWeek_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DebitRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DebitRq.h new file mode 100644 index 000000000..4df8e2a5a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DebitRq.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DebitRq_H_ +#define _ivim_ts_DebitRq_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentFee.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DebitRq */ +typedef struct ivim_ts_DebitRq { + ivim_ts_PaymentFee_t debitPaymentFee; + OCTET_STRING_t nonce; + long keyRef; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DebitRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DebitRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DebitRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DebitRs.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DebitRs.h new file mode 100644 index 000000000..bd73d7dbf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DebitRs.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DebitRs_H_ +#define _ivim_ts_DebitRs_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ResultFin.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DebitRs */ +typedef struct ivim_ts_DebitRs { + ivim_ts_ResultFin_t debitResult; + OCTET_STRING_t debitAuthenticator; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DebitRs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DebitRs; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DebitRs_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DefinitionAccuracy.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DefinitionAccuracy.h new file mode 100644 index 000000000..a48b71146 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DefinitionAccuracy.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DefinitionAccuracy_H_ +#define _ivim_ts_DefinitionAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DefinitionAccuracy { + ivim_ts_DefinitionAccuracy_oneCm = 0, + ivim_ts_DefinitionAccuracy_twoCm = 1, + ivim_ts_DefinitionAccuracy_fiveCm = 2, + ivim_ts_DefinitionAccuracy_tenCm = 3, + ivim_ts_DefinitionAccuracy_twentyCm = 4, + ivim_ts_DefinitionAccuracy_fiftyCm = 5, + ivim_ts_DefinitionAccuracy_oneMeter = 6, + ivim_ts_DefinitionAccuracy_unavailable = 7 +} e_ivim_ts_DefinitionAccuracy; + +/* ivim_ts_DefinitionAccuracy */ +typedef long ivim_ts_DefinitionAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DefinitionAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DefinitionAccuracy; +asn_struct_free_f ivim_ts_DefinitionAccuracy_free; +asn_struct_print_f ivim_ts_DefinitionAccuracy_print; +asn_constr_check_f ivim_ts_DefinitionAccuracy_constraint; +per_type_decoder_f ivim_ts_DefinitionAccuracy_decode_uper; +per_type_encoder_f ivim_ts_DefinitionAccuracy_encode_uper; +per_type_decoder_f ivim_ts_DefinitionAccuracy_decode_aper; +per_type_encoder_f ivim_ts_DefinitionAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DefinitionAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaAltitude.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaAltitude.h new file mode 100644 index 000000000..43b80b27c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaAltitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaAltitude_H_ +#define _ivim_ts_DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DeltaAltitude { + ivim_ts_DeltaAltitude_oneCentimeterUp = 1, + ivim_ts_DeltaAltitude_oneCentimeterDown = -1, + ivim_ts_DeltaAltitude_unavailable = 12800 +} e_ivim_ts_DeltaAltitude; + +/* ivim_ts_DeltaAltitude */ +typedef long ivim_ts_DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaAltitude; +asn_struct_free_f ivim_ts_DeltaAltitude_free; +asn_struct_print_f ivim_ts_DeltaAltitude_print; +asn_constr_check_f ivim_ts_DeltaAltitude_constraint; +per_type_decoder_f ivim_ts_DeltaAltitude_decode_uper; +per_type_encoder_f ivim_ts_DeltaAltitude_encode_uper; +per_type_decoder_f ivim_ts_DeltaAltitude_decode_aper; +per_type_encoder_f ivim_ts_DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DeltaAltitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaAngle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaAngle.h new file mode 100644 index 000000000..03410ada9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaAngle_H_ +#define _ivim_ts_DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DeltaAngle */ +typedef long ivim_ts_DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaAngle; +asn_struct_free_f ivim_ts_DeltaAngle_free; +asn_struct_print_f ivim_ts_DeltaAngle_print; +asn_constr_check_f ivim_ts_DeltaAngle_constraint; +per_type_decoder_f ivim_ts_DeltaAngle_decode_uper; +per_type_encoder_f ivim_ts_DeltaAngle_encode_uper; +per_type_decoder_f ivim_ts_DeltaAngle_decode_aper; +per_type_encoder_f ivim_ts_DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DeltaAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaLatitude.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaLatitude.h new file mode 100644 index 000000000..7f1de25c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaLatitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaLatitude_H_ +#define _ivim_ts_DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DeltaLatitude { + ivim_ts_DeltaLatitude_oneMicrodegreeNorth = 10, + ivim_ts_DeltaLatitude_oneMicrodegreeSouth = -10, + ivim_ts_DeltaLatitude_unavailable = 131072 +} e_ivim_ts_DeltaLatitude; + +/* ivim_ts_DeltaLatitude */ +typedef long ivim_ts_DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaLatitude; +asn_struct_free_f ivim_ts_DeltaLatitude_free; +asn_struct_print_f ivim_ts_DeltaLatitude_print; +asn_constr_check_f ivim_ts_DeltaLatitude_constraint; +per_type_decoder_f ivim_ts_DeltaLatitude_decode_uper; +per_type_encoder_f ivim_ts_DeltaLatitude_encode_uper; +per_type_decoder_f ivim_ts_DeltaLatitude_decode_aper; +per_type_encoder_f ivim_ts_DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DeltaLatitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaLongitude.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaLongitude.h new file mode 100644 index 000000000..d78285ebb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaLongitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaLongitude_H_ +#define _ivim_ts_DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DeltaLongitude { + ivim_ts_DeltaLongitude_oneMicrodegreeEast = 10, + ivim_ts_DeltaLongitude_oneMicrodegreeWest = -10, + ivim_ts_DeltaLongitude_unavailable = 131072 +} e_ivim_ts_DeltaLongitude; + +/* ivim_ts_DeltaLongitude */ +typedef long ivim_ts_DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaLongitude; +asn_struct_free_f ivim_ts_DeltaLongitude_free; +asn_struct_print_f ivim_ts_DeltaLongitude_print; +asn_constr_check_f ivim_ts_DeltaLongitude_constraint; +per_type_decoder_f ivim_ts_DeltaLongitude_decode_uper; +per_type_encoder_f ivim_ts_DeltaLongitude_encode_uper; +per_type_decoder_f ivim_ts_DeltaLongitude_decode_aper; +per_type_encoder_f ivim_ts_DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DeltaLongitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaPosition.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaPosition.h new file mode 100644 index 000000000..ac7093153 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaPosition.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaPosition_H_ +#define _ivim_ts_DeltaPosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaLatitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaLongitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DeltaPosition */ +typedef struct ivim_ts_DeltaPosition { + ivim_ts_DeltaLatitude_t deltaLatitude; + ivim_ts_DeltaLongitude_t deltaLongitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DeltaPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DeltaPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DeltaPosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DeltaPosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaPositions.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaPositions.h new file mode 100644 index 000000000..a13928c23 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaPositions.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaPositions_H_ +#define _ivim_ts_DeltaPositions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DeltaPosition; + +/* ivim_ts_DeltaPositions */ +typedef struct ivim_ts_DeltaPositions { + A_SEQUENCE_OF(struct ivim_ts_DeltaPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DeltaPositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaPositions; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_DeltaPositions_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DeltaPositions_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_DeltaPositions_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaPosition.h" + +#endif /* _ivim_ts_DeltaPositions_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePosition.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePosition.h new file mode 100644 index 000000000..d2336b4fd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaReferencePosition_H_ +#define _ivim_ts_DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaLatitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaLongitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DeltaReferencePosition */ +typedef struct ivim_ts_DeltaReferencePosition { + ivim_ts_DeltaLatitude_t deltaLatitude; + ivim_ts_DeltaLongitude_t deltaLongitude; + ivim_ts_DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DeltaReferencePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePositions.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePositions.h new file mode 100644 index 000000000..417a7fa25 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePositions.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaReferencePositions_H_ +#define _ivim_ts_DeltaReferencePositions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DeltaReferencePosition; + +/* ivim_ts_DeltaReferencePositions */ +typedef struct ivim_ts_DeltaReferencePositions { + A_SEQUENCE_OF(struct ivim_ts_DeltaReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DeltaReferencePositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaReferencePositions; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_DeltaReferencePositions_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DeltaReferencePositions_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_DeltaReferencePositions_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePosition.h" + +#endif /* _ivim_ts_DeltaReferencePositions_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaTime.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaTime.h new file mode 100644 index 000000000..205d09de5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DeltaTime.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DeltaTime_H_ +#define _ivim_ts_DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DeltaTime */ +typedef long ivim_ts_DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaTime; +asn_struct_free_f ivim_ts_DeltaTime_free; +asn_struct_print_f ivim_ts_DeltaTime_print; +asn_constr_check_f ivim_ts_DeltaTime_constraint; +per_type_decoder_f ivim_ts_DeltaTime_decode_uper; +per_type_encoder_f ivim_ts_DeltaTime_encode_uper; +per_type_decoder_f ivim_ts_DeltaTime_decode_aper; +per_type_encoder_f ivim_ts_DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DeltaTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Depth.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Depth.h new file mode 100644 index 000000000..7621f32c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Depth.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Depth_H_ +#define _ivim_ts_Depth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Depth */ +typedef long ivim_ts_Depth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Depth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Depth; +asn_struct_free_f ivim_ts_Depth_free; +asn_struct_print_f ivim_ts_Depth_print; +asn_constr_check_f ivim_ts_Depth_constraint; +per_type_decoder_f ivim_ts_Depth_decode_uper; +per_type_encoder_f ivim_ts_Depth_encode_uper; +per_type_decoder_f ivim_ts_Depth_decode_aper; +per_type_encoder_f ivim_ts_Depth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Depth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DescriptiveCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DescriptiveCharacteristics.h new file mode 100644 index 000000000..cfc669b62 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DescriptiveCharacteristics.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DescriptiveCharacteristics_H_ +#define _ivim_ts_DescriptiveCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DescriptiveCharacteristics { + ivim_ts_DescriptiveCharacteristics_noEntry = 0, + ivim_ts_DescriptiveCharacteristics_vehicleShape1 = 1, + ivim_ts_DescriptiveCharacteristics_vehicleShape2 = 2, + ivim_ts_DescriptiveCharacteristics_vehicleShape3 = 3, + ivim_ts_DescriptiveCharacteristics_vehicleShape4 = 4, + ivim_ts_DescriptiveCharacteristics_vehicleShape5 = 5, + ivim_ts_DescriptiveCharacteristics_vehicleShape6 = 6, + ivim_ts_DescriptiveCharacteristics_vehicleShape7 = 7, + ivim_ts_DescriptiveCharacteristics_vehicleShape8 = 8, + ivim_ts_DescriptiveCharacteristics_vehicleShape9 = 9, + ivim_ts_DescriptiveCharacteristics_vehicleShape10 = 10, + ivim_ts_DescriptiveCharacteristics_vehicleShape11 = 11, + ivim_ts_DescriptiveCharacteristics_vehicleShape12 = 12, + ivim_ts_DescriptiveCharacteristics_vehicleShape13 = 13, + ivim_ts_DescriptiveCharacteristics_vehicleShape14 = 14, + ivim_ts_DescriptiveCharacteristics_vehicleShape15 = 15, + ivim_ts_DescriptiveCharacteristics_vehicleShape16 = 16, + ivim_ts_DescriptiveCharacteristics_vehicleShape17 = 17, + ivim_ts_DescriptiveCharacteristics_vehicleShape18 = 18, + ivim_ts_DescriptiveCharacteristics_vehicleShape19 = 19, + ivim_ts_DescriptiveCharacteristics_vehicleShape20 = 20, + ivim_ts_DescriptiveCharacteristics_vehicleShape21 = 21, + ivim_ts_DescriptiveCharacteristics_vehicleShape22 = 22, + ivim_ts_DescriptiveCharacteristics_vehicleShape23 = 23, + ivim_ts_DescriptiveCharacteristics_vehicleShape24 = 24, + ivim_ts_DescriptiveCharacteristics_vehicleShape25 = 25, + ivim_ts_DescriptiveCharacteristics_vehicleShape26 = 26, + ivim_ts_DescriptiveCharacteristics_vehicleShape27 = 27, + ivim_ts_DescriptiveCharacteristics_vehicleShape28 = 28, + ivim_ts_DescriptiveCharacteristics_vehicleShape29 = 29, + ivim_ts_DescriptiveCharacteristics_vehicleShape30 = 30, + ivim_ts_DescriptiveCharacteristics_vehicleShape31 = 31, + ivim_ts_DescriptiveCharacteristics_vehicleShape32 = 32, + ivim_ts_DescriptiveCharacteristics_vehicleShape33 = 33, + ivim_ts_DescriptiveCharacteristics_vehicleShape34 = 34, + ivim_ts_DescriptiveCharacteristics_vehicleShape35 = 35, + ivim_ts_DescriptiveCharacteristics_vehicleShape36 = 36, + ivim_ts_DescriptiveCharacteristics_vehicleShape37 = 37, + ivim_ts_DescriptiveCharacteristics_vehicleShape38 = 38, + ivim_ts_DescriptiveCharacteristics_vehicleShape39 = 39, + ivim_ts_DescriptiveCharacteristics_vehicleShape40 = 40, + ivim_ts_DescriptiveCharacteristics_vehicleShape41 = 41, + ivim_ts_DescriptiveCharacteristics_vehicleShape42 = 42, + ivim_ts_DescriptiveCharacteristics_vehicleShape43 = 43, + ivim_ts_DescriptiveCharacteristics_vehicleShape44 = 44, + ivim_ts_DescriptiveCharacteristics_vehicleShape45 = 45, + ivim_ts_DescriptiveCharacteristics_vehicleShape46 = 46, + ivim_ts_DescriptiveCharacteristics_vehicleShape47 = 47, + ivim_ts_DescriptiveCharacteristics_vehicleShape48 = 48, + ivim_ts_DescriptiveCharacteristics_vehicleShape49 = 49, + ivim_ts_DescriptiveCharacteristics_vehicleShape50 = 50 +} e_ivim_ts_DescriptiveCharacteristics; + +/* ivim_ts_DescriptiveCharacteristics */ +typedef long ivim_ts_DescriptiveCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DescriptiveCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DescriptiveCharacteristics; +asn_struct_free_f ivim_ts_DescriptiveCharacteristics_free; +asn_struct_print_f ivim_ts_DescriptiveCharacteristics_print; +asn_constr_check_f ivim_ts_DescriptiveCharacteristics_constraint; +per_type_decoder_f ivim_ts_DescriptiveCharacteristics_decode_uper; +per_type_encoder_f ivim_ts_DescriptiveCharacteristics_encode_uper; +per_type_decoder_f ivim_ts_DescriptiveCharacteristics_decode_aper; +per_type_encoder_f ivim_ts_DescriptiveCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DescriptiveCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h new file mode 100644 index 000000000..346db9deb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DescriptiveName_H_ +#define _ivim_ts_DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DescriptiveName */ +typedef IA5String_t ivim_ts_DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DescriptiveName; +asn_struct_free_f ivim_ts_DescriptiveName_free; +asn_struct_print_f ivim_ts_DescriptiveName_print; +asn_constr_check_f ivim_ts_DescriptiveName_constraint; +per_type_decoder_f ivim_ts_DescriptiveName_decode_uper; +per_type_encoder_f ivim_ts_DescriptiveName_encode_uper; +per_type_decoder_f ivim_ts_DescriptiveName_decode_aper; +per_type_encoder_f ivim_ts_DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DescriptiveName_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationPlace.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationPlace.h new file mode 100644 index 000000000..1f092d892 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationPlace.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DestinationPlace_H_ +#define _ivim_ts_DestinationPlace_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationType.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_GddStructure; + +/* ivim_ts_DestinationPlace */ +typedef struct ivim_ts_DestinationPlace { + ivim_ts_DestinationType_t destType; + struct ivim_ts_GddStructure *destRSCode; /* OPTIONAL */ + OCTET_STRING_t *destBlob; /* OPTIONAL */ + long *placeNameIdentification; /* OPTIONAL */ + UTF8String_t *placeNameText; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DestinationPlace_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationPlace; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DestinationPlace_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DestinationPlace_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GddStructure.h" + +#endif /* _ivim_ts_DestinationPlace_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationPlaces.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationPlaces.h new file mode 100644 index 000000000..947fe13e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationPlaces.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DestinationPlaces_H_ +#define _ivim_ts_DestinationPlaces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DestinationPlace; + +/* ivim_ts_DestinationPlaces */ +typedef struct ivim_ts_DestinationPlaces { + A_SEQUENCE_OF(struct ivim_ts_DestinationPlace) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DestinationPlaces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationPlaces; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_DestinationPlaces_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DestinationPlaces_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_DestinationPlaces_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationPlace.h" + +#endif /* _ivim_ts_DestinationPlaces_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoad.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoad.h new file mode 100644 index 000000000..23b2aae12 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoad.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DestinationRoad_H_ +#define _ivim_ts_DestinationRoad_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationRoadType.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DestinationRoad */ +typedef struct ivim_ts_DestinationRoad { + ivim_ts_DestinationRoadType_t derType; + long *roadNumberIdentifier; /* OPTIONAL */ + UTF8String_t *roadNumberText; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DestinationRoad_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationRoad; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DestinationRoad_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DestinationRoad_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DestinationRoad_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoadType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoadType.h new file mode 100644 index 000000000..28ffeabfb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoadType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DestinationRoadType_H_ +#define _ivim_ts_DestinationRoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DestinationRoadType { + ivim_ts_DestinationRoadType_none = 0, + ivim_ts_DestinationRoadType_nationalHighway = 1, + ivim_ts_DestinationRoadType_localHighway = 2, + ivim_ts_DestinationRoadType_tollExpresswayMotorway = 3, + ivim_ts_DestinationRoadType_internationalHighway = 4, + ivim_ts_DestinationRoadType_highway = 5, + ivim_ts_DestinationRoadType_expressway = 6, + ivim_ts_DestinationRoadType_nationalRoad = 7, + ivim_ts_DestinationRoadType_regionalProvincialRoad = 8, + ivim_ts_DestinationRoadType_localRoad = 9, + ivim_ts_DestinationRoadType_motorwayJunction = 10, + ivim_ts_DestinationRoadType_diversion = 11, + ivim_ts_DestinationRoadType_rfu1 = 12, + ivim_ts_DestinationRoadType_rfu2 = 13, + ivim_ts_DestinationRoadType_rfu3 = 14, + ivim_ts_DestinationRoadType_rfu4 = 15 +} e_ivim_ts_DestinationRoadType; + +/* ivim_ts_DestinationRoadType */ +typedef long ivim_ts_DestinationRoadType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DestinationRoadType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationRoadType; +asn_struct_free_f ivim_ts_DestinationRoadType_free; +asn_struct_print_f ivim_ts_DestinationRoadType_print; +asn_constr_check_f ivim_ts_DestinationRoadType_constraint; +per_type_decoder_f ivim_ts_DestinationRoadType_decode_uper; +per_type_encoder_f ivim_ts_DestinationRoadType_encode_uper; +per_type_decoder_f ivim_ts_DestinationRoadType_decode_aper; +per_type_encoder_f ivim_ts_DestinationRoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DestinationRoadType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoads.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoads.h new file mode 100644 index 000000000..cfa288eed --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationRoads.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DestinationRoads_H_ +#define _ivim_ts_DestinationRoads_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DestinationRoad; + +/* ivim_ts_DestinationRoads */ +typedef struct ivim_ts_DestinationRoads { + A_SEQUENCE_OF(struct ivim_ts_DestinationRoad) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DestinationRoads_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationRoads; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_DestinationRoads_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DestinationRoads_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_DestinationRoads_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationRoad.h" + +#endif /* _ivim_ts_DestinationRoads_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationType.h new file mode 100644 index 000000000..10d60a9e7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DestinationType.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DestinationType_H_ +#define _ivim_ts_DestinationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DestinationType { + ivim_ts_DestinationType_none = 0, + ivim_ts_DestinationType_importantArea = 1, + ivim_ts_DestinationType_principalArea = 2, + ivim_ts_DestinationType_generalArea = 3, + ivim_ts_DestinationType_wellKnownPoint = 4, + ivim_ts_DestinationType_country = 5, + ivim_ts_DestinationType_city = 6, + ivim_ts_DestinationType_street = 7, + ivim_ts_DestinationType_industrialArea = 8, + ivim_ts_DestinationType_historicArea = 9, + ivim_ts_DestinationType_touristicArea = 10, + ivim_ts_DestinationType_culturalArea = 11, + ivim_ts_DestinationType_touristicRoute = 12, + ivim_ts_DestinationType_recommendedRoute = 13, + ivim_ts_DestinationType_touristicAttraction = 14, + ivim_ts_DestinationType_geographicArea = 15 +} e_ivim_ts_DestinationType; + +/* ivim_ts_DestinationType */ +typedef long ivim_ts_DestinationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DestinationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationType; +asn_struct_free_f ivim_ts_DestinationType_free; +asn_struct_print_f ivim_ts_DestinationType_print; +asn_constr_check_f ivim_ts_DestinationType_constraint; +per_type_decoder_f ivim_ts_DestinationType_decode_uper; +per_type_encoder_f ivim_ts_DestinationType_encode_uper; +per_type_decoder_f ivim_ts_DestinationType_decode_aper; +per_type_encoder_f ivim_ts_DestinationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DestinationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DieselEmissionValues.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DieselEmissionValues.h new file mode 100644 index 000000000..9c424e9a5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DieselEmissionValues.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DieselEmissionValues_H_ +#define _ivim_ts_DieselEmissionValues_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_UnitType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DieselEmissionValues */ +typedef struct ivim_ts_DieselEmissionValues { + struct ivim_ts_DieselEmissionValues__particulate { + ivim_ts_UnitType_t unitType; + long value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } particulate; + ivim_ts_Int2_t absorptionCoeff; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DieselEmissionValues_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DieselEmissionValues; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DieselEmissionValues_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DieselEmissionValues_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DieselEmissionValues_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DigitalMap.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DigitalMap.h new file mode 100644 index 000000000..c30673038 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DigitalMap.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DigitalMap_H_ +#define _ivim_ts_DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ReferencePosition; + +/* ivim_ts_DigitalMap */ +typedef struct ivim_ts_DigitalMap { + A_SEQUENCE_OF(struct ivim_ts_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DigitalMap; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ReferencePosition.h" + +#endif /* _ivim_ts_DigitalMap_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Direction.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Direction.h new file mode 100644 index 000000000..765a1869b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Direction.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Direction_H_ +#define _ivim_ts_Direction_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Direction { + ivim_ts_Direction_sameDirection = 0, + ivim_ts_Direction_oppositeDirection = 1, + ivim_ts_Direction_bothDirections = 2, + ivim_ts_Direction_valueNotUsed = 3 +} e_ivim_ts_Direction; + +/* ivim_ts_Direction */ +typedef long ivim_ts_Direction_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Direction_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Direction; +asn_struct_free_f ivim_ts_Direction_free; +asn_struct_print_f ivim_ts_Direction_print; +asn_constr_check_f ivim_ts_Direction_constraint; +per_type_decoder_f ivim_ts_Direction_decode_uper; +per_type_encoder_f ivim_ts_Direction_encode_uper; +per_type_decoder_f ivim_ts_Direction_decode_aper; +per_type_encoder_f ivim_ts_Direction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Direction_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Distance.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Distance.h new file mode 100644 index 000000000..62ae3762c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Distance.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Distance_H_ +#define _ivim_ts_Distance_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Code-Units.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Distance */ +typedef struct ivim_ts_Distance { + long value; + ivim_ts_Code_Units_t unit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Distance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Distance; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Distance_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Distance_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Distance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DistanceOrDuration.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DistanceOrDuration.h new file mode 100644 index 000000000..f5119538b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DistanceOrDuration.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DistanceOrDuration_H_ +#define _ivim_ts_DistanceOrDuration_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Code-Units.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DistanceOrDuration */ +typedef struct ivim_ts_DistanceOrDuration { + long value; + ivim_ts_Code_Units_t unit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_DistanceOrDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DistanceOrDuration; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DistanceOrDuration_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_DistanceOrDuration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DistanceOrDuration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DriveDirection.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DriveDirection.h new file mode 100644 index 000000000..3d4d20f96 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DriveDirection.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DriveDirection_H_ +#define _ivim_ts_DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_DriveDirection { + ivim_ts_DriveDirection_forward = 0, + ivim_ts_DriveDirection_backward = 1, + ivim_ts_DriveDirection_unavailable = 2 +} e_ivim_ts_DriveDirection; + +/* ivim_ts_DriveDirection */ +typedef long ivim_ts_DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DriveDirection; +asn_struct_free_f ivim_ts_DriveDirection_free; +asn_struct_print_f ivim_ts_DriveDirection_print; +asn_constr_check_f ivim_ts_DriveDirection_constraint; +per_type_decoder_f ivim_ts_DriveDirection_decode_uper; +per_type_encoder_f ivim_ts_DriveDirection_encode_uper; +per_type_decoder_f ivim_ts_DriveDirection_decode_aper; +per_type_encoder_f ivim_ts_DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DriveDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetLg.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetLg.h new file mode 100644 index 000000000..c78e6a874 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetLg.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DrivenLineOffsetLg_H_ +#define _ivim_ts_DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DrivenLineOffsetLg */ +typedef long ivim_ts_DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DrivenLineOffsetLg; +asn_struct_free_f ivim_ts_DrivenLineOffsetLg_free; +asn_struct_print_f ivim_ts_DrivenLineOffsetLg_print; +asn_constr_check_f ivim_ts_DrivenLineOffsetLg_constraint; +per_type_decoder_f ivim_ts_DrivenLineOffsetLg_decode_uper; +per_type_encoder_f ivim_ts_DrivenLineOffsetLg_encode_uper; +per_type_decoder_f ivim_ts_DrivenLineOffsetLg_decode_aper; +per_type_encoder_f ivim_ts_DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DrivenLineOffsetLg_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetSm.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetSm.h new file mode 100644 index 000000000..bb1157308 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetSm.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DrivenLineOffsetSm_H_ +#define _ivim_ts_DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DrivenLineOffsetSm */ +typedef long ivim_ts_DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DrivenLineOffsetSm; +asn_struct_free_f ivim_ts_DrivenLineOffsetSm_free; +asn_struct_print_f ivim_ts_DrivenLineOffsetSm_print; +asn_constr_check_f ivim_ts_DrivenLineOffsetSm_constraint; +per_type_decoder_f ivim_ts_DrivenLineOffsetSm_decode_uper; +per_type_encoder_f ivim_ts_DrivenLineOffsetSm_encode_uper; +per_type_decoder_f ivim_ts_DrivenLineOffsetSm_decode_aper; +per_type_encoder_f ivim_ts_DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DrivenLineOffsetSm_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivingLaneStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivingLaneStatus.h new file mode 100644 index 000000000..a5e3649f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_DrivingLaneStatus.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_DrivingLaneStatus_H_ +#define _ivim_ts_DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_DrivingLaneStatus */ +typedef BIT_STRING_t ivim_ts_DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_DrivingLaneStatus; +asn_struct_free_f ivim_ts_DrivingLaneStatus_free; +asn_struct_print_f ivim_ts_DrivingLaneStatus_print; +asn_constr_check_f ivim_ts_DrivingLaneStatus_constraint; +per_type_decoder_f ivim_ts_DrivingLaneStatus_decode_uper; +per_type_encoder_f ivim_ts_DrivingLaneStatus_encode_uper; +per_type_decoder_f ivim_ts_DrivingLaneStatus_decode_aper; +per_type_encoder_f ivim_ts_DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_DrivingLaneStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EFC-ContextMark.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EFC-ContextMark.h new file mode 100644 index 000000000..0b88382bd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EFC-ContextMark.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EFC_ContextMark_H_ +#define _ivim_ts_EFC_ContextMark_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Provider.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EFC-ContextMark */ +typedef struct ivim_ts_EFC_ContextMark { + ivim_ts_Provider_t contractProvider; + OCTET_STRING_t typeOfContract; + long contextVersion; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_EFC_ContextMark_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EFC_ContextMark; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EFC_ContextMark_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EXTERNAL.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EXTERNAL.h new file mode 100644 index 000000000..8bcd64ef8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_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=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EXTERNAL_H_ +#define _ivim_ts_EXTERNAL_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EXTERNAL__encoding_PR { + ivim_ts_EXTERNAL__encoding_PR_NOTHING, /* No components present */ + ivim_ts_EXTERNAL__encoding_PR_single_ASN1_type, + ivim_ts_EXTERNAL__encoding_PR_octet_aligned, + ivim_ts_EXTERNAL__encoding_PR_arbitrary +} ivim_ts_EXTERNAL__encoding_PR; + +/* ivim_ts_EXTERNAL */ +typedef struct ivim_ts_EXTERNAL { + OBJECT_IDENTIFIER_t *direct_reference; /* OPTIONAL */ + long *indirect_reference; /* OPTIONAL */ + ObjectDescriptor_t *data_value_descriptor; /* OPTIONAL */ + struct ivim_ts_EXTERNAL__encoding { + ivim_ts_EXTERNAL__encoding_PR present; + union ivim_ts_EXTERNAL__ivim_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; +} ivim_ts_EXTERNAL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EXTERNAL; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EXTERNAL_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_DriverCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_DriverCharacteristics.h new file mode 100644 index 000000000..788db9b0e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_DriverCharacteristics.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EfcDsrcApplication_DriverCharacteristics_H_ +#define _ivim_ts_EfcDsrcApplication_DriverCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EfcDsrcApplication_DriverCharacteristics */ +typedef struct ivim_ts_EfcDsrcApplication_DriverCharacteristics { + ivim_ts_Int1_t driverClass; + ivim_ts_Int1_t tripPurpose; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_EfcDsrcApplication_DriverCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EfcDsrcApplication_DriverCharacteristics; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EfcDsrcApplication_DriverCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_StationType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_StationType.h new file mode 100644 index 000000000..a6cc833c3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_StationType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EfcDsrcApplication_StationType_H_ +#define _ivim_ts_EfcDsrcApplication_StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EfcDsrcApplication_StationType { + ivim_ts_EfcDsrcApplication_StationType_unspecified = 0, + ivim_ts_EfcDsrcApplication_StationType_closedEntryWithPayment = 1, + ivim_ts_EfcDsrcApplication_StationType_closedEntryWithoutPayment = 2, + ivim_ts_EfcDsrcApplication_StationType_closedTransit = 3, + ivim_ts_EfcDsrcApplication_StationType_closedExit = 4, + ivim_ts_EfcDsrcApplication_StationType_closedCredit = 5, + ivim_ts_EfcDsrcApplication_StationType_mixed = 6, + ivim_ts_EfcDsrcApplication_StationType_passage = 7, + ivim_ts_EfcDsrcApplication_StationType_checkpoint = 8, + ivim_ts_EfcDsrcApplication_StationType_reload = 9, + ivim_ts_EfcDsrcApplication_StationType_reservedForFutureCENUse1 = 10, + ivim_ts_EfcDsrcApplication_StationType_reservedForFutureCENUse2 = 11, + ivim_ts_EfcDsrcApplication_StationType_reservedForFutureCENUse3 = 12, + ivim_ts_EfcDsrcApplication_StationType_reservedForFutureCENUse4 = 13, + ivim_ts_EfcDsrcApplication_StationType_privateUse5 = 14, + ivim_ts_EfcDsrcApplication_StationType_privateUse6 = 15 +} e_ivim_ts_EfcDsrcApplication_StationType; + +/* ivim_ts_EfcDsrcApplication_StationType */ +typedef long ivim_ts_EfcDsrcApplication_StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_EfcDsrcApplication_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EfcDsrcApplication_StationType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EfcDsrcApplication_StationType_specs_1; +asn_struct_free_f ivim_ts_EfcDsrcApplication_StationType_free; +asn_struct_print_f ivim_ts_EfcDsrcApplication_StationType_print; +asn_constr_check_f ivim_ts_EfcDsrcApplication_StationType_constraint; +per_type_decoder_f ivim_ts_EfcDsrcApplication_StationType_decode_uper; +per_type_encoder_f ivim_ts_EfcDsrcApplication_StationType_encode_uper; +per_type_decoder_f ivim_ts_EfcDsrcApplication_StationType_decode_aper; +per_type_encoder_f ivim_ts_EfcDsrcApplication_StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EfcDsrcApplication_StationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_TrailerCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_TrailerCharacteristics.h new file mode 100644 index 000000000..17d213ed2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_TrailerCharacteristics.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EfcDsrcApplication_TrailerCharacteristics_H_ +#define _ivim_ts_EfcDsrcApplication_TrailerCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerDetails.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EfcDsrcApplication_TrailerCharacteristics */ +typedef struct ivim_ts_EfcDsrcApplication_TrailerCharacteristics { + ivim_ts_TrailerDetails_t trailerDetails; + ivim_ts_Int2_t trailerMaxLadenWeight; + ivim_ts_Int2_t trailerWeightUnladen; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_EfcDsrcApplication_TrailerCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EfcDsrcApplication_TrailerCharacteristics; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EfcDsrcApplication_TrailerCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Elevation.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Elevation.h new file mode 100644 index 000000000..9c4d57640 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Elevation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Elevation_H_ +#define _ivim_ts_Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Elevation */ +typedef long ivim_ts_Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Elevation; +asn_struct_free_f ivim_ts_Elevation_free; +asn_struct_print_f ivim_ts_Elevation_print; +asn_constr_check_f ivim_ts_Elevation_constraint; +per_type_decoder_f ivim_ts_Elevation_decode_uper; +per_type_encoder_f ivim_ts_Elevation_encode_uper; +per_type_decoder_f ivim_ts_Elevation_decode_aper; +per_type_encoder_f ivim_ts_Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Elevation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ElevationConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ElevationConfidence.h new file mode 100644 index 000000000..8b73d0159 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ElevationConfidence.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ElevationConfidence_H_ +#define _ivim_ts_ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ElevationConfidence { + ivim_ts_ElevationConfidence_unavailable = 0, + ivim_ts_ElevationConfidence_elev_500_00 = 1, + ivim_ts_ElevationConfidence_elev_200_00 = 2, + ivim_ts_ElevationConfidence_elev_100_00 = 3, + ivim_ts_ElevationConfidence_elev_050_00 = 4, + ivim_ts_ElevationConfidence_elev_020_00 = 5, + ivim_ts_ElevationConfidence_elev_010_00 = 6, + ivim_ts_ElevationConfidence_elev_005_00 = 7, + ivim_ts_ElevationConfidence_elev_002_00 = 8, + ivim_ts_ElevationConfidence_elev_001_00 = 9, + ivim_ts_ElevationConfidence_elev_000_50 = 10, + ivim_ts_ElevationConfidence_elev_000_20 = 11, + ivim_ts_ElevationConfidence_elev_000_10 = 12, + ivim_ts_ElevationConfidence_elev_000_05 = 13, + ivim_ts_ElevationConfidence_elev_000_02 = 14, + ivim_ts_ElevationConfidence_elev_000_01 = 15 +} e_ivim_ts_ElevationConfidence; + +/* ivim_ts_ElevationConfidence */ +typedef long ivim_ts_ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ElevationConfidence_specs_1; +asn_struct_free_f ivim_ts_ElevationConfidence_free; +asn_struct_print_f ivim_ts_ElevationConfidence_print; +asn_constr_check_f ivim_ts_ElevationConfidence_constraint; +per_type_decoder_f ivim_ts_ElevationConfidence_decode_uper; +per_type_encoder_f ivim_ts_ElevationConfidence_encode_uper; +per_type_decoder_f ivim_ts_ElevationConfidence_decode_aper; +per_type_encoder_f ivim_ts_ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ElevationConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmbarkationStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmbarkationStatus.h new file mode 100644 index 000000000..5f8996ea3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmbarkationStatus.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EmbarkationStatus_H_ +#define _ivim_ts_EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EmbarkationStatus */ +typedef BOOLEAN_t ivim_ts_EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EmbarkationStatus; +asn_struct_free_f ivim_ts_EmbarkationStatus_free; +asn_struct_print_f ivim_ts_EmbarkationStatus_print; +asn_constr_check_f ivim_ts_EmbarkationStatus_constraint; +per_type_decoder_f ivim_ts_EmbarkationStatus_decode_uper; +per_type_encoder_f ivim_ts_EmbarkationStatus_encode_uper; +per_type_decoder_f ivim_ts_EmbarkationStatus_decode_aper; +per_type_encoder_f ivim_ts_EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EmbarkationStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmergencyPriority.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmergencyPriority.h new file mode 100644 index 000000000..cda28bd35 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmergencyPriority.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EmergencyPriority_H_ +#define _ivim_ts_EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EmergencyPriority { + ivim_ts_EmergencyPriority_requestForRightOfWay = 0, + ivim_ts_EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_ivim_ts_EmergencyPriority; + +/* ivim_ts_EmergencyPriority */ +typedef BIT_STRING_t ivim_ts_EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EmergencyPriority; +asn_struct_free_f ivim_ts_EmergencyPriority_free; +asn_struct_print_f ivim_ts_EmergencyPriority_print; +asn_constr_check_f ivim_ts_EmergencyPriority_constraint; +per_type_decoder_f ivim_ts_EmergencyPriority_decode_uper; +per_type_encoder_f ivim_ts_EmergencyPriority_encode_uper; +per_type_decoder_f ivim_ts_EmergencyPriority_decode_aper; +per_type_encoder_f ivim_ts_EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EmergencyPriority_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmergencyVehicleApproachingSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 000000000..8f5a24813 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EmergencyVehicleApproachingSubCauseCode_H_ +#define _ivim_ts_EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EmergencyVehicleApproachingSubCauseCode { + ivim_ts_EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + ivim_ts_EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + ivim_ts_EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_ivim_ts_EmergencyVehicleApproachingSubCauseCode; + +/* ivim_ts_EmergencyVehicleApproachingSubCauseCode */ +typedef long ivim_ts_EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f ivim_ts_EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f ivim_ts_EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f ivim_ts_EmergencyVehicleApproachingSubCauseCode_constraint; +per_type_decoder_f ivim_ts_EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmissionType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmissionType.h new file mode 100644 index 000000000..82409cc30 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EmissionType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EmissionType_H_ +#define _ivim_ts_EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EmissionType { + ivim_ts_EmissionType_euro1 = 0, + ivim_ts_EmissionType_euro2 = 1, + ivim_ts_EmissionType_euro3 = 2, + ivim_ts_EmissionType_euro4 = 3, + ivim_ts_EmissionType_euro5 = 4, + ivim_ts_EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_ivim_ts_EmissionType; + +/* ivim_ts_EmissionType */ +typedef long ivim_ts_EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EmissionType_specs_1; +asn_struct_free_f ivim_ts_EmissionType_free; +asn_struct_print_f ivim_ts_EmissionType_print; +asn_constr_check_f ivim_ts_EmissionType_constraint; +per_type_decoder_f ivim_ts_EmissionType_decode_uper; +per_type_encoder_f ivim_ts_EmissionType_encode_uper; +per_type_decoder_f ivim_ts_EmissionType_decode_aper; +per_type_encoder_f ivim_ts_EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EmissionType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnabledLaneList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnabledLaneList.h new file mode 100644 index 000000000..f4590ccc3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnabledLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EnabledLaneList_H_ +#define _ivim_ts_EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EnabledLaneList */ +typedef struct ivim_ts_EnabledLaneList { + A_SEQUENCE_OF(ivim_ts_LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EnabledLaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnergyStorageType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnergyStorageType.h new file mode 100644 index 000000000..9761c4cf3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnergyStorageType.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EnergyStorageType_H_ +#define _ivim_ts_EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EnergyStorageType { + ivim_ts_EnergyStorageType_hydrogenStorage = 0, + ivim_ts_EnergyStorageType_electricEnergyStorage = 1, + ivim_ts_EnergyStorageType_liquidPropaneGas = 2, + ivim_ts_EnergyStorageType_compressedNaturalGas = 3, + ivim_ts_EnergyStorageType_diesel = 4, + ivim_ts_EnergyStorageType_gasoline = 5, + ivim_ts_EnergyStorageType_ammonia = 6 +} e_ivim_ts_EnergyStorageType; + +/* ivim_ts_EnergyStorageType */ +typedef BIT_STRING_t ivim_ts_EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EnergyStorageType; +asn_struct_free_f ivim_ts_EnergyStorageType_free; +asn_struct_print_f ivim_ts_EnergyStorageType_print; +asn_constr_check_f ivim_ts_EnergyStorageType_constraint; +per_type_decoder_f ivim_ts_EnergyStorageType_decode_uper; +per_type_encoder_f ivim_ts_EnergyStorageType_encode_uper; +per_type_decoder_f ivim_ts_EnergyStorageType_decode_aper; +per_type_encoder_f ivim_ts_EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EnergyStorageType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Engine.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Engine.h new file mode 100644 index 000000000..2b577c303 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Engine.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Engine_H_ +#define _ivim_ts_Engine_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Engine */ +typedef struct ivim_ts_Engine { + ivim_ts_Int2_t engineCapacity; + ivim_ts_Int2_t enginePower; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Engine_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Engine; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Engine_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EngineCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EngineCharacteristics.h new file mode 100644 index 000000000..8c5e893ce --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EngineCharacteristics.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EngineCharacteristics_H_ +#define _ivim_ts_EngineCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EngineCharacteristics { + ivim_ts_EngineCharacteristics_noEntry = 0, + ivim_ts_EngineCharacteristics_noEngine = 1, + ivim_ts_EngineCharacteristics_petrolUnleaded = 2, + ivim_ts_EngineCharacteristics_petrolLeaded = 3, + ivim_ts_EngineCharacteristics_diesel = 4, + ivim_ts_EngineCharacteristics_lPG = 5, + ivim_ts_EngineCharacteristics_battery = 6, + ivim_ts_EngineCharacteristics_solar = 7, + ivim_ts_EngineCharacteristics_hybrid = 8, + ivim_ts_EngineCharacteristics_hydrogen = 9 +} e_ivim_ts_EngineCharacteristics; + +/* ivim_ts_EngineCharacteristics */ +typedef long ivim_ts_EngineCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_EngineCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EngineCharacteristics; +asn_struct_free_f ivim_ts_EngineCharacteristics_free; +asn_struct_print_f ivim_ts_EngineCharacteristics_print; +asn_constr_check_f ivim_ts_EngineCharacteristics_constraint; +per_type_decoder_f ivim_ts_EngineCharacteristics_decode_uper; +per_type_encoder_f ivim_ts_EngineCharacteristics_encode_uper; +per_type_decoder_f ivim_ts_EngineCharacteristics_decode_aper; +per_type_encoder_f ivim_ts_EngineCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EngineCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnvironmentalCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnvironmentalCharacteristics.h new file mode 100644 index 000000000..dc0f5273d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EnvironmentalCharacteristics.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EnvironmentalCharacteristics_H_ +#define _ivim_ts_EnvironmentalCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_EuroValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_CopValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EnvironmentalCharacteristics */ +typedef struct ivim_ts_EnvironmentalCharacteristics { + ivim_ts_EuroValue_t euroValue; + ivim_ts_CopValue_t copValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_EnvironmentalCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EnvironmentalCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_EnvironmentalCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_EnvironmentalCharacteristics_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EnvironmentalCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EquipmentOBUId.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EquipmentOBUId.h new file mode 100644 index 000000000..e331051a3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EquipmentOBUId.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EquipmentOBUId_H_ +#define _ivim_ts_EquipmentOBUId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EquipmentOBUId */ +typedef OCTET_STRING_t ivim_ts_EquipmentOBUId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EquipmentOBUId; +asn_struct_free_f ivim_ts_EquipmentOBUId_free; +asn_struct_print_f ivim_ts_EquipmentOBUId_print; +asn_constr_check_f ivim_ts_EquipmentOBUId_constraint; +per_type_decoder_f ivim_ts_EquipmentOBUId_decode_uper; +per_type_encoder_f ivim_ts_EquipmentOBUId_encode_uper; +per_type_decoder_f ivim_ts_EquipmentOBUId_decode_aper; +per_type_encoder_f ivim_ts_EquipmentOBUId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EquipmentOBUId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EquipmentStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EquipmentStatus.h new file mode 100644 index 000000000..4637b7870 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EquipmentStatus.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EquipmentStatus_H_ +#define _ivim_ts_EquipmentStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EquipmentStatus */ +typedef BIT_STRING_t ivim_ts_EquipmentStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EquipmentStatus; +asn_struct_free_f ivim_ts_EquipmentStatus_free; +asn_struct_print_f ivim_ts_EquipmentStatus_print; +asn_constr_check_f ivim_ts_EquipmentStatus_constraint; +per_type_decoder_f ivim_ts_EquipmentStatus_decode_uper; +per_type_encoder_f ivim_ts_EquipmentStatus_encode_uper; +per_type_decoder_f ivim_ts_EquipmentStatus_decode_aper; +per_type_encoder_f ivim_ts_EquipmentStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EquipmentStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryCode.h new file mode 100644 index 000000000..79516b9d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryCode.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EuVehicleCategoryCode_H_ +#define _ivim_ts_EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryL.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryM.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryN.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EuVehicleCategoryCode_PR { + ivim_ts_EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + ivim_ts_EuVehicleCategoryCode_PR_euVehicleCategoryL, + ivim_ts_EuVehicleCategoryCode_PR_euVehicleCategoryM, + ivim_ts_EuVehicleCategoryCode_PR_euVehicleCategoryN, + ivim_ts_EuVehicleCategoryCode_PR_euVehicleCategoryO, + ivim_ts_EuVehicleCategoryCode_PR_euVehilcleCategoryT, + ivim_ts_EuVehicleCategoryCode_PR_euVehilcleCategoryG +} ivim_ts_EuVehicleCategoryCode_PR; + +/* ivim_ts_EuVehicleCategoryCode */ +typedef struct ivim_ts_EuVehicleCategoryCode { + ivim_ts_EuVehicleCategoryCode_PR present; + union ivim_ts_EuVehicleCategoryCode_u { + ivim_ts_EuVehicleCategoryL_t euVehicleCategoryL; + ivim_ts_EuVehicleCategoryM_t euVehicleCategoryM; + ivim_ts_EuVehicleCategoryN_t euVehicleCategoryN; + ivim_ts_EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryCode; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryCode_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_EuVehicleCategoryCode_1[6]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_EuVehicleCategoryCode_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EuVehicleCategoryCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryL.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryL.h new file mode 100644 index 000000000..0d6d57c87 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryL.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EuVehicleCategoryL_H_ +#define _ivim_ts_EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EuVehicleCategoryL { + ivim_ts_EuVehicleCategoryL_l1 = 0, + ivim_ts_EuVehicleCategoryL_l2 = 1, + ivim_ts_EuVehicleCategoryL_l3 = 2, + ivim_ts_EuVehicleCategoryL_l4 = 3, + ivim_ts_EuVehicleCategoryL_l5 = 4, + ivim_ts_EuVehicleCategoryL_l6 = 5, + ivim_ts_EuVehicleCategoryL_l7 = 6 +} e_ivim_ts_EuVehicleCategoryL; + +/* ivim_ts_EuVehicleCategoryL */ +typedef long ivim_ts_EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryL_specs_1; +asn_struct_free_f ivim_ts_EuVehicleCategoryL_free; +asn_struct_print_f ivim_ts_EuVehicleCategoryL_print; +asn_constr_check_f ivim_ts_EuVehicleCategoryL_constraint; +per_type_decoder_f ivim_ts_EuVehicleCategoryL_decode_uper; +per_type_encoder_f ivim_ts_EuVehicleCategoryL_encode_uper; +per_type_decoder_f ivim_ts_EuVehicleCategoryL_decode_aper; +per_type_encoder_f ivim_ts_EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EuVehicleCategoryL_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryM.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryM.h new file mode 100644 index 000000000..bef96f80a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryM.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EuVehicleCategoryM_H_ +#define _ivim_ts_EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EuVehicleCategoryM { + ivim_ts_EuVehicleCategoryM_m1 = 0, + ivim_ts_EuVehicleCategoryM_m2 = 1, + ivim_ts_EuVehicleCategoryM_m3 = 2 +} e_ivim_ts_EuVehicleCategoryM; + +/* ivim_ts_EuVehicleCategoryM */ +typedef long ivim_ts_EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryM_specs_1; +asn_struct_free_f ivim_ts_EuVehicleCategoryM_free; +asn_struct_print_f ivim_ts_EuVehicleCategoryM_print; +asn_constr_check_f ivim_ts_EuVehicleCategoryM_constraint; +per_type_decoder_f ivim_ts_EuVehicleCategoryM_decode_uper; +per_type_encoder_f ivim_ts_EuVehicleCategoryM_encode_uper; +per_type_decoder_f ivim_ts_EuVehicleCategoryM_decode_aper; +per_type_encoder_f ivim_ts_EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EuVehicleCategoryM_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryN.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryN.h new file mode 100644 index 000000000..47a5caecf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryN.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EuVehicleCategoryN_H_ +#define _ivim_ts_EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EuVehicleCategoryN { + ivim_ts_EuVehicleCategoryN_n1 = 0, + ivim_ts_EuVehicleCategoryN_n2 = 1, + ivim_ts_EuVehicleCategoryN_n3 = 2 +} e_ivim_ts_EuVehicleCategoryN; + +/* ivim_ts_EuVehicleCategoryN */ +typedef long ivim_ts_EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryN_specs_1; +asn_struct_free_f ivim_ts_EuVehicleCategoryN_free; +asn_struct_print_f ivim_ts_EuVehicleCategoryN_print; +asn_constr_check_f ivim_ts_EuVehicleCategoryN_constraint; +per_type_decoder_f ivim_ts_EuVehicleCategoryN_decode_uper; +per_type_encoder_f ivim_ts_EuVehicleCategoryN_encode_uper; +per_type_decoder_f ivim_ts_EuVehicleCategoryN_decode_aper; +per_type_encoder_f ivim_ts_EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EuVehicleCategoryN_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryO.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryO.h new file mode 100644 index 000000000..c849dc7bc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryO.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EuVehicleCategoryO_H_ +#define _ivim_ts_EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EuVehicleCategoryO { + ivim_ts_EuVehicleCategoryO_o1 = 0, + ivim_ts_EuVehicleCategoryO_o2 = 1, + ivim_ts_EuVehicleCategoryO_o3 = 2, + ivim_ts_EuVehicleCategoryO_o4 = 3 +} e_ivim_ts_EuVehicleCategoryO; + +/* ivim_ts_EuVehicleCategoryO */ +typedef long ivim_ts_EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryO_specs_1; +asn_struct_free_f ivim_ts_EuVehicleCategoryO_free; +asn_struct_print_f ivim_ts_EuVehicleCategoryO_print; +asn_constr_check_f ivim_ts_EuVehicleCategoryO_constraint; +per_type_decoder_f ivim_ts_EuVehicleCategoryO_decode_uper; +per_type_encoder_f ivim_ts_EuVehicleCategoryO_encode_uper; +per_type_decoder_f ivim_ts_EuVehicleCategoryO_decode_aper; +per_type_encoder_f ivim_ts_EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EuVehicleCategoryO_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuroValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuroValue.h new file mode 100644 index 000000000..3b45f7b32 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EuroValue.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EuroValue_H_ +#define _ivim_ts_EuroValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_EuroValue { + ivim_ts_EuroValue_noEntry = 0, + ivim_ts_EuroValue_euro_1 = 1, + ivim_ts_EuroValue_euro_2 = 2, + ivim_ts_EuroValue_euro_3 = 3, + ivim_ts_EuroValue_euro_4 = 4, + ivim_ts_EuroValue_euro_5 = 5, + ivim_ts_EuroValue_euro_6 = 6, + ivim_ts_EuroValue_reservedForUse1 = 7, + ivim_ts_EuroValue_reservedForUse2 = 8, + ivim_ts_EuroValue_reservedForUse3 = 9, + ivim_ts_EuroValue_reservedForUse4 = 10, + ivim_ts_EuroValue_reservedForUse5 = 11, + ivim_ts_EuroValue_reservedForUse6 = 12, + ivim_ts_EuroValue_reservedForUse7 = 13, + ivim_ts_EuroValue_reservedForUse8 = 14, + ivim_ts_EuroValue_eev = 15 +} e_ivim_ts_EuroValue; + +/* ivim_ts_EuroValue */ +typedef long ivim_ts_EuroValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_EuroValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuroValue; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuroValue_specs_1; +asn_struct_free_f ivim_ts_EuroValue_free; +asn_struct_print_f ivim_ts_EuroValue_print; +asn_constr_check_f ivim_ts_EuroValue_constraint; +per_type_decoder_f ivim_ts_EuroValue_decode_uper; +per_type_encoder_f ivim_ts_EuroValue_encode_uper; +per_type_decoder_f ivim_ts_EuroValue_decode_aper; +per_type_encoder_f ivim_ts_EuroValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EuroValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EventHistory.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EventHistory.h new file mode 100644 index 000000000..90b965e44 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EventHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EventHistory_H_ +#define _ivim_ts_EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_EventPoint; + +/* ivim_ts_EventHistory */ +typedef struct ivim_ts_EventHistory { + A_SEQUENCE_OF(struct ivim_ts_EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EventHistory; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_EventPoint.h" + +#endif /* _ivim_ts_EventHistory_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EventPoint.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EventPoint.h new file mode 100644 index 000000000..85e0d327a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_EventPoint_H_ +#define _ivim_ts_EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePosition.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PathDeltaTime.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_EventPoint */ +typedef struct ivim_ts_EventPoint { + ivim_ts_DeltaReferencePosition_t eventPosition; + ivim_ts_PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + ivim_ts_InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_EventPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExceptionalCondition.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExceptionalCondition.h new file mode 100644 index 000000000..ec0db49fb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExceptionalCondition.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ExceptionalCondition_H_ +#define _ivim_ts_ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ExceptionalCondition { + ivim_ts_ExceptionalCondition_unknown = 0, + ivim_ts_ExceptionalCondition_publicTransportPriority = 1, + ivim_ts_ExceptionalCondition_emergencyVehiclePriority = 2, + ivim_ts_ExceptionalCondition_trainPriority = 3, + ivim_ts_ExceptionalCondition_bridgeOpen = 4, + ivim_ts_ExceptionalCondition_vehicleHeight = 5, + ivim_ts_ExceptionalCondition_weather = 6, + ivim_ts_ExceptionalCondition_trafficJam = 7, + ivim_ts_ExceptionalCondition_tunnelClosure = 8, + ivim_ts_ExceptionalCondition_meteringActive = 9, + ivim_ts_ExceptionalCondition_truckPriority = 10, + ivim_ts_ExceptionalCondition_bicyclePlatoonPriority = 11, + ivim_ts_ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_ivim_ts_ExceptionalCondition; + +/* ivim_ts_ExceptionalCondition */ +typedef long ivim_ts_ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ExceptionalCondition_specs_1; +asn_struct_free_f ivim_ts_ExceptionalCondition_free; +asn_struct_print_f ivim_ts_ExceptionalCondition_print; +asn_constr_check_f ivim_ts_ExceptionalCondition_constraint; +per_type_decoder_f ivim_ts_ExceptionalCondition_decode_uper; +per_type_encoder_f ivim_ts_ExceptionalCondition_encode_uper; +per_type_decoder_f ivim_ts_ExceptionalCondition_decode_aper; +per_type_encoder_f ivim_ts_ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ExceptionalCondition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExhaustEmissionValues.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExhaustEmissionValues.h new file mode 100644 index 000000000..3004ecf11 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExhaustEmissionValues.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ExhaustEmissionValues_H_ +#define _ivim_ts_ExhaustEmissionValues_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_UnitType.h" +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ExhaustEmissionValues */ +typedef struct ivim_ts_ExhaustEmissionValues { + ivim_ts_UnitType_t unitType; + long emissionCO; + ivim_ts_Int2_t emissionHC; + ivim_ts_Int2_t emissionNOX; + ivim_ts_Int2_t emissionHCNOX; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ExhaustEmissionValues_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ExhaustEmissionValues; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ExhaustEmissionValues_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ExhaustEmissionValues_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ExhaustEmissionValues_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext1.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext1.h new file mode 100644 index 000000000..c6aaa74ef --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext1.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Ext1_H_ +#define _ivim_ts_Ext1_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Ext2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Ext1_PR { + ivim_ts_Ext1_PR_NOTHING, /* No components present */ + ivim_ts_Ext1_PR_content, + ivim_ts_Ext1_PR_extension +} ivim_ts_Ext1_PR; + +/* ivim_ts_Ext1 */ +typedef struct ivim_ts_Ext1 { + ivim_ts_Ext1_PR present; + union ivim_ts_Ext1_u { + long content; + ivim_ts_Ext2_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Ext1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Ext1; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_Ext1_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Ext1_1[2]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_Ext1_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Ext1_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext2.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext2.h new file mode 100644 index 000000000..3428ae1ca --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext2.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Ext2_H_ +#define _ivim_ts_Ext2_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Ext3.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Ext2_PR { + ivim_ts_Ext2_PR_NOTHING, /* No components present */ + ivim_ts_Ext2_PR_content, + ivim_ts_Ext2_PR_extension +} ivim_ts_Ext2_PR; + +/* ivim_ts_Ext2 */ +typedef struct ivim_ts_Ext2 { + ivim_ts_Ext2_PR present; + union ivim_ts_Ext2_u { + long content; + ivim_ts_Ext3_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Ext2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Ext2; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_Ext2_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Ext2_1[2]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_Ext2_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Ext2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext3.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext3.h new file mode 100644 index 000000000..c85e126a5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Ext3.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Ext3_H_ +#define _ivim_ts_Ext3_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Ext3 */ +typedef long ivim_ts_Ext3_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Ext3_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Ext3; +asn_struct_free_f ivim_ts_Ext3_free; +asn_struct_print_f ivim_ts_Ext3_print; +asn_constr_check_f ivim_ts_Ext3_constraint; +per_type_decoder_f ivim_ts_Ext3_decode_uper; +per_type_encoder_f ivim_ts_Ext3_encode_uper; +per_type_decoder_f ivim_ts_Ext3_decode_aper; +per_type_encoder_f ivim_ts_Ext3_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Ext3_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExteriorLights.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExteriorLights.h new file mode 100644 index 000000000..d88591cb5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ExteriorLights.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ExteriorLights_H_ +#define _ivim_ts_ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ExteriorLights { + ivim_ts_ExteriorLights_lowBeamHeadlightsOn = 0, + ivim_ts_ExteriorLights_highBeamHeadlightsOn = 1, + ivim_ts_ExteriorLights_leftTurnSignalOn = 2, + ivim_ts_ExteriorLights_rightTurnSignalOn = 3, + ivim_ts_ExteriorLights_daytimeRunningLightsOn = 4, + ivim_ts_ExteriorLights_reverseLightOn = 5, + ivim_ts_ExteriorLights_fogLightOn = 6, + ivim_ts_ExteriorLights_parkingLightsOn = 7 +} e_ivim_ts_ExteriorLights; + +/* ivim_ts_ExteriorLights */ +typedef BIT_STRING_t ivim_ts_ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ExteriorLights; +asn_struct_free_f ivim_ts_ExteriorLights_free; +asn_struct_print_f ivim_ts_ExteriorLights_print; +asn_constr_check_f ivim_ts_ExteriorLights_constraint; +per_type_decoder_f ivim_ts_ExteriorLights_decode_uper; +per_type_encoder_f ivim_ts_ExteriorLights_encode_uper; +per_type_decoder_f ivim_ts_ExteriorLights_decode_aper; +per_type_encoder_f ivim_ts_ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ExteriorLights_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FreightContainerData.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FreightContainerData.h new file mode 100644 index 000000000..4484a1640 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FreightContainerData.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_FreightContainerData_H_ +#define _ivim_ts_FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_FreightContainerData */ +typedef struct ivim_ts_FreightContainerData { + BIT_STRING_t ownerCode; + long serialNumber; + long checkDigit; + long length; + long height; + long width; + long containerTypeCode; + long maximumGrossMass; + long tareMass; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_FreightContainerData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FrictionCoefficient.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FrictionCoefficient.h new file mode 100644 index 000000000..d47f1f66a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FrictionCoefficient.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_FrictionCoefficient_H_ +#define _ivim_ts_FrictionCoefficient_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_FrictionCoefficient */ +typedef long ivim_ts_FrictionCoefficient_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_FrictionCoefficient_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_FrictionCoefficient; +asn_struct_free_f ivim_ts_FrictionCoefficient_free; +asn_struct_print_f ivim_ts_FrictionCoefficient_print; +asn_constr_check_f ivim_ts_FrictionCoefficient_constraint; +per_type_decoder_f ivim_ts_FrictionCoefficient_decode_uper; +per_type_encoder_f ivim_ts_FrictionCoefficient_encode_uper; +per_type_decoder_f ivim_ts_FrictionCoefficient_decode_aper; +per_type_encoder_f ivim_ts_FrictionCoefficient_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_FrictionCoefficient_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FuelType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FuelType.h new file mode 100644 index 000000000..329d21258 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FuelType.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_FuelType_H_ +#define _ivim_ts_FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_FuelType */ +typedef long ivim_ts_FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_FuelType; +asn_struct_free_f ivim_ts_FuelType_free; +asn_struct_print_f ivim_ts_FuelType_print; +asn_constr_check_f ivim_ts_FuelType_constraint; +per_type_decoder_f ivim_ts_FuelType_decode_uper; +per_type_encoder_f ivim_ts_FuelType_encode_uper; +per_type_decoder_f ivim_ts_FuelType_decode_aper; +per_type_encoder_f ivim_ts_FuelType_encode_aper; +#define ivim_ts_FuelType_unknownFuel ((ivim_ts_FuelType_t)0) +#define ivim_ts_FuelType_gasoline ((ivim_ts_FuelType_t)1) +#define ivim_ts_FuelType_ethanol ((ivim_ts_FuelType_t)2) +#define ivim_ts_FuelType_diesel ((ivim_ts_FuelType_t)3) +#define ivim_ts_FuelType_electric ((ivim_ts_FuelType_t)4) +#define ivim_ts_FuelType_hybrid ((ivim_ts_FuelType_t)5) +#define ivim_ts_FuelType_hydrogen ((ivim_ts_FuelType_t)6) +#define ivim_ts_FuelType_natGasLiquid ((ivim_ts_FuelType_t)7) +#define ivim_ts_FuelType_natGasComp ((ivim_ts_FuelType_t)8) +#define ivim_ts_FuelType_propane ((ivim_ts_FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_FuelType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FullPositionVector.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FullPositionVector.h new file mode 100644 index 000000000..11f33df5e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FullPositionVector.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_FullPositionVector_H_ +#define _ivim_ts_FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Elevation.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingDSRC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DDateTime; +struct ivim_ts_TransmissionAndSpeed; +struct ivim_ts_PositionalAccuracy; +struct ivim_ts_PositionConfidenceSet; +struct ivim_ts_SpeedandHeadingandThrottleConfidence; + +/* ivim_ts_FullPositionVector */ +typedef struct ivim_ts_FullPositionVector { + struct ivim_ts_DDateTime *utcTime; /* OPTIONAL */ + ivim_ts_Longitude_t Long; + ivim_ts_Latitude_t lat; + ivim_ts_Elevation_t *elevation; /* OPTIONAL */ + ivim_ts_HeadingDSRC_t *heading; /* OPTIONAL */ + struct ivim_ts_TransmissionAndSpeed *speed; /* OPTIONAL */ + struct ivim_ts_PositionalAccuracy *posAccuracy; /* OPTIONAL */ + ivim_ts_TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct ivim_ts_PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct ivim_ts_SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DDateTime.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TransmissionAndSpeed.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PositionalAccuracy.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PositionConfidenceSet.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedandHeadingandThrottleConfidence.h" + +#endif /* _ivim_ts_FullPositionVector_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FutureCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FutureCharacteristics.h new file mode 100644 index 000000000..78bc024a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_FutureCharacteristics.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_FutureCharacteristics_H_ +#define _ivim_ts_FutureCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_FutureCharacteristics { + ivim_ts_FutureCharacteristics_noEntry = 0, + ivim_ts_FutureCharacteristics_airSuspension = 1 +} e_ivim_ts_FutureCharacteristics; + +/* ivim_ts_FutureCharacteristics */ +typedef long ivim_ts_FutureCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_FutureCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_FutureCharacteristics; +asn_struct_free_f ivim_ts_FutureCharacteristics_free; +asn_struct_print_f ivim_ts_FutureCharacteristics_print; +asn_constr_check_f ivim_ts_FutureCharacteristics_constraint; +per_type_decoder_f ivim_ts_FutureCharacteristics_decode_uper; +per_type_encoder_f ivim_ts_FutureCharacteristics_encode_uper; +per_type_decoder_f ivim_ts_FutureCharacteristics_decode_aper; +per_type_encoder_f ivim_ts_FutureCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_FutureCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GNSSstatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GNSSstatus.h new file mode 100644 index 000000000..f15d21aa6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GNSSstatus.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GNSSstatus_H_ +#define _ivim_ts_GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_GNSSstatus { + ivim_ts_GNSSstatus_unavailable = 0, + ivim_ts_GNSSstatus_isHealthy = 1, + ivim_ts_GNSSstatus_isMonitored = 2, + ivim_ts_GNSSstatus_baseStationType = 3, + ivim_ts_GNSSstatus_aPDOPofUnder5 = 4, + ivim_ts_GNSSstatus_inViewOfUnder5 = 5, + ivim_ts_GNSSstatus_localCorrectionsPresent = 6, + ivim_ts_GNSSstatus_networkCorrectionsPresent = 7 +} e_ivim_ts_GNSSstatus; + +/* ivim_ts_GNSSstatus */ +typedef BIT_STRING_t ivim_ts_GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GNSSstatus; +asn_struct_free_f ivim_ts_GNSSstatus_free; +asn_struct_print_f ivim_ts_GNSSstatus_print; +asn_constr_check_f ivim_ts_GNSSstatus_constraint; +per_type_decoder_f ivim_ts_GNSSstatus_decode_uper; +per_type_encoder_f ivim_ts_GNSSstatus_encode_uper; +per_type_decoder_f ivim_ts_GNSSstatus_decode_aper; +per_type_encoder_f ivim_ts_GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_GNSSstatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GapBetweenVehicles.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GapBetweenVehicles.h new file mode 100644 index 000000000..c13d3f212 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GapBetweenVehicles.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GapBetweenVehicles_H_ +#define _ivim_ts_GapBetweenVehicles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_GapBetweenVehicles */ +typedef long ivim_ts_GapBetweenVehicles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_GapBetweenVehicles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GapBetweenVehicles; +asn_struct_free_f ivim_ts_GapBetweenVehicles_free; +asn_struct_print_f ivim_ts_GapBetweenVehicles_print; +asn_constr_check_f ivim_ts_GapBetweenVehicles_constraint; +per_type_decoder_f ivim_ts_GapBetweenVehicles_decode_uper; +per_type_encoder_f ivim_ts_GapBetweenVehicles_encode_uper; +per_type_decoder_f ivim_ts_GapBetweenVehicles_decode_aper; +per_type_encoder_f ivim_ts_GapBetweenVehicles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_GapBetweenVehicles_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddAttribute.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddAttribute.h new file mode 100644 index 000000000..7e4d41c3e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddAttribute.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GddAttribute_H_ +#define _ivim_ts_GddAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-exemptedApplicablePeriod.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-directionalFlowOfLane.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicableVehicleDimensions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-speedLimits.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-rateOfIncline.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-distanceBetweenVehicles.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-section.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-numberOfLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_GddAttribute_PR { + ivim_ts_GddAttribute_PR_NOTHING, /* No components present */ + ivim_ts_GddAttribute_PR_dtm, + ivim_ts_GddAttribute_PR_edt, + ivim_ts_GddAttribute_PR_dfl, + ivim_ts_GddAttribute_PR_ved, + ivim_ts_GddAttribute_PR_spe, + ivim_ts_GddAttribute_PR_roi, + ivim_ts_GddAttribute_PR_dbv, + ivim_ts_GddAttribute_PR_ddd, + ivim_ts_GddAttribute_PR_set, + ivim_ts_GddAttribute_PR_nol +} ivim_ts_GddAttribute_PR; + +/* Forward declarations */ +struct ivim_ts_InternationalSign_destinationInformation; + +/* ivim_ts_GddAttribute */ +typedef struct ivim_ts_GddAttribute { + ivim_ts_GddAttribute_PR present; + union ivim_ts_GddAttribute_u { + ivim_ts_InternationalSign_applicablePeriod_t dtm; + ivim_ts_InternationalSign_exemptedApplicablePeriod_t edt; + ivim_ts_InternationalSign_directionalFlowOfLane_t dfl; + ivim_ts_InternationalSign_applicableVehicleDimensions_t ved; + ivim_ts_InternationalSign_speedLimits_t spe; + ivim_ts_InternationalSign_rateOfIncline_t roi; + ivim_ts_InternationalSign_distanceBetweenVehicles_t dbv; + struct ivim_ts_InternationalSign_destinationInformation *ddd; + ivim_ts_InternationalSign_section_t set; + ivim_ts_InternationalSign_numberOfLane_t nol; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GddAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GddAttribute; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_GddAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GddAttribute_1[10]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_GddAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-destinationInformation.h" + +#endif /* _ivim_ts_GddAttribute_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddAttributes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddAttributes.h new file mode 100644 index 000000000..f2a0f1e12 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddAttributes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GddAttributes_H_ +#define _ivim_ts_GddAttributes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_GddAttribute; + +/* ivim_ts_GddAttributes */ +typedef struct ivim_ts_GddAttributes { + A_SEQUENCE_OF(struct ivim_ts_GddAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GddAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GddAttributes; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_GddAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GddAttributes_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_GddAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GddAttribute.h" + +#endif /* _ivim_ts_GddAttributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddStructure.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddStructure.h new file mode 100644 index 000000000..739eff968 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GddStructure.h @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GddStructure_H_ +#define _ivim_ts_GddStructure_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_GddStructure__pictogramCode__serviceCategoryCode_PR { + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode_PR_NOTHING, /* No components present */ + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode_PR_trafficSignPictogram, + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode_PR_publicFacilitiesPictogram, + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode_PR_ambientOrRoadConditionPictogram + /* Extensions may appear below */ + +} ivim_ts_GddStructure__pictogramCode__serviceCategoryCode_PR; +typedef enum ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram { + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram_dangerWarning = 0, + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram_regulatory = 1, + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram_informative = 2 + /* + * Enumeration is extensible + */ +} e_ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__trafficSignPictogram; +typedef enum ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram { + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram_publicFacilities = 0 + /* + * Enumeration is extensible + */ +} e_ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram; +typedef enum ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram { + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_ambientCondition = 0, + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_roadCondition = 1 + /* + * Enumeration is extensible + */ +} e_ivim_ts_GddStructure__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram; + +/* Forward declarations */ +struct ivim_ts_GddAttributes; + +/* ivim_ts_GddStructure */ +typedef struct ivim_ts_GddStructure { + struct ivim_ts_GddStructure__pictogramCode { + OCTET_STRING_t *countryCode; /* OPTIONAL */ + struct ivim_ts_GddStructure__pictogramCode__serviceCategoryCode { + ivim_ts_GddStructure__pictogramCode__serviceCategoryCode_PR present; + union ivim_ts_GddStructure__ivim_ts_pictogramCode__ivim_ts_serviceCategoryCode_u { + long trafficSignPictogram; + long publicFacilitiesPictogram; + long ambientOrRoadConditionPictogram; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } serviceCategoryCode; + struct ivim_ts_GddStructure__pictogramCode__pictogramCategoryCode { + long nature; + long serialNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pictogramCategoryCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pictogramCode; + struct ivim_ts_GddAttributes *attributes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GddStructure_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_trafficSignPictogram_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_publicFacilitiesPictogram_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GddStructure; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GddStructure_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GddStructure_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GddAttributes.h" + +#endif /* _ivim_ts_GddStructure_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeneralIviContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeneralIviContainer.h new file mode 100644 index 000000000..0ce01735d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeneralIviContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GeneralIviContainer_H_ +#define _ivim_ts_GeneralIviContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_GicPart; + +/* ivim_ts_GeneralIviContainer */ +typedef struct ivim_ts_GeneralIviContainer { + A_SEQUENCE_OF(struct ivim_ts_GicPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GeneralIviContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GeneralIviContainer; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_GeneralIviContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GeneralIviContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_GeneralIviContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GicPart.h" + +#endif /* _ivim_ts_GeneralIviContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GenericLane.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GenericLane.h new file mode 100644 index 000000000..983ce7422 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GenericLane.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GenericLane_H_ +#define _ivim_ts_GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ApproachID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AllowedManeuvers.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ConnectsToList; +struct ivim_ts_OverlayLaneList; +struct ivim_ts_Reg_GenericLane; + +/* ivim_ts_GenericLane */ +typedef struct ivim_ts_GenericLane { + ivim_ts_LaneID_t laneID; + ivim_ts_DescriptiveName_t *name; /* OPTIONAL */ + ivim_ts_ApproachID_t *ingressApproach; /* OPTIONAL */ + ivim_ts_ApproachID_t *egressApproach; /* OPTIONAL */ + ivim_ts_LaneAttributes_t laneAttributes; + ivim_ts_AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + ivim_ts_NodeListXY_t nodeList; + struct ivim_ts_ConnectsToList *connectsTo; /* OPTIONAL */ + struct ivim_ts_OverlayLaneList *overlays; /* OPTIONAL */ + struct ivim_ts_GenericLane__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectsToList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_OverlayLaneList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_GenericLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeoGraphicalLimit.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeoGraphicalLimit.h new file mode 100644 index 000000000..74a7f8255 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeoGraphicalLimit.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GeoGraphicalLimit_H_ +#define _ivim_ts_GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_GeoGraphicalLimit { + ivim_ts_GeoGraphicalLimit_globalRestriction = 0, + ivim_ts_GeoGraphicalLimit_regionalRestriction = 1, + ivim_ts_GeoGraphicalLimit_nationalRestriction = 2, + ivim_ts_GeoGraphicalLimit_district = 3, + ivim_ts_GeoGraphicalLimit_issuerCoverageRestriction = 4, + ivim_ts_GeoGraphicalLimit_reservedForCEN1 = 5, + ivim_ts_GeoGraphicalLimit_reservedForCEN2 = 6, + ivim_ts_GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_ivim_ts_GeoGraphicalLimit; + +/* ivim_ts_GeoGraphicalLimit */ +typedef BIT_STRING_t ivim_ts_GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GeoGraphicalLimit; +asn_struct_free_f ivim_ts_GeoGraphicalLimit_free; +asn_struct_print_f ivim_ts_GeoGraphicalLimit_print; +asn_constr_check_f ivim_ts_GeoGraphicalLimit_constraint; +per_type_decoder_f ivim_ts_GeoGraphicalLimit_decode_uper; +per_type_encoder_f ivim_ts_GeoGraphicalLimit_encode_uper; +per_type_decoder_f ivim_ts_GeoGraphicalLimit_decode_aper; +per_type_encoder_f ivim_ts_GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_GeoGraphicalLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeographicLocationContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeographicLocationContainer.h new file mode 100644 index 000000000..d4276531c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GeographicLocationContainer.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GeographicLocationContainer_H_ +#define _ivim_ts_GeographicLocationContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ReferencePosition.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TimestampIts.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_GlcParts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Heading; +struct ivim_ts_Speed; + +/* ivim_ts_GeographicLocationContainer */ +typedef struct ivim_ts_GeographicLocationContainer { + ivim_ts_ReferencePosition_t referencePosition; + ivim_ts_TimestampIts_t *referencePositionTime; /* OPTIONAL */ + struct ivim_ts_Heading *referencePositionHeading; /* OPTIONAL */ + struct ivim_ts_Speed *referencePositionSpeed; /* OPTIONAL */ + ivim_ts_GlcParts_t parts; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GeographicLocationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GeographicLocationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GeographicLocationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GeographicLocationContainer_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Heading.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Speed.h" + +#endif /* _ivim_ts_GeographicLocationContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetInstanceRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetInstanceRq.h new file mode 100644 index 000000000..acbd5f22c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetInstanceRq.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GetInstanceRq_H_ +#define _ivim_ts_GetInstanceRq_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_AttributeIdList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_GetInstanceRq */ +typedef struct ivim_ts_GetInstanceRq { + long posOfFirstInstance; + long posOfLastInstance; + ivim_ts_AttributeIdList_t attributeIdList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GetInstanceRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GetInstanceRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_GetInstanceRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetInstanceRs.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetInstanceRs.h new file mode 100644 index 000000000..bb74660ee --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetInstanceRs.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GetInstanceRs_H_ +#define _ivim_ts_GetInstanceRs_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_GetInstanceRs_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetStampedRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetStampedRq.h new file mode 100644 index 000000000..49dcb2d74 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetStampedRq.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GetStampedRq_H_ +#define _ivim_ts_GetStampedRq_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AttributeIdList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_GetStampedRq */ +typedef struct ivim_ts_GetStampedRq { + ivim_ts_AttributeIdList_t attributeIdList; + OCTET_STRING_t nonce; + long keyRef; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GetStampedRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GetStampedRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_GetStampedRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetStampedRs.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetStampedRs.h new file mode 100644 index 000000000..6f7fbacbb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GetStampedRs.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GetStampedRs_H_ +#define _ivim_ts_GetStampedRs_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_GetStampedRs_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GicPart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GicPart.h new file mode 100644 index 000000000..4541d328a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GicPart.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GicPart_H_ +#define _ivim_ts_GicPart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Direction.h" +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_IviType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IviPurpose.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneStatus.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IVI_DriverCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSignCodes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ZoneIds; +struct ivim_ts_VarLengthNumber; +struct ivim_ts_LanePositions; +struct ivim_ts_VehicleCharacteristicsList; +struct ivim_ts_ConstraintTextLines1; + +/* ivim_ts_GicPart */ +typedef struct ivim_ts_GicPart { + struct ivim_ts_ZoneIds *detectionZoneIds; /* OPTIONAL */ + struct ivim_ts_VarLengthNumber *its_Rrid; /* OPTIONAL */ + struct ivim_ts_ZoneIds *relevanceZoneIds; /* OPTIONAL */ + ivim_ts_Direction_t *direction; /* OPTIONAL */ + struct ivim_ts_ZoneIds *driverAwarenessZoneIds; /* OPTIONAL */ + long *minimumAwarenessTime; /* OPTIONAL */ + struct ivim_ts_LanePositions *applicableLanes; /* OPTIONAL */ + ivim_ts_IviType_t iviType; + ivim_ts_IviPurpose_t *iviPurpose; /* OPTIONAL */ + ivim_ts_LaneStatus_t *laneStatus; /* OPTIONAL */ + struct ivim_ts_VehicleCharacteristicsList *vehicleCharacteristics; /* OPTIONAL */ + ivim_ts_IVI_DriverCharacteristics_t *driverCharacteristics; /* OPTIONAL */ + long *layoutId; /* OPTIONAL */ + long *preStoredlayoutId; /* OPTIONAL */ + ivim_ts_RoadSignCodes_t roadSignCodes; + struct ivim_ts_ConstraintTextLines1 *extraText; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GicPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GicPart; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GicPart_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GicPart_1[16]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePositions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines1.h" + +#endif /* _ivim_ts_GicPart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GlcPart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GlcPart.h new file mode 100644 index 000000000..40687a92e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GlcPart.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GlcPart_H_ +#define _ivim_ts_GlcPart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Zid.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePosition.h" +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Zone; + +/* ivim_ts_GlcPart */ +typedef struct ivim_ts_GlcPart { + ivim_ts_Zid_t zoneId; + ivim_ts_LanePosition_t *laneNumber; /* OPTIONAL */ + long *zoneExtension; /* OPTIONAL */ + ivim_ts_HeadingValue_t *zoneHeading; /* OPTIONAL */ + struct ivim_ts_Zone *zone; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GlcPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GlcPart; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GlcPart_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GlcPart_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Zone.h" + +#endif /* _ivim_ts_GlcPart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GlcParts.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GlcParts.h new file mode 100644 index 000000000..3e0ca1f18 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GlcParts.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GlcParts_H_ +#define _ivim_ts_GlcParts_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_GlcPart; + +/* ivim_ts_GlcParts */ +typedef struct ivim_ts_GlcParts { + A_SEQUENCE_OF(struct ivim_ts_GlcPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_GlcParts_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GlcParts; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_GlcParts_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_GlcParts_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_GlcParts_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GlcPart.h" + +#endif /* _ivim_ts_GlcParts_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GoodsType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GoodsType.h new file mode 100644 index 000000000..c96a57be3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_GoodsType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_GoodsType_H_ +#define _ivim_ts_GoodsType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_GoodsType { + ivim_ts_GoodsType_ammunition = 0, + ivim_ts_GoodsType_chemicals = 1, + ivim_ts_GoodsType_empty = 2, + ivim_ts_GoodsType_fuel = 3, + ivim_ts_GoodsType_glass = 4, + ivim_ts_GoodsType_dangerous = 5, + ivim_ts_GoodsType_liquid = 6, + ivim_ts_GoodsType_liveStock = 7, + ivim_ts_GoodsType_dangerousForPeople = 8, + ivim_ts_GoodsType_dangerousForTheEnvironment = 9, + ivim_ts_GoodsType_dangerousForWater = 10, + ivim_ts_GoodsType_perishableProducts = 11, + ivim_ts_GoodsType_pharmaceutical = 12, + ivim_ts_GoodsType_vehicles = 13 +} e_ivim_ts_GoodsType; + +/* ivim_ts_GoodsType */ +typedef long ivim_ts_GoodsType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_GoodsType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_GoodsType; +asn_struct_free_f ivim_ts_GoodsType_free; +asn_struct_print_f ivim_ts_GoodsType_print; +asn_constr_check_f ivim_ts_GoodsType_constraint; +per_type_decoder_f ivim_ts_GoodsType_decode_uper; +per_type_encoder_f ivim_ts_GoodsType_encode_uper; +per_type_decoder_f ivim_ts_GoodsType_decode_aper; +per_type_encoder_f ivim_ts_GoodsType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_GoodsType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HardShoulderStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HardShoulderStatus.h new file mode 100644 index 000000000..f6efbab64 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HardShoulderStatus.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HardShoulderStatus_H_ +#define _ivim_ts_HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HardShoulderStatus { + ivim_ts_HardShoulderStatus_availableForStopping = 0, + ivim_ts_HardShoulderStatus_closed = 1, + ivim_ts_HardShoulderStatus_availableForDriving = 2 +} e_ivim_ts_HardShoulderStatus; + +/* ivim_ts_HardShoulderStatus */ +typedef long ivim_ts_HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_HardShoulderStatus_specs_1; +asn_struct_free_f ivim_ts_HardShoulderStatus_free; +asn_struct_print_f ivim_ts_HardShoulderStatus_print; +asn_constr_check_f ivim_ts_HardShoulderStatus_constraint; +per_type_decoder_f ivim_ts_HardShoulderStatus_decode_uper; +per_type_encoder_f ivim_ts_HardShoulderStatus_encode_uper; +per_type_decoder_f ivim_ts_HardShoulderStatus_decode_aper; +per_type_encoder_f ivim_ts_HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HardShoulderStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..ed4883f95 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode { + ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* ivim_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +per_type_decoder_f ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-DangerousCurveSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 000000000..7c4b95466 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HazardousLocation_DangerousCurveSubCauseCode { + ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode; + +/* ivim_ts_HazardousLocation-DangerousCurveSubCauseCode */ +typedef long ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_constraint; +per_type_decoder_f ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..6bdb7f1b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode { + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* ivim_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +per_type_decoder_f ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-SurfaceConditionSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 000000000..2f7e75010 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode { + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode; + +/* ivim_ts_HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_constraint; +per_type_decoder_f ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Heading.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Heading.h new file mode 100644 index 000000000..19c738d53 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Heading.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Heading_H_ +#define _ivim_ts_Heading_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Heading */ +typedef struct ivim_ts_Heading { + ivim_ts_HeadingValue_t headingValue; + ivim_ts_HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Heading; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Heading_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Heading_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Heading_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidence.h new file mode 100644 index 000000000..262c3ae76 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidence.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HeadingConfidence_H_ +#define _ivim_ts_HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HeadingConfidence { + ivim_ts_HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + ivim_ts_HeadingConfidence_equalOrWithinOneDegree = 10, + ivim_ts_HeadingConfidence_outOfRange = 126, + ivim_ts_HeadingConfidence_unavailable = 127 +} e_ivim_ts_HeadingConfidence; + +/* ivim_ts_HeadingConfidence */ +typedef long ivim_ts_HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeadingConfidence; +asn_struct_free_f ivim_ts_HeadingConfidence_free; +asn_struct_print_f ivim_ts_HeadingConfidence_print; +asn_constr_check_f ivim_ts_HeadingConfidence_constraint; +per_type_decoder_f ivim_ts_HeadingConfidence_decode_uper; +per_type_encoder_f ivim_ts_HeadingConfidence_encode_uper; +per_type_decoder_f ivim_ts_HeadingConfidence_decode_aper; +per_type_encoder_f ivim_ts_HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HeadingConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidenceDSRC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidenceDSRC.h new file mode 100644 index 000000000..9d49f939a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidenceDSRC.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HeadingConfidenceDSRC_H_ +#define _ivim_ts_HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HeadingConfidenceDSRC { + ivim_ts_HeadingConfidenceDSRC_unavailable = 0, + ivim_ts_HeadingConfidenceDSRC_prec10deg = 1, + ivim_ts_HeadingConfidenceDSRC_prec05deg = 2, + ivim_ts_HeadingConfidenceDSRC_prec01deg = 3, + ivim_ts_HeadingConfidenceDSRC_prec0_1deg = 4, + ivim_ts_HeadingConfidenceDSRC_prec0_05deg = 5, + ivim_ts_HeadingConfidenceDSRC_prec0_01deg = 6, + ivim_ts_HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_ivim_ts_HeadingConfidenceDSRC; + +/* ivim_ts_HeadingConfidenceDSRC */ +typedef long ivim_ts_HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f ivim_ts_HeadingConfidenceDSRC_free; +asn_struct_print_f ivim_ts_HeadingConfidenceDSRC_print; +asn_constr_check_f ivim_ts_HeadingConfidenceDSRC_constraint; +per_type_decoder_f ivim_ts_HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f ivim_ts_HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f ivim_ts_HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f ivim_ts_HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HeadingConfidenceDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingDSRC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingDSRC.h new file mode 100644 index 000000000..c1702e9b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingDSRC.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HeadingDSRC_H_ +#define _ivim_ts_HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_HeadingDSRC */ +typedef long ivim_ts_HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeadingDSRC; +asn_struct_free_f ivim_ts_HeadingDSRC_free; +asn_struct_print_f ivim_ts_HeadingDSRC_print; +asn_constr_check_f ivim_ts_HeadingDSRC_constraint; +per_type_decoder_f ivim_ts_HeadingDSRC_decode_uper; +per_type_encoder_f ivim_ts_HeadingDSRC_encode_uper; +per_type_decoder_f ivim_ts_HeadingDSRC_decode_aper; +per_type_encoder_f ivim_ts_HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HeadingDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingValue.h new file mode 100644 index 000000000..4a9b878d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeadingValue.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HeadingValue_H_ +#define _ivim_ts_HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HeadingValue { + ivim_ts_HeadingValue_wgs84North = 0, + ivim_ts_HeadingValue_wgs84East = 900, + ivim_ts_HeadingValue_wgs84South = 1800, + ivim_ts_HeadingValue_wgs84West = 2700, + ivim_ts_HeadingValue_unavailable = 3601 +} e_ivim_ts_HeadingValue; + +/* ivim_ts_HeadingValue */ +typedef long ivim_ts_HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeadingValue; +asn_struct_free_f ivim_ts_HeadingValue_free; +asn_struct_print_f ivim_ts_HeadingValue_print; +asn_constr_check_f ivim_ts_HeadingValue_constraint; +per_type_decoder_f ivim_ts_HeadingValue_decode_uper; +per_type_encoder_f ivim_ts_HeadingValue_encode_uper; +per_type_decoder_f ivim_ts_HeadingValue_decode_aper; +per_type_encoder_f ivim_ts_HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HeadingValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeightLonCarr.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeightLonCarr.h new file mode 100644 index 000000000..95e434b52 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HeightLonCarr.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HeightLonCarr_H_ +#define _ivim_ts_HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HeightLonCarr { + ivim_ts_HeightLonCarr_oneCentimeter = 1, + ivim_ts_HeightLonCarr_unavailable = 100 +} e_ivim_ts_HeightLonCarr; + +/* ivim_ts_HeightLonCarr */ +typedef long ivim_ts_HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeightLonCarr; +asn_struct_free_f ivim_ts_HeightLonCarr_free; +asn_struct_print_f ivim_ts_HeightLonCarr_print; +asn_constr_check_f ivim_ts_HeightLonCarr_constraint; +per_type_decoder_f ivim_ts_HeightLonCarr_decode_uper; +per_type_encoder_f ivim_ts_HeightLonCarr_encode_uper; +per_type_decoder_f ivim_ts_HeightLonCarr_decode_aper; +per_type_encoder_f ivim_ts_HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HeightLonCarr_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HoursMinutes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HoursMinutes.h new file mode 100644 index 000000000..bbbcbfad8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HoursMinutes.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HoursMinutes_H_ +#define _ivim_ts_HoursMinutes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_HoursMinutes */ +typedef struct ivim_ts_HoursMinutes { + long hours; + long mins; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_HoursMinutes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HoursMinutes; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_HoursMinutes_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_HoursMinutes_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HoursMinutes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HumanPresenceOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..04ef33dec --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HumanPresenceOnTheRoadSubCauseCode_H_ +#define _ivim_ts_HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HumanPresenceOnTheRoadSubCauseCode { + ivim_ts_HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + ivim_ts_HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + ivim_ts_HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + ivim_ts_HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_ivim_ts_HumanPresenceOnTheRoadSubCauseCode; + +/* ivim_ts_HumanPresenceOnTheRoadSubCauseCode */ +typedef long ivim_ts_HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f ivim_ts_HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f ivim_ts_HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f ivim_ts_HumanPresenceOnTheRoadSubCauseCode_constraint; +per_type_decoder_f ivim_ts_HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HumanProblemSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HumanProblemSubCauseCode.h new file mode 100644 index 000000000..2d8e31896 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_HumanProblemSubCauseCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_HumanProblemSubCauseCode_H_ +#define _ivim_ts_HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_HumanProblemSubCauseCode { + ivim_ts_HumanProblemSubCauseCode_unavailable = 0, + ivim_ts_HumanProblemSubCauseCode_glycemiaProblem = 1, + ivim_ts_HumanProblemSubCauseCode_heartProblem = 2 +} e_ivim_ts_HumanProblemSubCauseCode; + +/* ivim_ts_HumanProblemSubCauseCode */ +typedef long ivim_ts_HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_HumanProblemSubCauseCode; +asn_struct_free_f ivim_ts_HumanProblemSubCauseCode_free; +asn_struct_print_f ivim_ts_HumanProblemSubCauseCode_print; +asn_constr_check_f ivim_ts_HumanProblemSubCauseCode_constraint; +per_type_decoder_f ivim_ts_HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_HumanProblemSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ICC-Id.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ICC-Id.h new file mode 100644 index 000000000..a00f888c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ICC-Id.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ICC_Id_H_ +#define _ivim_ts_ICC_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ICC-Id */ +typedef OCTET_STRING_t ivim_ts_ICC_Id_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ICC_Id; +asn_struct_free_f ivim_ts_ICC_Id_free; +asn_struct_print_f ivim_ts_ICC_Id_print; +asn_constr_check_f ivim_ts_ICC_Id_constraint; +per_type_decoder_f ivim_ts_ICC_Id_decode_uper; +per_type_encoder_f ivim_ts_ICC_Id_encode_uper; +per_type_decoder_f ivim_ts_ICC_Id_decode_aper; +per_type_encoder_f ivim_ts_ICC_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ICC_Id_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attribute.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attribute.h new file mode 100644 index 000000000..a5c898877 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attribute.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ISO14823Attribute_H_ +#define _ivim_ts_ISO14823Attribute_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-exemptedApplicablePeriod.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-directionalFlowOfLane.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicableVehicleDimensions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-speedLimits.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-rateOfIncline.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-distanceBetweenVehicles.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-destinationInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ISO14823Attribute_PR { + ivim_ts_ISO14823Attribute_PR_NOTHING, /* No components present */ + ivim_ts_ISO14823Attribute_PR_dtm, + ivim_ts_ISO14823Attribute_PR_edt, + ivim_ts_ISO14823Attribute_PR_dfl, + ivim_ts_ISO14823Attribute_PR_ved, + ivim_ts_ISO14823Attribute_PR_spe, + ivim_ts_ISO14823Attribute_PR_roi, + ivim_ts_ISO14823Attribute_PR_dbv, + ivim_ts_ISO14823Attribute_PR_ddd +} ivim_ts_ISO14823Attribute_PR; + +/* ivim_ts_ISO14823Attribute */ +typedef struct ivim_ts_ISO14823Attribute { + ivim_ts_ISO14823Attribute_PR present; + union ivim_ts_ISO14823Attribute_u { + ivim_ts_InternationalSign_applicablePeriod_t dtm; + ivim_ts_InternationalSign_exemptedApplicablePeriod_t edt; + ivim_ts_InternationalSign_directionalFlowOfLane_t dfl; + ivim_ts_InternationalSign_applicableVehicleDimensions_t ved; + ivim_ts_InternationalSign_speedLimits_t spe; + ivim_ts_InternationalSign_rateOfIncline_t roi; + ivim_ts_InternationalSign_distanceBetweenVehicles_t dbv; + ivim_ts_InternationalSign_destinationInformation_t ddd; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ISO14823Attribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ISO14823Attribute; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_ISO14823Attribute_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ISO14823Attribute_1[8]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ISO14823Attribute_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ISO14823Attribute_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attributes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attributes.h new file mode 100644 index 000000000..40364f6cd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attributes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ISO14823Attributes_H_ +#define _ivim_ts_ISO14823Attributes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ISO14823Attribute; + +/* ivim_ts_ISO14823Attributes */ +typedef struct ivim_ts_ISO14823Attributes { + A_SEQUENCE_OF(struct ivim_ts_ISO14823Attribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ISO14823Attributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ISO14823Attributes; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ISO14823Attributes_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ISO14823Attributes_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ISO14823Attributes_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attribute.h" + +#endif /* _ivim_ts_ISO14823Attributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Code.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Code.h new file mode 100644 index 000000000..5d463a94b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ISO14823Code.h @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ISO14823Code_H_ +#define _ivim_ts_ISO14823Code_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode_PR { + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode_PR_NOTHING, /* No components present */ + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode_PR_trafficSignPictogram, + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode_PR_publicFacilitiesPictogram, + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode_PR_ambientOrRoadConditionPictogram + /* Extensions may appear below */ + +} ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode_PR; +typedef enum ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram { + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_dangerWarning = 0, + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_regulatory = 1, + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_informative = 2 + /* + * Enumeration is extensible + */ +} e_ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram; +typedef enum ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram { + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram_publicFacilities = 0 + /* + * Enumeration is extensible + */ +} e_ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__publicFacilitiesPictogram; +typedef enum ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram { + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_ambientCondition = 0, + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_roadCondition = 1 + /* + * Enumeration is extensible + */ +} e_ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram; + +/* Forward declarations */ +struct ivim_ts_ISO14823Attributes; + +/* ivim_ts_ISO14823Code */ +typedef struct ivim_ts_ISO14823Code { + struct ivim_ts_ISO14823Code__pictogramCode { + OCTET_STRING_t *countryCode; /* OPTIONAL */ + struct ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode { + ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode_PR present; + union ivim_ts_ISO14823Code__ivim_ts_pictogramCode__ivim_ts_serviceCategoryCode_u { + long trafficSignPictogram; + long publicFacilitiesPictogram; + long ambientOrRoadConditionPictogram; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } serviceCategoryCode; + struct ivim_ts_ISO14823Code__pictogramCode__pictogramCategoryCode { + long nature; + long serialNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pictogramCategoryCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pictogramCode; + struct ivim_ts_ISO14823Attributes *attributes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ISO14823Code_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_trafficSignPictogram_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_publicFacilitiesPictogram_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ISO14823Code; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ISO14823Code_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ISO14823Code_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attributes.h" + +#endif /* _ivim_ts_ISO14823Code_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_StationType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_StationType.h new file mode 100644 index 000000000..a1902c018 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_StationType.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ITS_Container_StationType_H_ +#define _ivim_ts_ITS_Container_StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ITS_Container_StationType { + ivim_ts_ITS_Container_StationType_unknown = 0, + ivim_ts_ITS_Container_StationType_pedestrian = 1, + ivim_ts_ITS_Container_StationType_cyclist = 2, + ivim_ts_ITS_Container_StationType_moped = 3, + ivim_ts_ITS_Container_StationType_motorcycle = 4, + ivim_ts_ITS_Container_StationType_passengerCar = 5, + ivim_ts_ITS_Container_StationType_bus = 6, + ivim_ts_ITS_Container_StationType_lightTruck = 7, + ivim_ts_ITS_Container_StationType_heavyTruck = 8, + ivim_ts_ITS_Container_StationType_trailer = 9, + ivim_ts_ITS_Container_StationType_specialVehicles = 10, + ivim_ts_ITS_Container_StationType_tram = 11, + ivim_ts_ITS_Container_StationType_roadSideUnit = 15 +} e_ivim_ts_ITS_Container_StationType; + +/* ivim_ts_ITS-Container_StationType */ +typedef long ivim_ts_ITS_Container_StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ITS_Container_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ITS_Container_StationType; +asn_struct_free_f ivim_ts_ITS_Container_StationType_free; +asn_struct_print_f ivim_ts_ITS_Container_StationType_print; +asn_constr_check_f ivim_ts_ITS_Container_StationType_constraint; +per_type_decoder_f ivim_ts_ITS_Container_StationType_decode_uper; +per_type_encoder_f ivim_ts_ITS_Container_StationType_encode_uper; +per_type_decoder_f ivim_ts_ITS_Container_StationType_decode_aper; +per_type_encoder_f ivim_ts_ITS_Container_StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ITS_Container_StationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_Temperature.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_Temperature.h new file mode 100644 index 000000000..24c31250d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_Temperature.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ITS_Container_Temperature_H_ +#define _ivim_ts_ITS_Container_Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ITS_Container_Temperature { + ivim_ts_ITS_Container_Temperature_equalOrSmallerThanMinus60Deg = -60, + ivim_ts_ITS_Container_Temperature_oneDegreeCelsius = 1, + ivim_ts_ITS_Container_Temperature_equalOrGreaterThan67Deg = 67 +} e_ivim_ts_ITS_Container_Temperature; + +/* ivim_ts_ITS-Container_Temperature */ +typedef long ivim_ts_ITS_Container_Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ITS_Container_Temperature; +asn_struct_free_f ivim_ts_ITS_Container_Temperature_free; +asn_struct_print_f ivim_ts_ITS_Container_Temperature_print; +asn_constr_check_f ivim_ts_ITS_Container_Temperature_constraint; +per_type_decoder_f ivim_ts_ITS_Container_Temperature_decode_uper; +per_type_encoder_f ivim_ts_ITS_Container_Temperature_encode_uper; +per_type_decoder_f ivim_ts_ITS_Container_Temperature_decode_aper; +per_type_encoder_f ivim_ts_ITS_Container_Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ITS_Container_Temperature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVIM.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVIM.h new file mode 100644 index 000000000..aed6487fa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVIM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVIM-PDU-Descriptions" + * found in "/input/IVIM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IVIM_H_ +#define _ivim_ts_IVIM_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ItsPduHeader.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IviStructure.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_IVIM */ +typedef struct ivim_ts_IVIM { + ivim_ts_ItsPduHeader_t header; + ivim_ts_IviStructure_t ivi; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IVIM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IVIM; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IVIM_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_DriverCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_DriverCharacteristics.h new file mode 100644 index 000000000..744479a33 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_DriverCharacteristics.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IVI_DriverCharacteristics_H_ +#define _ivim_ts_IVI_DriverCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_IVI_DriverCharacteristics { + ivim_ts_IVI_DriverCharacteristics_unexperiencedDrivers = 0, + ivim_ts_IVI_DriverCharacteristics_experiencedDrivers = 1, + ivim_ts_IVI_DriverCharacteristics_rfu1 = 2, + ivim_ts_IVI_DriverCharacteristics_rfu2 = 3 +} e_ivim_ts_IVI_DriverCharacteristics; + +/* ivim_ts_IVI_DriverCharacteristics */ +typedef long ivim_ts_IVI_DriverCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IVI_DriverCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IVI_DriverCharacteristics; +asn_struct_free_f ivim_ts_IVI_DriverCharacteristics_free; +asn_struct_print_f ivim_ts_IVI_DriverCharacteristics_print; +asn_constr_check_f ivim_ts_IVI_DriverCharacteristics_constraint; +per_type_decoder_f ivim_ts_IVI_DriverCharacteristics_decode_uper; +per_type_encoder_f ivim_ts_IVI_DriverCharacteristics_encode_uper; +per_type_decoder_f ivim_ts_IVI_DriverCharacteristics_decode_aper; +per_type_encoder_f ivim_ts_IVI_DriverCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IVI_DriverCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_Temperature.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_Temperature.h new file mode 100644 index 000000000..fdd49f11d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_Temperature.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IVI_Temperature_H_ +#define _ivim_ts_IVI_Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_IVI_Temperature */ +typedef long ivim_ts_IVI_Temperature_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IVI_Temperature_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IVI_Temperature; +asn_struct_free_f ivim_ts_IVI_Temperature_free; +asn_struct_print_f ivim_ts_IVI_Temperature_print; +asn_constr_check_f ivim_ts_IVI_Temperature_constraint; +per_type_decoder_f ivim_ts_IVI_Temperature_decode_uper; +per_type_encoder_f ivim_ts_IVI_Temperature_encode_uper; +per_type_decoder_f ivim_ts_IVI_Temperature_decode_aper; +per_type_encoder_f ivim_ts_IVI_Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IVI_Temperature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_TrailerCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_TrailerCharacteristics.h new file mode 100644 index 000000000..aa565b459 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IVI_TrailerCharacteristics.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IVI_TrailerCharacteristics_H_ +#define _ivim_ts_IVI_TrailerCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_TrailerCharacteristicsFixValuesList; +struct ivim_ts_TrailerCharacteristicsRangesList; + +/* ivim_ts_IVI_TrailerCharacteristics */ +typedef struct ivim_ts_IVI_TrailerCharacteristics { + struct ivim_ts_TrailerCharacteristicsFixValuesList *equalTo; /* OPTIONAL */ + struct ivim_ts_TrailerCharacteristicsFixValuesList *notEqualTo; /* OPTIONAL */ + struct ivim_ts_TrailerCharacteristicsRangesList *ranges; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IVI_TrailerCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IVI_TrailerCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IVI_TrailerCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IVI_TrailerCharacteristics_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsFixValuesList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsRangesList.h" + +#endif /* _ivim_ts_IVI_TrailerCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InformationQuality.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InformationQuality.h new file mode 100644 index 000000000..edfe3773f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InformationQuality.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InformationQuality_H_ +#define _ivim_ts_InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_InformationQuality { + ivim_ts_InformationQuality_unavailable = 0, + ivim_ts_InformationQuality_lowest = 1, + ivim_ts_InformationQuality_highest = 7 +} e_ivim_ts_InformationQuality; + +/* ivim_ts_InformationQuality */ +typedef long ivim_ts_InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InformationQuality; +asn_struct_free_f ivim_ts_InformationQuality_free; +asn_struct_print_f ivim_ts_InformationQuality_print; +asn_constr_check_f ivim_ts_InformationQuality_constraint; +per_type_decoder_f ivim_ts_InformationQuality_decode_uper; +per_type_encoder_f ivim_ts_InformationQuality_encode_uper; +per_type_decoder_f ivim_ts_InformationQuality_decode_aper; +per_type_encoder_f ivim_ts_InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_InformationQuality_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int1.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int1.h new file mode 100644 index 000000000..3aa48bf02 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int1.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Int1_H_ +#define _ivim_ts_Int1_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Int1 */ +typedef long ivim_ts_Int1_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Int1_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Int1; +asn_struct_free_f ivim_ts_Int1_free; +asn_struct_print_f ivim_ts_Int1_print; +asn_constr_check_f ivim_ts_Int1_constraint; +per_type_decoder_f ivim_ts_Int1_decode_uper; +per_type_encoder_f ivim_ts_Int1_encode_uper; +per_type_decoder_f ivim_ts_Int1_decode_aper; +per_type_encoder_f ivim_ts_Int1_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Int1_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int2.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int2.h new file mode 100644 index 000000000..0e36d8b8b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Int2_H_ +#define _ivim_ts_Int2_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Int2 */ +typedef long ivim_ts_Int2_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Int2_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Int2; +asn_struct_free_f ivim_ts_Int2_free; +asn_struct_print_f ivim_ts_Int2_print; +asn_constr_check_f ivim_ts_Int2_constraint; +per_type_decoder_f ivim_ts_Int2_decode_uper; +per_type_encoder_f ivim_ts_Int2_encode_uper; +per_type_decoder_f ivim_ts_Int2_decode_aper; +per_type_encoder_f ivim_ts_Int2_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Int2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int3.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int3.h new file mode 100644 index 000000000..da94590bc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int3.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Int3_H_ +#define _ivim_ts_Int3_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Int3 */ +typedef long ivim_ts_Int3_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Int3_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Int3; +asn_struct_free_f ivim_ts_Int3_free; +asn_struct_print_f ivim_ts_Int3_print; +asn_constr_check_f ivim_ts_Int3_constraint; +per_type_decoder_f ivim_ts_Int3_decode_uper; +per_type_encoder_f ivim_ts_Int3_encode_uper; +per_type_decoder_f ivim_ts_Int3_decode_aper; +per_type_encoder_f ivim_ts_Int3_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Int3_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int4.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int4.h new file mode 100644 index 000000000..cea1f7a6e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Int4.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Int4_H_ +#define _ivim_ts_Int4_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Int4 */ +typedef unsigned long ivim_ts_Int4_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Int4_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Int4; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_Int4_specs_1; +asn_struct_free_f ivim_ts_Int4_free; +asn_struct_print_f ivim_ts_Int4_print; +asn_constr_check_f ivim_ts_Int4_constraint; +per_type_decoder_f ivim_ts_Int4_decode_uper; +per_type_encoder_f ivim_ts_Int4_encode_uper; +per_type_decoder_f ivim_ts_Int4_decode_aper; +per_type_encoder_f ivim_ts_Int4_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Int4_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h new file mode 100644 index 000000000..4eb268b0d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_applicablePeriod_H_ +#define _ivim_ts_InternationalSign_applicablePeriod_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RepeatingPeriodDayTypes.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DayOfWeek.h" +#include +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_MonthDay.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_HoursMinutes.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_HoursMinutes; + +/* ivim_ts_InternationalSign-applicablePeriod */ +typedef struct ivim_ts_InternationalSign_applicablePeriod { + struct ivim_ts_InternationalSign_applicablePeriod__year { + long yearRangeStartYear; + long yearRangeEndYear; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *year; + struct ivim_ts_InternationalSign_applicablePeriod__month_day { + ivim_ts_MonthDay_t dateRangeStartMonthDay; + ivim_ts_MonthDay_t dateRangeEndMonthDay; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *month_day; + ivim_ts_RepeatingPeriodDayTypes_t *repeatingPeriodDayTypes; /* OPTIONAL */ + struct ivim_ts_InternationalSign_applicablePeriod__hourMinutes { + ivim_ts_HoursMinutes_t timeRangeStartTime; + ivim_ts_HoursMinutes_t timeRangeEndTime; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *hourMinutes; + ivim_ts_DayOfWeek_t *dateRangeOfWeek; /* OPTIONAL */ + struct ivim_ts_HoursMinutes *durationHourMinute; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_InternationalSign_applicablePeriod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_applicablePeriod; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_applicablePeriod_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_applicablePeriod_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_HoursMinutes.h" + +#endif /* _ivim_ts_InternationalSign_applicablePeriod_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicableVehicleDimensions.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicableVehicleDimensions.h new file mode 100644 index 000000000..b0fffffee --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicableVehicleDimensions.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_applicableVehicleDimensions_H_ +#define _ivim_ts_InternationalSign_applicableVehicleDimensions_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Distance; +struct ivim_ts_Weight; + +/* ivim_ts_InternationalSign-applicableVehicleDimensions */ +typedef struct ivim_ts_InternationalSign_applicableVehicleDimensions { + struct ivim_ts_Distance *vehicleHeight; /* OPTIONAL */ + struct ivim_ts_Distance *vehicleWidth; /* OPTIONAL */ + struct ivim_ts_Distance *vehicleLength; /* OPTIONAL */ + struct ivim_ts_Weight *vehicleWeight; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_InternationalSign_applicableVehicleDimensions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_applicableVehicleDimensions_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_applicableVehicleDimensions_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Distance.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Weight.h" + +#endif /* _ivim_ts_InternationalSign_applicableVehicleDimensions_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-destinationInformation.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-destinationInformation.h new file mode 100644 index 000000000..c83141ea8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-destinationInformation.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_destinationInformation_H_ +#define _ivim_ts_InternationalSign_destinationInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_DDD_IO_LIST; + +/* ivim_ts_InternationalSign-destinationInformation */ +typedef struct ivim_ts_InternationalSign_destinationInformation { + long *junctionDirection; /* OPTIONAL */ + long *roundaboutCwDirection; /* OPTIONAL */ + long *roundaboutCcwDirection; /* OPTIONAL */ + struct ivim_ts_DDD_IO_LIST *ioList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_InternationalSign_destinationInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_destinationInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_destinationInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_destinationInformation_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DDD-IO-LIST.h" + +#endif /* _ivim_ts_InternationalSign_destinationInformation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-directionalFlowOfLane.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-directionalFlowOfLane.h new file mode 100644 index 000000000..6a9368441 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-directionalFlowOfLane.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_directionalFlowOfLane_H_ +#define _ivim_ts_InternationalSign_directionalFlowOfLane_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_InternationalSign_directionalFlowOfLane { + ivim_ts_InternationalSign_directionalFlowOfLane_sDL = 1, + ivim_ts_InternationalSign_directionalFlowOfLane_sLT = 2, + ivim_ts_InternationalSign_directionalFlowOfLane_sRT = 3, + ivim_ts_InternationalSign_directionalFlowOfLane_lTO = 4, + ivim_ts_InternationalSign_directionalFlowOfLane_rTO = 5, + ivim_ts_InternationalSign_directionalFlowOfLane_cLL = 6, + ivim_ts_InternationalSign_directionalFlowOfLane_cRI = 7, + ivim_ts_InternationalSign_directionalFlowOfLane_oVL = 8 +} e_ivim_ts_InternationalSign_directionalFlowOfLane; + +/* ivim_ts_InternationalSign-directionalFlowOfLane */ +typedef long ivim_ts_InternationalSign_directionalFlowOfLane_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_InternationalSign_directionalFlowOfLane_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane; +asn_struct_free_f ivim_ts_InternationalSign_directionalFlowOfLane_free; +asn_struct_print_f ivim_ts_InternationalSign_directionalFlowOfLane_print; +asn_constr_check_f ivim_ts_InternationalSign_directionalFlowOfLane_constraint; +per_type_decoder_f ivim_ts_InternationalSign_directionalFlowOfLane_decode_uper; +per_type_encoder_f ivim_ts_InternationalSign_directionalFlowOfLane_encode_uper; +per_type_decoder_f ivim_ts_InternationalSign_directionalFlowOfLane_decode_aper; +per_type_encoder_f ivim_ts_InternationalSign_directionalFlowOfLane_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_InternationalSign_directionalFlowOfLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-distanceBetweenVehicles.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-distanceBetweenVehicles.h new file mode 100644 index 000000000..cd62494a1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-distanceBetweenVehicles.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_distanceBetweenVehicles_H_ +#define _ivim_ts_InternationalSign_distanceBetweenVehicles_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Distance.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_InternationalSign-distanceBetweenVehicles */ +typedef ivim_ts_Distance_t ivim_ts_InternationalSign_distanceBetweenVehicles_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles; +asn_struct_free_f ivim_ts_InternationalSign_distanceBetweenVehicles_free; +asn_struct_print_f ivim_ts_InternationalSign_distanceBetweenVehicles_print; +asn_constr_check_f ivim_ts_InternationalSign_distanceBetweenVehicles_constraint; +per_type_decoder_f ivim_ts_InternationalSign_distanceBetweenVehicles_decode_uper; +per_type_encoder_f ivim_ts_InternationalSign_distanceBetweenVehicles_encode_uper; +per_type_decoder_f ivim_ts_InternationalSign_distanceBetweenVehicles_decode_aper; +per_type_encoder_f ivim_ts_InternationalSign_distanceBetweenVehicles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_InternationalSign_distanceBetweenVehicles_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-exemptedApplicablePeriod.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-exemptedApplicablePeriod.h new file mode 100644 index 000000000..69c93ee18 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-exemptedApplicablePeriod.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_exemptedApplicablePeriod_H_ +#define _ivim_ts_InternationalSign_exemptedApplicablePeriod_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_InternationalSign-exemptedApplicablePeriod */ +typedef ivim_ts_InternationalSign_applicablePeriod_t ivim_ts_InternationalSign_exemptedApplicablePeriod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod; +asn_struct_free_f ivim_ts_InternationalSign_exemptedApplicablePeriod_free; +asn_struct_print_f ivim_ts_InternationalSign_exemptedApplicablePeriod_print; +asn_constr_check_f ivim_ts_InternationalSign_exemptedApplicablePeriod_constraint; +per_type_decoder_f ivim_ts_InternationalSign_exemptedApplicablePeriod_decode_uper; +per_type_encoder_f ivim_ts_InternationalSign_exemptedApplicablePeriod_encode_uper; +per_type_decoder_f ivim_ts_InternationalSign_exemptedApplicablePeriod_decode_aper; +per_type_encoder_f ivim_ts_InternationalSign_exemptedApplicablePeriod_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_InternationalSign_exemptedApplicablePeriod_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-numberOfLane.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-numberOfLane.h new file mode 100644 index 000000000..8790f15f2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-numberOfLane.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_numberOfLane_H_ +#define _ivim_ts_InternationalSign_numberOfLane_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_InternationalSign-numberOfLane */ +typedef long ivim_ts_InternationalSign_numberOfLane_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_InternationalSign_numberOfLane_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_numberOfLane; +asn_struct_free_f ivim_ts_InternationalSign_numberOfLane_free; +asn_struct_print_f ivim_ts_InternationalSign_numberOfLane_print; +asn_constr_check_f ivim_ts_InternationalSign_numberOfLane_constraint; +per_type_decoder_f ivim_ts_InternationalSign_numberOfLane_decode_uper; +per_type_encoder_f ivim_ts_InternationalSign_numberOfLane_encode_uper; +per_type_decoder_f ivim_ts_InternationalSign_numberOfLane_decode_aper; +per_type_encoder_f ivim_ts_InternationalSign_numberOfLane_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_InternationalSign_numberOfLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-rateOfIncline.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-rateOfIncline.h new file mode 100644 index 000000000..212129022 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-rateOfIncline.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_rateOfIncline_H_ +#define _ivim_ts_InternationalSign_rateOfIncline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_InternationalSign-rateOfIncline */ +typedef long ivim_ts_InternationalSign_rateOfIncline_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_InternationalSign_rateOfIncline_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_rateOfIncline; +asn_struct_free_f ivim_ts_InternationalSign_rateOfIncline_free; +asn_struct_print_f ivim_ts_InternationalSign_rateOfIncline_print; +asn_constr_check_f ivim_ts_InternationalSign_rateOfIncline_constraint; +per_type_decoder_f ivim_ts_InternationalSign_rateOfIncline_decode_uper; +per_type_encoder_f ivim_ts_InternationalSign_rateOfIncline_encode_uper; +per_type_decoder_f ivim_ts_InternationalSign_rateOfIncline_decode_aper; +per_type_encoder_f ivim_ts_InternationalSign_rateOfIncline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_InternationalSign_rateOfIncline_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-section.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-section.h new file mode 100644 index 000000000..e27aab612 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-section.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_section_H_ +#define _ivim_ts_InternationalSign_section_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Distance; + +/* ivim_ts_InternationalSign-section */ +typedef struct ivim_ts_InternationalSign_section { + struct ivim_ts_Distance *startingPointLength; /* OPTIONAL */ + struct ivim_ts_Distance *continuityLength; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_InternationalSign_section_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_section; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_section_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_section_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Distance.h" + +#endif /* _ivim_ts_InternationalSign_section_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-speedLimits.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-speedLimits.h new file mode 100644 index 000000000..7b38301fe --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-speedLimits.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_InternationalSign_speedLimits_H_ +#define _ivim_ts_InternationalSign_speedLimits_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Code-Units.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_InternationalSign-speedLimits */ +typedef struct ivim_ts_InternationalSign_speedLimits { + long *speedLimitMax; /* OPTIONAL */ + long *speedLimitMin; /* OPTIONAL */ + ivim_ts_Code_Units_t unit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_InternationalSign_speedLimits_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_speedLimits; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_speedLimits_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_speedLimits_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_InternationalSign_speedLimits_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionAccessPoint.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionAccessPoint.h new file mode 100644 index 000000000..3d8d8ee3c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionAccessPoint.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionAccessPoint_H_ +#define _ivim_ts_IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ApproachID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_IntersectionAccessPoint_PR { + ivim_ts_IntersectionAccessPoint_PR_NOTHING, /* No components present */ + ivim_ts_IntersectionAccessPoint_PR_lane, + ivim_ts_IntersectionAccessPoint_PR_approach, + ivim_ts_IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} ivim_ts_IntersectionAccessPoint_PR; + +/* ivim_ts_IntersectionAccessPoint */ +typedef struct ivim_ts_IntersectionAccessPoint { + ivim_ts_IntersectionAccessPoint_PR present; + union ivim_ts_IntersectionAccessPoint_u { + ivim_ts_LaneID_t lane; + ivim_ts_ApproachID_t approach; + ivim_ts_LaneConnectionID_t connection; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IntersectionAccessPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometry.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometry.h new file mode 100644 index 000000000..08b815044 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometry.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionGeometry_H_ +#define _ivim_ts_IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Position3D.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneWidth.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SpeedLimitList; +struct ivim_ts_PreemptPriorityList; +struct ivim_ts_Reg_IntersectionGeometry; + +/* ivim_ts_IntersectionGeometry */ +typedef struct ivim_ts_IntersectionGeometry { + ivim_ts_DescriptiveName_t *name; /* OPTIONAL */ + ivim_ts_IntersectionReferenceID_t id; + ivim_ts_MsgCount_t revision; + ivim_ts_Position3D_t refPoint; + ivim_ts_LaneWidth_t *laneWidth; /* OPTIONAL */ + struct ivim_ts_SpeedLimitList *speedLimits; /* OPTIONAL */ + ivim_ts_LaneList_t laneSet; + struct ivim_ts_PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct ivim_ts_IntersectionGeometry__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PreemptPriorityList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_IntersectionGeometry_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometryList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometryList.h new file mode 100644 index 000000000..15727bddc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometryList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionGeometryList_H_ +#define _ivim_ts_IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_IntersectionGeometry; + +/* ivim_ts_IntersectionGeometryList */ +typedef struct ivim_ts_IntersectionGeometryList { + A_SEQUENCE_OF(struct ivim_ts_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometry.h" + +#endif /* _ivim_ts_IntersectionGeometryList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionID.h new file mode 100644 index 000000000..7eea07a42 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionID_H_ +#define _ivim_ts_IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_IntersectionID */ +typedef long ivim_ts_IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionID; +asn_struct_free_f ivim_ts_IntersectionID_free; +asn_struct_print_f ivim_ts_IntersectionID_print; +asn_constr_check_f ivim_ts_IntersectionID_constraint; +per_type_decoder_f ivim_ts_IntersectionID_decode_uper; +per_type_encoder_f ivim_ts_IntersectionID_encode_uper; +per_type_decoder_f ivim_ts_IntersectionID_decode_aper; +per_type_encoder_f ivim_ts_IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IntersectionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h new file mode 100644 index 000000000..f1d6ddc73 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionReferenceID_H_ +#define _ivim_ts_IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadRegulatorID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_IntersectionReferenceID */ +typedef struct ivim_ts_IntersectionReferenceID { + ivim_ts_RoadRegulatorID_t *region; /* OPTIONAL */ + ivim_ts_IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IntersectionReferenceID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionState-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionState-addGrpC.h new file mode 100644 index 000000000..9da192f1b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionState-addGrpC.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionState_addGrpC_H_ +#define _ivim_ts_IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_PrioritizationResponseList; + +/* ivim_ts_IntersectionState-addGrpC */ +typedef struct ivim_ts_IntersectionState_addGrpC { + struct ivim_ts_PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseList.h" + +#endif /* _ivim_ts_IntersectionState_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionState.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionState.h new file mode 100644 index 000000000..6093aa394 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionState.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionState_H_ +#define _ivim_ts_IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionStatusObject.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DSecond.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_EnabledLaneList; +struct ivim_ts_ManeuverAssistList; +struct ivim_ts_Reg_IntersectionState; + +/* ivim_ts_IntersectionState */ +typedef struct ivim_ts_IntersectionState { + ivim_ts_DescriptiveName_t *name; /* OPTIONAL */ + ivim_ts_IntersectionReferenceID_t id; + ivim_ts_MsgCount_t revision; + ivim_ts_IntersectionStatusObject_t status; + ivim_ts_MinuteOfTheYear_t *moy; /* OPTIONAL */ + ivim_ts_DSecond_t *timeStamp; /* OPTIONAL */ + struct ivim_ts_EnabledLaneList *enabledLanes; /* OPTIONAL */ + ivim_ts_MovementList_t states; + struct ivim_ts_ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct ivim_ts_IntersectionState__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_EnabledLaneList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ManeuverAssistList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_IntersectionState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionStateList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionStateList.h new file mode 100644 index 000000000..d85cec642 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionStateList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionStateList_H_ +#define _ivim_ts_IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_IntersectionState; + +/* ivim_ts_IntersectionStateList */ +typedef struct ivim_ts_IntersectionStateList { + A_SEQUENCE_OF(struct ivim_ts_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionState.h" + +#endif /* _ivim_ts_IntersectionStateList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionStatusObject.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionStatusObject.h new file mode 100644 index 000000000..c10ecdb31 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IntersectionStatusObject.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IntersectionStatusObject_H_ +#define _ivim_ts_IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_IntersectionStatusObject { + ivim_ts_IntersectionStatusObject_manualControlIsEnabled = 0, + ivim_ts_IntersectionStatusObject_stopTimeIsActivated = 1, + ivim_ts_IntersectionStatusObject_failureFlash = 2, + ivim_ts_IntersectionStatusObject_preemptIsActive = 3, + ivim_ts_IntersectionStatusObject_signalPriorityIsActive = 4, + ivim_ts_IntersectionStatusObject_fixedTimeOperation = 5, + ivim_ts_IntersectionStatusObject_trafficDependentOperation = 6, + ivim_ts_IntersectionStatusObject_standbyOperation = 7, + ivim_ts_IntersectionStatusObject_failureMode = 8, + ivim_ts_IntersectionStatusObject_off = 9, + ivim_ts_IntersectionStatusObject_recentMAPmessageUpdate = 10, + ivim_ts_IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + ivim_ts_IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + ivim_ts_IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_ivim_ts_IntersectionStatusObject; + +/* ivim_ts_IntersectionStatusObject */ +typedef BIT_STRING_t ivim_ts_IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionStatusObject; +asn_struct_free_f ivim_ts_IntersectionStatusObject_free; +asn_struct_print_f ivim_ts_IntersectionStatusObject_print; +asn_constr_check_f ivim_ts_IntersectionStatusObject_constraint; +per_type_decoder_f ivim_ts_IntersectionStatusObject_decode_uper; +per_type_encoder_f ivim_ts_IntersectionStatusObject_encode_uper; +per_type_decoder_f ivim_ts_IntersectionStatusObject_decode_aper; +per_type_encoder_f ivim_ts_IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IntersectionStatusObject_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Iso3833VehicleType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Iso3833VehicleType.h new file mode 100644 index 000000000..e6dc37677 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Iso3833VehicleType.h @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Iso3833VehicleType_H_ +#define _ivim_ts_Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Iso3833VehicleType { + ivim_ts_Iso3833VehicleType_passengerCar = 0, + ivim_ts_Iso3833VehicleType_saloon = 1, + ivim_ts_Iso3833VehicleType_convertibleSaloon = 2, + ivim_ts_Iso3833VehicleType_pullmanSaloon = 3, + ivim_ts_Iso3833VehicleType_stationWagon = 4, + ivim_ts_Iso3833VehicleType_truckStationWagon = 5, + ivim_ts_Iso3833VehicleType_coupe = 6, + ivim_ts_Iso3833VehicleType_convertible = 7, + ivim_ts_Iso3833VehicleType_multipurposePassengerCar = 8, + ivim_ts_Iso3833VehicleType_forwardControlPassengerCar = 9, + ivim_ts_Iso3833VehicleType_specialPassengerCar = 10, + ivim_ts_Iso3833VehicleType_bus = 11, + ivim_ts_Iso3833VehicleType_minibus = 12, + ivim_ts_Iso3833VehicleType_urbanBus = 13, + ivim_ts_Iso3833VehicleType_interurbanCoach = 14, + ivim_ts_Iso3833VehicleType_longDistanceCoach = 15, + ivim_ts_Iso3833VehicleType_articulatedBus = 16, + ivim_ts_Iso3833VehicleType_trolleyBus = 17, + ivim_ts_Iso3833VehicleType_specialBus = 18, + ivim_ts_Iso3833VehicleType_commercialVehicle = 19, + ivim_ts_Iso3833VehicleType_specialCommercialVehicle = 20, + ivim_ts_Iso3833VehicleType_specialVehicle = 21, + ivim_ts_Iso3833VehicleType_trailingTowingVehicle = 22, + ivim_ts_Iso3833VehicleType_semiTrailerTowingVehicle = 23, + ivim_ts_Iso3833VehicleType_trailer = 24, + ivim_ts_Iso3833VehicleType_busTrailer = 25, + ivim_ts_Iso3833VehicleType_generalPurposeTrailer = 26, + ivim_ts_Iso3833VehicleType_caravan = 27, + ivim_ts_Iso3833VehicleType_specialTrailer = 28, + ivim_ts_Iso3833VehicleType_semiTrailer = 29, + ivim_ts_Iso3833VehicleType_busSemiTrailer = 30, + ivim_ts_Iso3833VehicleType_generalPurposeSemiTrailer = 31, + ivim_ts_Iso3833VehicleType_specialSemiTrailer = 32, + ivim_ts_Iso3833VehicleType_roadTrain = 33, + ivim_ts_Iso3833VehicleType_passengerRoadTrain = 34, + ivim_ts_Iso3833VehicleType_articulatedRoadTrain = 35, + ivim_ts_Iso3833VehicleType_doubleRoadTrain = 36, + ivim_ts_Iso3833VehicleType_compositeRoadTrain = 37, + ivim_ts_Iso3833VehicleType_specialRoadTrain = 38, + ivim_ts_Iso3833VehicleType_moped = 39, + ivim_ts_Iso3833VehicleType_motorCycle = 40 +} e_ivim_ts_Iso3833VehicleType; + +/* ivim_ts_Iso3833VehicleType */ +typedef long ivim_ts_Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Iso3833VehicleType; +asn_struct_free_f ivim_ts_Iso3833VehicleType_free; +asn_struct_print_f ivim_ts_Iso3833VehicleType_print; +asn_constr_check_f ivim_ts_Iso3833VehicleType_constraint; +per_type_decoder_f ivim_ts_Iso3833VehicleType_decode_uper; +per_type_encoder_f ivim_ts_Iso3833VehicleType_encode_uper; +per_type_decoder_f ivim_ts_Iso3833VehicleType_decode_aper; +per_type_encoder_f ivim_ts_Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Iso3833VehicleType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IssuerIdentifier.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IssuerIdentifier.h new file mode 100644 index 000000000..df8552528 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IssuerIdentifier.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IssuerIdentifier_H_ +#define _ivim_ts_IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_IssuerIdentifier */ +typedef long ivim_ts_IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IssuerIdentifier; +asn_struct_free_f ivim_ts_IssuerIdentifier_free; +asn_struct_print_f ivim_ts_IssuerIdentifier_print; +asn_constr_check_f ivim_ts_IssuerIdentifier_constraint; +per_type_decoder_f ivim_ts_IssuerIdentifier_decode_uper; +per_type_encoder_f ivim_ts_IssuerIdentifier_encode_uper; +per_type_decoder_f ivim_ts_IssuerIdentifier_decode_aper; +per_type_encoder_f ivim_ts_IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IssuerIdentifier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItineraryPath.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItineraryPath.h new file mode 100644 index 000000000..c39552747 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItineraryPath.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ItineraryPath_H_ +#define _ivim_ts_ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ReferencePosition; + +/* ivim_ts_ItineraryPath */ +typedef struct ivim_ts_ItineraryPath { + A_SEQUENCE_OF(struct ivim_ts_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ReferencePosition.h" + +#endif /* _ivim_ts_ItineraryPath_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsPduHeader.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsPduHeader.h new file mode 100644 index 000000000..f03ff1f40 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsPduHeader.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ItsPduHeader_H_ +#define _ivim_ts_ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ItsPduHeader__messageID { + ivim_ts_ItsPduHeader__messageID_denm = 1, + ivim_ts_ItsPduHeader__messageID_cam = 2, + ivim_ts_ItsPduHeader__messageID_poi = 3, + ivim_ts_ItsPduHeader__messageID_spatem = 4, + ivim_ts_ItsPduHeader__messageID_mapem = 5, + ivim_ts_ItsPduHeader__messageID_ivim = 6, + ivim_ts_ItsPduHeader__messageID_ev_rsr = 7, + ivim_ts_ItsPduHeader__messageID_tistpgtransaction = 8, + ivim_ts_ItsPduHeader__messageID_srem = 9, + ivim_ts_ItsPduHeader__messageID_ssem = 10, + ivim_ts_ItsPduHeader__messageID_evcsn = 11, + ivim_ts_ItsPduHeader__messageID_saem = 12, + ivim_ts_ItsPduHeader__messageID_rtcmem = 13 +} e_ivim_ts_ItsPduHeader__messageID; + +/* ivim_ts_ItsPduHeader */ +typedef struct ivim_ts_ItsPduHeader { + long protocolVersion; + long messageID; + ivim_ts_StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ItsPduHeader_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsStationPosition.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsStationPosition.h new file mode 100644 index 000000000..6c97c85d7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsStationPosition.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ItsStationPosition_H_ +#define _ivim_ts_ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_StationID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_NodeOffsetPointXY; + +/* ivim_ts_ItsStationPosition */ +typedef struct ivim_ts_ItsStationPosition { + ivim_ts_StationID_t stationID; + ivim_ts_LaneID_t *laneID; /* OPTIONAL */ + struct ivim_ts_NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + ivim_ts_TimeReference_t *timeReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeOffsetPointXY.h" + +#endif /* _ivim_ts_ItsStationPosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsStationPositionList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsStationPositionList.h new file mode 100644 index 000000000..52c005327 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ItsStationPositionList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ItsStationPositionList_H_ +#define _ivim_ts_ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ItsStationPosition; + +/* ivim_ts_ItsStationPositionList */ +typedef struct ivim_ts_ItsStationPositionList { + A_SEQUENCE_OF(struct ivim_ts_ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ItsStationPosition.h" + +#endif /* _ivim_ts_ItsStationPositionList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviContainer.h new file mode 100644 index 000000000..53b57b7b6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviContainer.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviContainer_H_ +#define _ivim_ts_IviContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GeographicLocationContainer.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_GeneralIviContainer.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadConfigurationContainer.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TextContainer.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LayoutContainer.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleContainer.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MapLocationContainer.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceContainer.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_IviContainer_PR { + ivim_ts_IviContainer_PR_NOTHING, /* No components present */ + ivim_ts_IviContainer_PR_glc, + ivim_ts_IviContainer_PR_giv, + ivim_ts_IviContainer_PR_rcc, + ivim_ts_IviContainer_PR_tc, + ivim_ts_IviContainer_PR_lac, + /* Extensions may appear below */ + ivim_ts_IviContainer_PR_ext1 +} ivim_ts_IviContainer_PR; + +/* ivim_ts_IviContainer */ +typedef struct ivim_ts_IviContainer { + ivim_ts_IviContainer_PR present; + union ivim_ts_IviContainer_u { + ivim_ts_GeographicLocationContainer_t glc; + ivim_ts_GeneralIviContainer_t giv; + ivim_ts_RoadConfigurationContainer_t rcc; + ivim_ts_TextContainer_t tc; + ivim_ts_LayoutContainer_t lac; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ivim_ts_IviContainer__ext1 { + ivim_ts_AutomatedVehicleContainer_t avc; + ivim_ts_MapLocationContainer_t mlc; + ivim_ts_RoadSurfaceContainer_t rsc; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IviContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviContainer; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_IviContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IviContainer_1[6]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_IviContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IviContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviContainers.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviContainers.h new file mode 100644 index 000000000..04698ac9b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviContainers.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviContainers_H_ +#define _ivim_ts_IviContainers_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_IviContainer; + +/* ivim_ts_IviContainers */ +typedef struct ivim_ts_IviContainers { + A_SEQUENCE_OF(struct ivim_ts_IviContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IviContainers_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviContainers; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_IviContainers_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IviContainers_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_IviContainers_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IviContainer.h" + +#endif /* _ivim_ts_IviContainers_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumber.h new file mode 100644 index 000000000..4e0ffc947 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviIdentificationNumber_H_ +#define _ivim_ts_IviIdentificationNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_IviIdentificationNumber */ +typedef long ivim_ts_IviIdentificationNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IviIdentificationNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviIdentificationNumber; +asn_struct_free_f ivim_ts_IviIdentificationNumber_free; +asn_struct_print_f ivim_ts_IviIdentificationNumber_print; +asn_constr_check_f ivim_ts_IviIdentificationNumber_constraint; +per_type_decoder_f ivim_ts_IviIdentificationNumber_decode_uper; +per_type_encoder_f ivim_ts_IviIdentificationNumber_encode_uper; +per_type_decoder_f ivim_ts_IviIdentificationNumber_decode_aper; +per_type_encoder_f ivim_ts_IviIdentificationNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IviIdentificationNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumbers.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumbers.h new file mode 100644 index 000000000..2dd76c2e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumbers.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviIdentificationNumbers_H_ +#define _ivim_ts_IviIdentificationNumbers_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_IviIdentificationNumbers */ +typedef struct ivim_ts_IviIdentificationNumbers { + A_SEQUENCE_OF(ivim_ts_IviIdentificationNumber_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IviIdentificationNumbers_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviIdentificationNumbers; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_IviIdentificationNumbers_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IviIdentificationNumbers_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_IviIdentificationNumbers_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IviIdentificationNumbers_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviLaneWidth.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviLaneWidth.h new file mode 100644 index 000000000..a9cdfbed4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviLaneWidth.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviLaneWidth_H_ +#define _ivim_ts_IviLaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_IviLaneWidth */ +typedef long ivim_ts_IviLaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IviLaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviLaneWidth; +asn_struct_free_f ivim_ts_IviLaneWidth_free; +asn_struct_print_f ivim_ts_IviLaneWidth_print; +asn_constr_check_f ivim_ts_IviLaneWidth_constraint; +per_type_decoder_f ivim_ts_IviLaneWidth_decode_uper; +per_type_encoder_f ivim_ts_IviLaneWidth_encode_uper; +per_type_decoder_f ivim_ts_IviLaneWidth_decode_aper; +per_type_encoder_f ivim_ts_IviLaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IviLaneWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviManagementContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviManagementContainer.h new file mode 100644 index 000000000..cc210b065 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviManagementContainer.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviManagementContainer_H_ +#define _ivim_ts_IviManagementContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Provider.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumber.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TimestampIts.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IviStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_IviIdentificationNumbers; +struct ivim_ts_ConnectedDenms; + +/* ivim_ts_IviManagementContainer */ +typedef struct ivim_ts_IviManagementContainer { + ivim_ts_Provider_t serviceProviderId; + ivim_ts_IviIdentificationNumber_t iviIdentificationNumber; + ivim_ts_TimestampIts_t *timeStamp; /* OPTIONAL */ + ivim_ts_TimestampIts_t *validFrom; /* OPTIONAL */ + ivim_ts_TimestampIts_t *validTo; /* OPTIONAL */ + struct ivim_ts_IviIdentificationNumbers *connectedIviStructures; /* OPTIONAL */ + ivim_ts_IviStatus_t iviStatus; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ivim_ts_ConnectedDenms *connectedDenms; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IviManagementContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviManagementContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IviManagementContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IviManagementContainer_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumbers.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectedDenms.h" + +#endif /* _ivim_ts_IviManagementContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviPurpose.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviPurpose.h new file mode 100644 index 000000000..562296ca2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviPurpose.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviPurpose_H_ +#define _ivim_ts_IviPurpose_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_IviPurpose { + ivim_ts_IviPurpose_safety = 0, + ivim_ts_IviPurpose_environmental = 1, + ivim_ts_IviPurpose_trafficOptimisation = 2 +} e_ivim_ts_IviPurpose; + +/* ivim_ts_IviPurpose */ +typedef long ivim_ts_IviPurpose_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IviPurpose_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviPurpose; +asn_struct_free_f ivim_ts_IviPurpose_free; +asn_struct_print_f ivim_ts_IviPurpose_print; +asn_constr_check_f ivim_ts_IviPurpose_constraint; +per_type_decoder_f ivim_ts_IviPurpose_decode_uper; +per_type_encoder_f ivim_ts_IviPurpose_encode_uper; +per_type_decoder_f ivim_ts_IviPurpose_decode_aper; +per_type_encoder_f ivim_ts_IviPurpose_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IviPurpose_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviStatus.h new file mode 100644 index 000000000..ae44c0a7d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviStatus.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviStatus_H_ +#define _ivim_ts_IviStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_IviStatus { + ivim_ts_IviStatus_new = 0, + ivim_ts_IviStatus_update = 1, + ivim_ts_IviStatus_cancellation = 2, + ivim_ts_IviStatus_negation = 3 +} e_ivim_ts_IviStatus; + +/* ivim_ts_IviStatus */ +typedef long ivim_ts_IviStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IviStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviStatus; +asn_struct_free_f ivim_ts_IviStatus_free; +asn_struct_print_f ivim_ts_IviStatus_print; +asn_constr_check_f ivim_ts_IviStatus_constraint; +per_type_decoder_f ivim_ts_IviStatus_decode_uper; +per_type_encoder_f ivim_ts_IviStatus_encode_uper; +per_type_decoder_f ivim_ts_IviStatus_decode_aper; +per_type_encoder_f ivim_ts_IviStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IviStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviStructure.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviStructure.h new file mode 100644 index 000000000..bb1923a5d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviStructure.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviStructure_H_ +#define _ivim_ts_IviStructure_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IviManagementContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_IviContainers; + +/* ivim_ts_IviStructure */ +typedef struct ivim_ts_IviStructure { + ivim_ts_IviManagementContainer_t mandatory; + struct ivim_ts_IviContainers *optional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_IviStructure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviStructure; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IviStructure_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_IviStructure_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IviContainers.h" + +#endif /* _ivim_ts_IviStructure_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviType.h new file mode 100644 index 000000000..f09235327 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_IviType.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_IviType_H_ +#define _ivim_ts_IviType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_IviType { + ivim_ts_IviType_immediateDangerWarningMessages = 0, + ivim_ts_IviType_regulatoryMessages = 1, + ivim_ts_IviType_trafficRelatedInformationMessages = 2, + ivim_ts_IviType_pollutionMessages = 3, + ivim_ts_IviType_notTrafficRelatedInformationMessages = 4 +} e_ivim_ts_IviType; + +/* ivim_ts_IviType */ +typedef long ivim_ts_IviType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_IviType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviType; +asn_struct_free_f ivim_ts_IviType_free; +asn_struct_print_f ivim_ts_IviType_print; +asn_constr_check_f ivim_ts_IviType_constraint; +per_type_decoder_f ivim_ts_IviType_decode_uper; +per_type_encoder_f ivim_ts_IviType_encode_uper; +per_type_decoder_f ivim_ts_IviType_decode_aper; +per_type_encoder_f ivim_ts_IviType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_IviType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LPN.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LPN.h new file mode 100644 index 000000000..d0a03ee9a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LPN.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LPN_H_ +#define _ivim_ts_LPN_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LPN__alphabetIndicator { + ivim_ts_LPN__alphabetIndicator_latinAlphabetNo1 = 1, + ivim_ts_LPN__alphabetIndicator_latinAlphabetNo2 = 2, + ivim_ts_LPN__alphabetIndicator_latinAlphabetNo3 = 3, + ivim_ts_LPN__alphabetIndicator_latinAlphabetNo4 = 4, + ivim_ts_LPN__alphabetIndicator_latinCyrillicAlphabet = 5, + ivim_ts_LPN__alphabetIndicator_latinArabicAlphabet = 6, + ivim_ts_LPN__alphabetIndicator_latinGreekAlphabet = 7, + ivim_ts_LPN__alphabetIndicator_latinHebrewAlphabet = 8, + ivim_ts_LPN__alphabetIndicator_latinAlphabetNo5 = 9, + ivim_ts_LPN__alphabetIndicator_latinAlphabetNo6 = 10, + ivim_ts_LPN__alphabetIndicator_twoOctetBMP = 11, + ivim_ts_LPN__alphabetIndicator_fourOctetCanonical = 12, + ivim_ts_LPN__alphabetIndicator_reservedForUse1 = 13, + ivim_ts_LPN__alphabetIndicator_reservedForUse2 = 14, + ivim_ts_LPN__alphabetIndicator_reservedForUse3 = 15, + ivim_ts_LPN__alphabetIndicator_reservedForUse4 = 16, + ivim_ts_LPN__alphabetIndicator_reservedForUse5 = 17, + ivim_ts_LPN__alphabetIndicator_reservedForUse6 = 18, + ivim_ts_LPN__alphabetIndicator_reservedForUse7 = 19, + ivim_ts_LPN__alphabetIndicator_reservedForUse8 = 20, + ivim_ts_LPN__alphabetIndicator_reservedForUse9 = 21, + ivim_ts_LPN__alphabetIndicator_reservedForUse10 = 22, + ivim_ts_LPN__alphabetIndicator_reservedForUse11 = 23, + ivim_ts_LPN__alphabetIndicator_reservedForUse12 = 24, + ivim_ts_LPN__alphabetIndicator_reservedForUse13 = 25, + ivim_ts_LPN__alphabetIndicator_reservedForUse14 = 26, + ivim_ts_LPN__alphabetIndicator_reservedForUse15 = 27, + ivim_ts_LPN__alphabetIndicator_reservedForUse16 = 28, + ivim_ts_LPN__alphabetIndicator_reservedForUse17 = 29, + ivim_ts_LPN__alphabetIndicator_reservedForUse18 = 30, + ivim_ts_LPN__alphabetIndicator_reservedForUse19 = 31, + ivim_ts_LPN__alphabetIndicator_reservedForUse20 = 32, + ivim_ts_LPN__alphabetIndicator_reservedForUse21 = 33 +} e_ivim_ts_LPN__alphabetIndicator; + +/* ivim_ts_LPN */ +typedef struct ivim_ts_LPN { + ivim_ts_CountryCode_t countryCode; + long alphabetIndicator; + OCTET_STRING_t licencePlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LPN_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_alphabetIndicator_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LPN; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LPN_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LPN_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LPN_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Barrier.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Barrier.h new file mode 100644 index 000000000..5fda981fe --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Barrier.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_Barrier_H_ +#define _ivim_ts_LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneAttributes_Barrier { + ivim_ts_LaneAttributes_Barrier_median_RevocableLane = 0, + ivim_ts_LaneAttributes_Barrier_median = 1, + ivim_ts_LaneAttributes_Barrier_whiteLineHashing = 2, + ivim_ts_LaneAttributes_Barrier_stripedLines = 3, + ivim_ts_LaneAttributes_Barrier_doubleStripedLines = 4, + ivim_ts_LaneAttributes_Barrier_trafficCones = 5, + ivim_ts_LaneAttributes_Barrier_constructionBarrier = 6, + ivim_ts_LaneAttributes_Barrier_trafficChannels = 7, + ivim_ts_LaneAttributes_Barrier_lowCurbs = 8, + ivim_ts_LaneAttributes_Barrier_highCurbs = 9 +} e_ivim_ts_LaneAttributes_Barrier; + +/* ivim_ts_LaneAttributes-Barrier */ +typedef BIT_STRING_t ivim_ts_LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Barrier; +asn_struct_free_f ivim_ts_LaneAttributes_Barrier_free; +asn_struct_print_f ivim_ts_LaneAttributes_Barrier_print; +asn_constr_check_f ivim_ts_LaneAttributes_Barrier_constraint; +per_type_decoder_f ivim_ts_LaneAttributes_Barrier_decode_uper; +per_type_encoder_f ivim_ts_LaneAttributes_Barrier_encode_uper; +per_type_decoder_f ivim_ts_LaneAttributes_Barrier_decode_aper; +per_type_encoder_f ivim_ts_LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_Barrier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Bike.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Bike.h new file mode 100644 index 000000000..560be4278 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Bike.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_Bike_H_ +#define _ivim_ts_LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneAttributes_Bike { + ivim_ts_LaneAttributes_Bike_bikeRevocableLane = 0, + ivim_ts_LaneAttributes_Bike_pedestrianUseAllowed = 1, + ivim_ts_LaneAttributes_Bike_isBikeFlyOverLane = 2, + ivim_ts_LaneAttributes_Bike_fixedCycleTime = 3, + ivim_ts_LaneAttributes_Bike_biDirectionalCycleTimes = 4, + ivim_ts_LaneAttributes_Bike_isolatedByBarrier = 5, + ivim_ts_LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_ivim_ts_LaneAttributes_Bike; + +/* ivim_ts_LaneAttributes-Bike */ +typedef BIT_STRING_t ivim_ts_LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Bike; +asn_struct_free_f ivim_ts_LaneAttributes_Bike_free; +asn_struct_print_f ivim_ts_LaneAttributes_Bike_print; +asn_constr_check_f ivim_ts_LaneAttributes_Bike_constraint; +per_type_decoder_f ivim_ts_LaneAttributes_Bike_decode_uper; +per_type_encoder_f ivim_ts_LaneAttributes_Bike_encode_uper; +per_type_decoder_f ivim_ts_LaneAttributes_Bike_decode_aper; +per_type_encoder_f ivim_ts_LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_Bike_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Crosswalk.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Crosswalk.h new file mode 100644 index 000000000..16679e8db --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Crosswalk.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_Crosswalk_H_ +#define _ivim_ts_LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneAttributes_Crosswalk { + ivim_ts_LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + ivim_ts_LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + ivim_ts_LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + ivim_ts_LaneAttributes_Crosswalk_fixedCycleTime = 3, + ivim_ts_LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + ivim_ts_LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + ivim_ts_LaneAttributes_Crosswalk_audioSupport = 6, + ivim_ts_LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + ivim_ts_LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_ivim_ts_LaneAttributes_Crosswalk; + +/* ivim_ts_LaneAttributes-Crosswalk */ +typedef BIT_STRING_t ivim_ts_LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Crosswalk; +asn_struct_free_f ivim_ts_LaneAttributes_Crosswalk_free; +asn_struct_print_f ivim_ts_LaneAttributes_Crosswalk_print; +asn_constr_check_f ivim_ts_LaneAttributes_Crosswalk_constraint; +per_type_decoder_f ivim_ts_LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f ivim_ts_LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f ivim_ts_LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f ivim_ts_LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_Crosswalk_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Parking.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Parking.h new file mode 100644 index 000000000..b3a55cb7c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Parking.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_Parking_H_ +#define _ivim_ts_LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneAttributes_Parking { + ivim_ts_LaneAttributes_Parking_parkingRevocableLane = 0, + ivim_ts_LaneAttributes_Parking_parallelParkingInUse = 1, + ivim_ts_LaneAttributes_Parking_headInParkingInUse = 2, + ivim_ts_LaneAttributes_Parking_doNotParkZone = 3, + ivim_ts_LaneAttributes_Parking_parkingForBusUse = 4, + ivim_ts_LaneAttributes_Parking_parkingForTaxiUse = 5, + ivim_ts_LaneAttributes_Parking_noPublicParkingUse = 6 +} e_ivim_ts_LaneAttributes_Parking; + +/* ivim_ts_LaneAttributes-Parking */ +typedef BIT_STRING_t ivim_ts_LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Parking; +asn_struct_free_f ivim_ts_LaneAttributes_Parking_free; +asn_struct_print_f ivim_ts_LaneAttributes_Parking_print; +asn_constr_check_f ivim_ts_LaneAttributes_Parking_constraint; +per_type_decoder_f ivim_ts_LaneAttributes_Parking_decode_uper; +per_type_encoder_f ivim_ts_LaneAttributes_Parking_encode_uper; +per_type_decoder_f ivim_ts_LaneAttributes_Parking_decode_aper; +per_type_encoder_f ivim_ts_LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_Parking_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Sidewalk.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Sidewalk.h new file mode 100644 index 000000000..fd74a2fdd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Sidewalk.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_Sidewalk_H_ +#define _ivim_ts_LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneAttributes_Sidewalk { + ivim_ts_LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + ivim_ts_LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + ivim_ts_LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + ivim_ts_LaneAttributes_Sidewalk_walkBikes = 3 +} e_ivim_ts_LaneAttributes_Sidewalk; + +/* ivim_ts_LaneAttributes-Sidewalk */ +typedef BIT_STRING_t ivim_ts_LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Sidewalk; +asn_struct_free_f ivim_ts_LaneAttributes_Sidewalk_free; +asn_struct_print_f ivim_ts_LaneAttributes_Sidewalk_print; +asn_constr_check_f ivim_ts_LaneAttributes_Sidewalk_constraint; +per_type_decoder_f ivim_ts_LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f ivim_ts_LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f ivim_ts_LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f ivim_ts_LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_Sidewalk_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Striping.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Striping.h new file mode 100644 index 000000000..22891e41a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Striping.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_Striping_H_ +#define _ivim_ts_LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneAttributes_Striping { + ivim_ts_LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + ivim_ts_LaneAttributes_Striping_stripeDrawOnLeft = 1, + ivim_ts_LaneAttributes_Striping_stripeDrawOnRight = 2, + ivim_ts_LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + ivim_ts_LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + ivim_ts_LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_ivim_ts_LaneAttributes_Striping; + +/* ivim_ts_LaneAttributes-Striping */ +typedef BIT_STRING_t ivim_ts_LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Striping; +asn_struct_free_f ivim_ts_LaneAttributes_Striping_free; +asn_struct_print_f ivim_ts_LaneAttributes_Striping_print; +asn_constr_check_f ivim_ts_LaneAttributes_Striping_constraint; +per_type_decoder_f ivim_ts_LaneAttributes_Striping_decode_uper; +per_type_encoder_f ivim_ts_LaneAttributes_Striping_encode_uper; +per_type_decoder_f ivim_ts_LaneAttributes_Striping_decode_aper; +per_type_encoder_f ivim_ts_LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_Striping_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-TrackedVehicle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-TrackedVehicle.h new file mode 100644 index 000000000..b21c4f1a5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-TrackedVehicle.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_TrackedVehicle_H_ +#define _ivim_ts_LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneAttributes_TrackedVehicle { + ivim_ts_LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + ivim_ts_LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + ivim_ts_LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + ivim_ts_LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + ivim_ts_LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_ivim_ts_LaneAttributes_TrackedVehicle; + +/* ivim_ts_LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t ivim_ts_LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle; +asn_struct_free_f ivim_ts_LaneAttributes_TrackedVehicle_free; +asn_struct_print_f ivim_ts_LaneAttributes_TrackedVehicle_print; +asn_constr_check_f ivim_ts_LaneAttributes_TrackedVehicle_constraint; +per_type_decoder_f ivim_ts_LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f ivim_ts_LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f ivim_ts_LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f ivim_ts_LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Vehicle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Vehicle.h new file mode 100644 index 000000000..c4e65d80a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Vehicle.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_Vehicle_H_ +#define _ivim_ts_LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneAttributes_Vehicle { + ivim_ts_LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + ivim_ts_LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + ivim_ts_LaneAttributes_Vehicle_hovLaneUseOnly = 2, + ivim_ts_LaneAttributes_Vehicle_restrictedToBusUse = 3, + ivim_ts_LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + ivim_ts_LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + ivim_ts_LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + ivim_ts_LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_ivim_ts_LaneAttributes_Vehicle; + +/* ivim_ts_LaneAttributes-Vehicle */ +typedef BIT_STRING_t ivim_ts_LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Vehicle; +asn_struct_free_f ivim_ts_LaneAttributes_Vehicle_free; +asn_struct_print_f ivim_ts_LaneAttributes_Vehicle_print; +asn_constr_check_f ivim_ts_LaneAttributes_Vehicle_constraint; +per_type_decoder_f ivim_ts_LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f ivim_ts_LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f ivim_ts_LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f ivim_ts_LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_Vehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-addGrpC.h new file mode 100644 index 000000000..20e76737c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_addGrpC_H_ +#define _ivim_ts_LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleHeight.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LaneAttributes-addGrpC */ +typedef struct ivim_ts_LaneAttributes_addGrpC { + ivim_ts_VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + ivim_ts_VehicleMass_t *maxVehicleWeight; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneAttributes_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes.h new file mode 100644 index 000000000..f959dd855 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneAttributes_H_ +#define _ivim_ts_LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneDirection.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneSharing.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_LaneAttributes; + +/* ivim_ts_LaneAttributes */ +typedef struct ivim_ts_LaneAttributes { + ivim_ts_LaneDirection_t directionalUse; + ivim_ts_LaneSharing_t sharedWith; + ivim_ts_LaneTypeAttributes_t laneType; + struct ivim_ts_Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_LaneAttributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneCharacteristics.h new file mode 100644 index 000000000..2f1b7a686 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneCharacteristics.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneCharacteristics_H_ +#define _ivim_ts_LaneCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DefinitionAccuracy.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneMarkingStatus.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MarkingColour.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneDelimitation.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Zid.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LaneCharacteristics */ +typedef struct ivim_ts_LaneCharacteristics { + ivim_ts_DefinitionAccuracy_t zoneDefinitionAccuracy; + ivim_ts_LaneMarkingStatus_t existinglaneMarkingStatus; + ivim_ts_MarkingColour_t newlaneMarkingColour; + ivim_ts_LaneDelimitation_t laneDelimitationLeft; + ivim_ts_LaneDelimitation_t laneDelimitationRight; + ivim_ts_Zid_t mergingWith; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LaneCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneCharacteristics_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneConfiguration.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneConfiguration.h new file mode 100644 index 000000000..fc4a6ab52 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneConfiguration.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneConfiguration_H_ +#define _ivim_ts_LaneConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_LaneInformation; + +/* ivim_ts_LaneConfiguration */ +typedef struct ivim_ts_LaneConfiguration { + A_SEQUENCE_OF(struct ivim_ts_LaneInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneConfiguration; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_LaneConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneConfiguration_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneConfiguration_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneInformation.h" + +#endif /* _ivim_ts_LaneConfiguration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h new file mode 100644 index 000000000..02ffc5f1b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneConnectionID_H_ +#define _ivim_ts_LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LaneConnectionID */ +typedef long ivim_ts_LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneConnectionID; +asn_struct_free_f ivim_ts_LaneConnectionID_free; +asn_struct_print_f ivim_ts_LaneConnectionID_print; +asn_constr_check_f ivim_ts_LaneConnectionID_constraint; +per_type_decoder_f ivim_ts_LaneConnectionID_decode_uper; +per_type_encoder_f ivim_ts_LaneConnectionID_encode_uper; +per_type_decoder_f ivim_ts_LaneConnectionID_decode_aper; +per_type_encoder_f ivim_ts_LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneConnectionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttribute.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttribute.h new file mode 100644 index 000000000..861757515 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttribute.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneDataAttribute_H_ +#define _ivim_ts_LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaAngle.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadwayCrownAngle.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MergeDivergeNodeAngle.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneDataAttribute_PR { + ivim_ts_LaneDataAttribute_PR_NOTHING, /* No components present */ + ivim_ts_LaneDataAttribute_PR_pathEndPointAngle, + ivim_ts_LaneDataAttribute_PR_laneCrownPointCenter, + ivim_ts_LaneDataAttribute_PR_laneCrownPointLeft, + ivim_ts_LaneDataAttribute_PR_laneCrownPointRight, + ivim_ts_LaneDataAttribute_PR_laneAngle, + ivim_ts_LaneDataAttribute_PR_speedLimits, + ivim_ts_LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} ivim_ts_LaneDataAttribute_PR; + +/* Forward declarations */ +struct ivim_ts_Reg_LaneDataAttribute; + +/* ivim_ts_LaneDataAttribute */ +typedef struct ivim_ts_LaneDataAttribute { + ivim_ts_LaneDataAttribute_PR present; + union ivim_ts_LaneDataAttribute_u { + ivim_ts_DeltaAngle_t pathEndPointAngle; + ivim_ts_RoadwayCrownAngle_t laneCrownPointCenter; + ivim_ts_RoadwayCrownAngle_t laneCrownPointLeft; + ivim_ts_RoadwayCrownAngle_t laneCrownPointRight; + ivim_ts_MergeDivergeNodeAngle_t laneAngle; + ivim_ts_SpeedLimitList_t speedLimits; + struct ivim_ts_LaneDataAttribute__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_LaneDataAttribute_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttributeList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttributeList.h new file mode 100644 index 000000000..e079256db --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttributeList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneDataAttributeList_H_ +#define _ivim_ts_LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_LaneDataAttribute; + +/* ivim_ts_LaneDataAttributeList */ +typedef struct ivim_ts_LaneDataAttributeList { + A_SEQUENCE_OF(struct ivim_ts_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttribute.h" + +#endif /* _ivim_ts_LaneDataAttributeList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDelimitation.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDelimitation.h new file mode 100644 index 000000000..4f9680f47 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDelimitation.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneDelimitation_H_ +#define _ivim_ts_LaneDelimitation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneDelimitation { + ivim_ts_LaneDelimitation_noDelimitation = 0, + ivim_ts_LaneDelimitation_lowLaneSeparator = 1, + ivim_ts_LaneDelimitation_highLaneSeparator = 2, + ivim_ts_LaneDelimitation_wall = 3, + ivim_ts_LaneDelimitation_curb = 4, + ivim_ts_LaneDelimitation_unpaved = 5, + ivim_ts_LaneDelimitation_guardrail = 6 +} e_ivim_ts_LaneDelimitation; + +/* ivim_ts_LaneDelimitation */ +typedef long ivim_ts_LaneDelimitation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneDelimitation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneDelimitation; +asn_struct_free_f ivim_ts_LaneDelimitation_free; +asn_struct_print_f ivim_ts_LaneDelimitation_print; +asn_constr_check_f ivim_ts_LaneDelimitation_constraint; +per_type_decoder_f ivim_ts_LaneDelimitation_decode_uper; +per_type_encoder_f ivim_ts_LaneDelimitation_encode_uper; +per_type_decoder_f ivim_ts_LaneDelimitation_decode_aper; +per_type_encoder_f ivim_ts_LaneDelimitation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneDelimitation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDirection.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDirection.h new file mode 100644 index 000000000..faaec8030 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneDirection.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneDirection_H_ +#define _ivim_ts_LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneDirection { + ivim_ts_LaneDirection_ingressPath = 0, + ivim_ts_LaneDirection_egressPath = 1 +} e_ivim_ts_LaneDirection; + +/* ivim_ts_LaneDirection */ +typedef BIT_STRING_t ivim_ts_LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneDirection; +asn_struct_free_f ivim_ts_LaneDirection_free; +asn_struct_print_f ivim_ts_LaneDirection_print; +asn_constr_check_f ivim_ts_LaneDirection_constraint; +per_type_decoder_f ivim_ts_LaneDirection_decode_uper; +per_type_encoder_f ivim_ts_LaneDirection_encode_uper; +per_type_decoder_f ivim_ts_LaneDirection_decode_aper; +per_type_encoder_f ivim_ts_LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneID.h new file mode 100644 index 000000000..5d99e777b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneID_H_ +#define _ivim_ts_LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LaneID */ +typedef long ivim_ts_LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneID; +asn_struct_free_f ivim_ts_LaneID_free; +asn_struct_print_f ivim_ts_LaneID_print; +asn_constr_check_f ivim_ts_LaneID_constraint; +per_type_decoder_f ivim_ts_LaneID_decode_uper; +per_type_encoder_f ivim_ts_LaneID_encode_uper; +per_type_decoder_f ivim_ts_LaneID_decode_aper; +per_type_encoder_f ivim_ts_LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneIds.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneIds.h new file mode 100644 index 000000000..be539bc5c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneIds.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneIds_H_ +#define _ivim_ts_LaneIds_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LaneIds */ +typedef struct ivim_ts_LaneIds { + A_SEQUENCE_OF(ivim_ts_LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneIds_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneIds; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_LaneIds_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneIds_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneIds_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneIds_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneInformation.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneInformation.h new file mode 100644 index 000000000..4436a0051 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneInformation.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneInformation_H_ +#define _ivim_ts_LaneInformation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePosition.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Direction.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneStatus.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IviLaneWidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_InternationalSign_applicablePeriod; +struct ivim_ts_CompleteVehicleCharacteristics; +struct ivim_ts_ZoneIds; +struct ivim_ts_LaneCharacteristics; +struct ivim_ts_RoadSurfaceStaticCharacteristics; +struct ivim_ts_RoadSurfaceDynamicCharacteristics; + +/* ivim_ts_LaneInformation */ +typedef struct ivim_ts_LaneInformation { + ivim_ts_LanePosition_t laneNumber; + ivim_ts_Direction_t direction; + struct ivim_ts_InternationalSign_applicablePeriod *validity; /* OPTIONAL */ + ivim_ts_LaneType_t laneType; + struct ivim_ts_CompleteVehicleCharacteristics *laneTypeQualifier; /* OPTIONAL */ + ivim_ts_LaneStatus_t laneStatus; + ivim_ts_IviLaneWidth_t *laneWidth; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ivim_ts_LaneInformation__ext1 { + struct ivim_ts_ZoneIds *detectionZoneIds; /* OPTIONAL */ + struct ivim_ts_ZoneIds *relevanceZoneIds; /* OPTIONAL */ + struct ivim_ts_LaneCharacteristics *laneCharacteristics; /* OPTIONAL */ + struct ivim_ts_RoadSurfaceStaticCharacteristics *laneSurfaceStaticCharacteristics; /* OPTIONAL */ + struct ivim_ts_RoadSurfaceDynamicCharacteristics *laneSurfaceDynamicCharacteristics; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LaneInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneInformation_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_CompleteVehicleCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceStaticCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceDynamicCharacteristics.h" + +#endif /* _ivim_ts_LaneInformation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneList.h new file mode 100644 index 000000000..f904c8f33 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneList_H_ +#define _ivim_ts_LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_GenericLane; + +/* ivim_ts_LaneList */ +typedef struct ivim_ts_LaneList { + A_SEQUENCE_OF(struct ivim_ts_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GenericLane.h" + +#endif /* _ivim_ts_LaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneMarkingStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneMarkingStatus.h new file mode 100644 index 000000000..a875705d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneMarkingStatus.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneMarkingStatus_H_ +#define _ivim_ts_LaneMarkingStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LaneMarkingStatus */ +typedef BOOLEAN_t ivim_ts_LaneMarkingStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneMarkingStatus; +asn_struct_free_f ivim_ts_LaneMarkingStatus_free; +asn_struct_print_f ivim_ts_LaneMarkingStatus_print; +asn_constr_check_f ivim_ts_LaneMarkingStatus_constraint; +per_type_decoder_f ivim_ts_LaneMarkingStatus_decode_uper; +per_type_encoder_f ivim_ts_LaneMarkingStatus_encode_uper; +per_type_decoder_f ivim_ts_LaneMarkingStatus_decode_aper; +per_type_encoder_f ivim_ts_LaneMarkingStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneMarkingStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LanePosition.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LanePosition.h new file mode 100644 index 000000000..fbc0a1dd5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LanePosition.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LanePosition_H_ +#define _ivim_ts_LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LanePosition { + ivim_ts_LanePosition_offTheRoad = -1, + ivim_ts_LanePosition_hardShoulder = 0, + ivim_ts_LanePosition_outermostDrivingLane = 1, + ivim_ts_LanePosition_secondLaneFromOutside = 2 +} e_ivim_ts_LanePosition; + +/* ivim_ts_LanePosition */ +typedef long ivim_ts_LanePosition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LanePosition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LanePosition; +asn_struct_free_f ivim_ts_LanePosition_free; +asn_struct_print_f ivim_ts_LanePosition_print; +asn_constr_check_f ivim_ts_LanePosition_constraint; +per_type_decoder_f ivim_ts_LanePosition_decode_uper; +per_type_encoder_f ivim_ts_LanePosition_encode_uper; +per_type_decoder_f ivim_ts_LanePosition_decode_aper; +per_type_encoder_f ivim_ts_LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LanePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LanePositions.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LanePositions.h new file mode 100644 index 000000000..3c5b26a93 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LanePositions.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LanePositions_H_ +#define _ivim_ts_LanePositions_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePosition.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LanePositions */ +typedef struct ivim_ts_LanePositions { + A_SEQUENCE_OF(ivim_ts_LanePosition_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LanePositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LanePositions; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_LanePositions_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LanePositions_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_LanePositions_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LanePositions_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneSharing.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneSharing.h new file mode 100644 index 000000000..ef7c4949b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneSharing.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneSharing_H_ +#define _ivim_ts_LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneSharing { + ivim_ts_LaneSharing_overlappingLaneDescriptionProvided = 0, + ivim_ts_LaneSharing_multipleLanesTreatedAsOneLane = 1, + ivim_ts_LaneSharing_otherNonMotorizedTrafficTypes = 2, + ivim_ts_LaneSharing_individualMotorizedVehicleTraffic = 3, + ivim_ts_LaneSharing_busVehicleTraffic = 4, + ivim_ts_LaneSharing_taxiVehicleTraffic = 5, + ivim_ts_LaneSharing_pedestriansTraffic = 6, + ivim_ts_LaneSharing_cyclistVehicleTraffic = 7, + ivim_ts_LaneSharing_trackedVehicleTraffic = 8, + ivim_ts_LaneSharing_pedestrianTraffic = 9 +} e_ivim_ts_LaneSharing; + +/* ivim_ts_LaneSharing */ +typedef BIT_STRING_t ivim_ts_LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneSharing; +asn_struct_free_f ivim_ts_LaneSharing_free; +asn_struct_print_f ivim_ts_LaneSharing_print; +asn_constr_check_f ivim_ts_LaneSharing_constraint; +per_type_decoder_f ivim_ts_LaneSharing_decode_uper; +per_type_encoder_f ivim_ts_LaneSharing_encode_uper; +per_type_decoder_f ivim_ts_LaneSharing_decode_aper; +per_type_encoder_f ivim_ts_LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneSharing_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneStatus.h new file mode 100644 index 000000000..e8c0275b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneStatus.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneStatus_H_ +#define _ivim_ts_LaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneStatus { + ivim_ts_LaneStatus_open = 0, + ivim_ts_LaneStatus_closed = 1, + ivim_ts_LaneStatus_mergeR = 2, + ivim_ts_LaneStatus_mergeL = 3, + ivim_ts_LaneStatus_mergeLR = 4, + ivim_ts_LaneStatus_provisionallyOpen = 5, + ivim_ts_LaneStatus_diverging = 6 +} e_ivim_ts_LaneStatus; + +/* ivim_ts_LaneStatus */ +typedef long ivim_ts_LaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneStatus; +asn_struct_free_f ivim_ts_LaneStatus_free; +asn_struct_print_f ivim_ts_LaneStatus_print; +asn_constr_check_f ivim_ts_LaneStatus_constraint; +per_type_decoder_f ivim_ts_LaneStatus_decode_uper; +per_type_encoder_f ivim_ts_LaneStatus_encode_uper; +per_type_decoder_f ivim_ts_LaneStatus_decode_aper; +per_type_encoder_f ivim_ts_LaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneType.h new file mode 100644 index 000000000..6d76cec99 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneType.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneType_H_ +#define _ivim_ts_LaneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneType { + ivim_ts_LaneType_traffic = 0, + ivim_ts_LaneType_through = 1, + ivim_ts_LaneType_reversible = 2, + ivim_ts_LaneType_acceleration = 3, + ivim_ts_LaneType_deceleration = 4, + ivim_ts_LaneType_leftHandTurning = 5, + ivim_ts_LaneType_rightHandTurning = 6, + ivim_ts_LaneType_dedicatedVehicle = 7, + ivim_ts_LaneType_bus = 8, + ivim_ts_LaneType_taxi = 9, + ivim_ts_LaneType_hov = 10, + ivim_ts_LaneType_hot = 11, + ivim_ts_LaneType_pedestrian = 12, + ivim_ts_LaneType_bikeLane = 13, + ivim_ts_LaneType_median = 14, + ivim_ts_LaneType_striping = 15, + ivim_ts_LaneType_trackedVehicle = 16, + ivim_ts_LaneType_parking = 17, + ivim_ts_LaneType_emergency = 18, + ivim_ts_LaneType_verge = 19, + ivim_ts_LaneType_minimumRiskManoeuvre = 20 +} e_ivim_ts_LaneType; + +/* ivim_ts_LaneType */ +typedef long ivim_ts_LaneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneType; +asn_struct_free_f ivim_ts_LaneType_free; +asn_struct_print_f ivim_ts_LaneType_print; +asn_constr_check_f ivim_ts_LaneType_constraint; +per_type_decoder_f ivim_ts_LaneType_decode_uper; +per_type_encoder_f ivim_ts_LaneType_encode_uper; +per_type_decoder_f ivim_ts_LaneType_decode_aper; +per_type_encoder_f ivim_ts_LaneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneTypeAttributes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneTypeAttributes.h new file mode 100644 index 000000000..1d3cc2601 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneTypeAttributes.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneTypeAttributes_H_ +#define _ivim_ts_LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Vehicle.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Crosswalk.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Bike.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Sidewalk.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Barrier.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Striping.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-TrackedVehicle.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LaneTypeAttributes_PR { + ivim_ts_LaneTypeAttributes_PR_NOTHING, /* No components present */ + ivim_ts_LaneTypeAttributes_PR_vehicle, + ivim_ts_LaneTypeAttributes_PR_crosswalk, + ivim_ts_LaneTypeAttributes_PR_bikeLane, + ivim_ts_LaneTypeAttributes_PR_sidewalk, + ivim_ts_LaneTypeAttributes_PR_median, + ivim_ts_LaneTypeAttributes_PR_striping, + ivim_ts_LaneTypeAttributes_PR_trackedVehicle, + ivim_ts_LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} ivim_ts_LaneTypeAttributes_PR; + +/* ivim_ts_LaneTypeAttributes */ +typedef struct ivim_ts_LaneTypeAttributes { + ivim_ts_LaneTypeAttributes_PR present; + union ivim_ts_LaneTypeAttributes_u { + ivim_ts_LaneAttributes_Vehicle_t vehicle; + ivim_ts_LaneAttributes_Crosswalk_t crosswalk; + ivim_ts_LaneAttributes_Bike_t bikeLane; + ivim_ts_LaneAttributes_Sidewalk_t sidewalk; + ivim_ts_LaneAttributes_Barrier_t median; + ivim_ts_LaneAttributes_Striping_t striping; + ivim_ts_LaneAttributes_TrackedVehicle_t trackedVehicle; + ivim_ts_LaneAttributes_Parking_t parking; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneTypeAttributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneWidth.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneWidth.h new file mode 100644 index 000000000..d2ea7807b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LaneWidth.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LaneWidth_H_ +#define _ivim_ts_LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LaneWidth */ +typedef long ivim_ts_LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneWidth; +asn_struct_free_f ivim_ts_LaneWidth_free; +asn_struct_print_f ivim_ts_LaneWidth_print; +asn_constr_check_f ivim_ts_LaneWidth_constraint; +per_type_decoder_f ivim_ts_LaneWidth_decode_uper; +per_type_encoder_f ivim_ts_LaneWidth_encode_uper; +per_type_decoder_f ivim_ts_LaneWidth_decode_aper; +per_type_encoder_f ivim_ts_LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LaneWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LateralAcceleration.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LateralAcceleration.h new file mode 100644 index 000000000..105d5e9fc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LateralAcceleration_H_ +#define _ivim_ts_LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LateralAccelerationValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LateralAcceleration */ +typedef struct ivim_ts_LateralAcceleration { + ivim_ts_LateralAccelerationValue_t lateralAccelerationValue; + ivim_ts_AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LateralAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LateralAccelerationValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LateralAccelerationValue.h new file mode 100644 index 000000000..71419700d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LateralAccelerationValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LateralAccelerationValue_H_ +#define _ivim_ts_LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LateralAccelerationValue { + ivim_ts_LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + ivim_ts_LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + ivim_ts_LateralAccelerationValue_unavailable = 161 +} e_ivim_ts_LateralAccelerationValue; + +/* ivim_ts_LateralAccelerationValue */ +typedef long ivim_ts_LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LateralAccelerationValue; +asn_struct_free_f ivim_ts_LateralAccelerationValue_free; +asn_struct_print_f ivim_ts_LateralAccelerationValue_print; +asn_constr_check_f ivim_ts_LateralAccelerationValue_constraint; +per_type_decoder_f ivim_ts_LateralAccelerationValue_decode_uper; +per_type_encoder_f ivim_ts_LateralAccelerationValue_encode_uper; +per_type_decoder_f ivim_ts_LateralAccelerationValue_decode_aper; +per_type_encoder_f ivim_ts_LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LateralAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Latitude.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Latitude.h new file mode 100644 index 000000000..0ddc250e7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Latitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Latitude_H_ +#define _ivim_ts_Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Latitude { + ivim_ts_Latitude_oneMicrodegreeNorth = 10, + ivim_ts_Latitude_oneMicrodegreeSouth = -10, + ivim_ts_Latitude_unavailable = 900000001 +} e_ivim_ts_Latitude; + +/* ivim_ts_Latitude */ +typedef long ivim_ts_Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Latitude; +asn_struct_free_f ivim_ts_Latitude_free; +asn_struct_print_f ivim_ts_Latitude_print; +asn_constr_check_f ivim_ts_Latitude_constraint; +per_type_decoder_f ivim_ts_Latitude_decode_uper; +per_type_encoder_f ivim_ts_Latitude_encode_uper; +per_type_decoder_f ivim_ts_Latitude_decode_aper; +per_type_encoder_f ivim_ts_Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Latitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayerID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayerID.h new file mode 100644 index 000000000..48ac234d7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayerID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LayerID_H_ +#define _ivim_ts_LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LayerID */ +typedef long ivim_ts_LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayerID; +asn_struct_free_f ivim_ts_LayerID_free; +asn_struct_print_f ivim_ts_LayerID_print; +asn_constr_check_f ivim_ts_LayerID_constraint; +per_type_decoder_f ivim_ts_LayerID_decode_uper; +per_type_encoder_f ivim_ts_LayerID_encode_uper; +per_type_decoder_f ivim_ts_LayerID_decode_aper; +per_type_encoder_f ivim_ts_LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LayerID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayerType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayerType.h new file mode 100644 index 000000000..4f7819954 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayerType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LayerType_H_ +#define _ivim_ts_LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LayerType { + ivim_ts_LayerType_none = 0, + ivim_ts_LayerType_mixedContent = 1, + ivim_ts_LayerType_generalMapData = 2, + ivim_ts_LayerType_intersectionData = 3, + ivim_ts_LayerType_curveData = 4, + ivim_ts_LayerType_roadwaySectionData = 5, + ivim_ts_LayerType_parkingAreaData = 6, + ivim_ts_LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_ivim_ts_LayerType; + +/* ivim_ts_LayerType */ +typedef long ivim_ts_LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_LayerType_specs_1; +asn_struct_free_f ivim_ts_LayerType_free; +asn_struct_print_f ivim_ts_LayerType_print; +asn_constr_check_f ivim_ts_LayerType_constraint; +per_type_decoder_f ivim_ts_LayerType_decode_uper; +per_type_encoder_f ivim_ts_LayerType_encode_uper; +per_type_decoder_f ivim_ts_LayerType_decode_aper; +per_type_encoder_f ivim_ts_LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LayerType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutComponent.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutComponent.h new file mode 100644 index 000000000..435d653aa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutComponent.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LayoutComponent_H_ +#define _ivim_ts_LayoutComponent_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LayoutComponent__textScripting { + ivim_ts_LayoutComponent__textScripting_horizontal = 0, + ivim_ts_LayoutComponent__textScripting_vertical = 1 +} e_ivim_ts_LayoutComponent__textScripting; + +/* ivim_ts_LayoutComponent */ +typedef struct ivim_ts_LayoutComponent { + long layoutComponentId; + long height; + long width; + long x; + long y; + long textScripting; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LayoutComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayoutComponent; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LayoutComponent_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LayoutComponent_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LayoutComponent_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutComponents.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutComponents.h new file mode 100644 index 000000000..28704bb62 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutComponents.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LayoutComponents_H_ +#define _ivim_ts_LayoutComponents_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_LayoutComponent; + +/* ivim_ts_LayoutComponents */ +typedef struct ivim_ts_LayoutComponents { + A_SEQUENCE_OF(struct ivim_ts_LayoutComponent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LayoutComponents_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayoutComponents; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_LayoutComponents_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LayoutComponents_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_LayoutComponents_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LayoutComponent.h" + +#endif /* _ivim_ts_LayoutComponents_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutContainer.h new file mode 100644 index 000000000..3cf690df9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LayoutContainer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LayoutContainer_H_ +#define _ivim_ts_LayoutContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_LayoutComponents.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LayoutContainer */ +typedef struct ivim_ts_LayoutContainer { + long layoutId; + long *height; /* OPTIONAL */ + long *width; /* OPTIONAL */ + ivim_ts_LayoutComponents_t layoutComponents; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LayoutContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayoutContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LayoutContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LayoutContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LayoutContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LicPlateNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LicPlateNumber.h new file mode 100644 index 000000000..4f0b7979c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LicPlateNumber.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LicPlateNumber_H_ +#define _ivim_ts_LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LicPlateNumber */ +typedef OCTET_STRING_t ivim_ts_LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LicPlateNumber; +asn_struct_free_f ivim_ts_LicPlateNumber_free; +asn_struct_print_f ivim_ts_LicPlateNumber_print; +asn_constr_check_f ivim_ts_LicPlateNumber_constraint; +per_type_decoder_f ivim_ts_LicPlateNumber_decode_uper; +per_type_encoder_f ivim_ts_LicPlateNumber_encode_uper; +per_type_decoder_f ivim_ts_LicPlateNumber_decode_aper; +per_type_encoder_f ivim_ts_LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LicPlateNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LightBarSirenInUse.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LightBarSirenInUse.h new file mode 100644 index 000000000..12dc74211 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LightBarSirenInUse.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LightBarSirenInUse_H_ +#define _ivim_ts_LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LightBarSirenInUse { + ivim_ts_LightBarSirenInUse_lightBarActivated = 0, + ivim_ts_LightBarSirenInUse_sirenActivated = 1 +} e_ivim_ts_LightBarSirenInUse; + +/* ivim_ts_LightBarSirenInUse */ +typedef BIT_STRING_t ivim_ts_LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LightBarSirenInUse; +asn_struct_free_f ivim_ts_LightBarSirenInUse_free; +asn_struct_print_f ivim_ts_LightBarSirenInUse_print; +asn_constr_check_f ivim_ts_LightBarSirenInUse_constraint; +per_type_decoder_f ivim_ts_LightBarSirenInUse_decode_uper; +per_type_encoder_f ivim_ts_LightBarSirenInUse_encode_uper; +per_type_decoder_f ivim_ts_LightBarSirenInUse_decode_aper; +per_type_encoder_f ivim_ts_LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LightBarSirenInUse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LoadType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LoadType.h new file mode 100644 index 000000000..15374c353 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LoadType.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LoadType_H_ +#define _ivim_ts_LoadType_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GoodsType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DangerousGoodsBasic.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpecialTransportType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LoadType */ +typedef struct ivim_ts_LoadType { + ivim_ts_GoodsType_t goodsType; + ivim_ts_DangerousGoodsBasic_t dangerousGoodsType; + ivim_ts_SpecialTransportType_t specialTransportType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LoadType; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LoadType_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_LoadType_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LoadType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Longitude.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Longitude.h new file mode 100644 index 000000000..1149c4988 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Longitude.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Longitude_H_ +#define _ivim_ts_Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Longitude { + ivim_ts_Longitude_oneMicrodegreeEast = 10, + ivim_ts_Longitude_oneMicrodegreeWest = -10, + ivim_ts_Longitude_unavailable = 1800000001 +} e_ivim_ts_Longitude; + +/* ivim_ts_Longitude */ +typedef long ivim_ts_Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Longitude; +asn_struct_free_f ivim_ts_Longitude_free; +asn_struct_print_f ivim_ts_Longitude_print; +asn_constr_check_f ivim_ts_Longitude_constraint; +per_type_decoder_f ivim_ts_Longitude_decode_uper; +per_type_encoder_f ivim_ts_Longitude_encode_uper; +per_type_decoder_f ivim_ts_Longitude_decode_aper; +per_type_encoder_f ivim_ts_Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Longitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAcceleration.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAcceleration.h new file mode 100644 index 000000000..882c0a273 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LongitudinalAcceleration_H_ +#define _ivim_ts_LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAccelerationValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_LongitudinalAcceleration */ +typedef struct ivim_ts_LongitudinalAcceleration { + ivim_ts_LongitudinalAccelerationValue_t longitudinalAccelerationValue; + ivim_ts_AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LongitudinalAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAccelerationValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAccelerationValue.h new file mode 100644 index 000000000..00bf345c6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAccelerationValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_LongitudinalAccelerationValue_H_ +#define _ivim_ts_LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_LongitudinalAccelerationValue { + ivim_ts_LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + ivim_ts_LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + ivim_ts_LongitudinalAccelerationValue_unavailable = 161 +} e_ivim_ts_LongitudinalAccelerationValue; + +/* ivim_ts_LongitudinalAccelerationValue */ +typedef long ivim_ts_LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_LongitudinalAccelerationValue; +asn_struct_free_f ivim_ts_LongitudinalAccelerationValue_free; +asn_struct_print_f ivim_ts_LongitudinalAccelerationValue_print; +asn_constr_check_f ivim_ts_LongitudinalAccelerationValue_constraint; +per_type_decoder_f ivim_ts_LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f ivim_ts_LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f ivim_ts_LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f ivim_ts_LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_LongitudinalAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ManeuverAssistList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ManeuverAssistList.h new file mode 100644 index 000000000..64690cc7f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ManeuverAssistList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ManeuverAssistList_H_ +#define _ivim_ts_ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ConnectionManeuverAssist; + +/* ivim_ts_ManeuverAssistList */ +typedef struct ivim_ts_ManeuverAssistList { + A_SEQUENCE_OF(struct ivim_ts_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist.h" + +#endif /* _ivim_ts_ManeuverAssistList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ManufacturerIdentifier.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ManufacturerIdentifier.h new file mode 100644 index 000000000..863032c13 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ManufacturerIdentifier.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ManufacturerIdentifier_H_ +#define _ivim_ts_ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ManufacturerIdentifier */ +typedef long ivim_ts_ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ManufacturerIdentifier; +asn_struct_free_f ivim_ts_ManufacturerIdentifier_free; +asn_struct_print_f ivim_ts_ManufacturerIdentifier_print; +asn_constr_check_f ivim_ts_ManufacturerIdentifier_constraint; +per_type_decoder_f ivim_ts_ManufacturerIdentifier_decode_uper; +per_type_encoder_f ivim_ts_ManufacturerIdentifier_encode_uper; +per_type_decoder_f ivim_ts_ManufacturerIdentifier_decode_aper; +per_type_encoder_f ivim_ts_ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ManufacturerIdentifier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapData-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapData-addGrpC.h new file mode 100644 index 000000000..fcac617b0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapData-addGrpC.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MapData_addGrpC_H_ +#define _ivim_ts_MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SignalHeadLocationList; + +/* ivim_ts_MapData-addGrpC */ +typedef struct ivim_ts_MapData_addGrpC { + struct ivim_ts_SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocationList.h" + +#endif /* _ivim_ts_MapData_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapData.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapData.h new file mode 100644 index 000000000..df6d24afa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapData.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MapData_H_ +#define _ivim_ts_MapData_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LayerType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_IntersectionGeometryList; +struct ivim_ts_RoadSegmentList; +struct ivim_ts_DataParameters; +struct ivim_ts_RestrictionClassList; +struct ivim_ts_Reg_MapData; + +/* ivim_ts_MapData */ +typedef struct ivim_ts_MapData { + ivim_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + ivim_ts_MsgCount_t msgIssueRevision; + ivim_ts_LayerType_t *layerType; /* OPTIONAL */ + ivim_ts_LayerID_t *layerID; /* OPTIONAL */ + struct ivim_ts_IntersectionGeometryList *intersections; /* OPTIONAL */ + struct ivim_ts_RoadSegmentList *roadSegments; /* OPTIONAL */ + struct ivim_ts_DataParameters *dataParameters; /* OPTIONAL */ + struct ivim_ts_RestrictionClassList *restrictionList; /* OPTIONAL */ + struct ivim_ts_MapData__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_MapData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MapData; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometryList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DataParameters.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_MapData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapLocationContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapLocationContainer.h new file mode 100644 index 000000000..0763c3628 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapLocationContainer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MapLocationContainer_H_ +#define _ivim_ts_MapLocationContainer_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MapReference.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MlcParts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_MapLocationContainer */ +typedef struct ivim_ts_MapLocationContainer { + ivim_ts_MapReference_t reference; + ivim_ts_MlcParts_t parts; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MapLocationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MapLocationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MapLocationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MapLocationContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MapLocationContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapReference.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapReference.h new file mode 100644 index 000000000..169a64ae5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MapReference.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MapReference_H_ +#define _ivim_ts_MapReference_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentReferenceID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_MapReference_PR { + ivim_ts_MapReference_PR_NOTHING, /* No components present */ + ivim_ts_MapReference_PR_roadsegment, + ivim_ts_MapReference_PR_intersection +} ivim_ts_MapReference_PR; + +/* ivim_ts_MapReference */ +typedef struct ivim_ts_MapReference { + ivim_ts_MapReference_PR present; + union ivim_ts_MapReference_u { + ivim_ts_RoadSegmentReferenceID_t roadsegment; + ivim_ts_IntersectionReferenceID_t intersection; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MapReference_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MapReference; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_MapReference_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MapReference_1[2]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_MapReference_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MapReference_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MarkingColour.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MarkingColour.h new file mode 100644 index 000000000..27b4eb906 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MarkingColour.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MarkingColour_H_ +#define _ivim_ts_MarkingColour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_MarkingColour { + ivim_ts_MarkingColour_white = 0, + ivim_ts_MarkingColour_yellow = 1, + ivim_ts_MarkingColour_orange = 2, + ivim_ts_MarkingColour_red = 3, + ivim_ts_MarkingColour_blue = 4, + ivim_ts_MarkingColour_unavailable = 7 +} e_ivim_ts_MarkingColour; + +/* ivim_ts_MarkingColour */ +typedef long ivim_ts_MarkingColour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_MarkingColour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MarkingColour; +asn_struct_free_f ivim_ts_MarkingColour_free; +asn_struct_print_f ivim_ts_MarkingColour_print; +asn_constr_check_f ivim_ts_MarkingColour_constraint; +per_type_decoder_f ivim_ts_MarkingColour_decode_uper; +per_type_encoder_f ivim_ts_MarkingColour_encode_uper; +per_type_decoder_f ivim_ts_MarkingColour_decode_aper; +per_type_encoder_f ivim_ts_MarkingColour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MarkingColour_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaterialType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaterialType.h new file mode 100644 index 000000000..b00b131de --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaterialType.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MaterialType_H_ +#define _ivim_ts_MaterialType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_MaterialType { + ivim_ts_MaterialType_asphalt = 0, + ivim_ts_MaterialType_concrete = 1, + ivim_ts_MaterialType_cobblestone = 2, + ivim_ts_MaterialType_gravel = 3, + ivim_ts_MaterialType_unavailable = 7 +} e_ivim_ts_MaterialType; + +/* ivim_ts_MaterialType */ +typedef long ivim_ts_MaterialType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_MaterialType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MaterialType; +asn_struct_free_f ivim_ts_MaterialType_free; +asn_struct_print_f ivim_ts_MaterialType_print; +asn_constr_check_f ivim_ts_MaterialType_constraint; +per_type_decoder_f ivim_ts_MaterialType_decode_uper; +per_type_encoder_f ivim_ts_MaterialType_encode_uper; +per_type_decoder_f ivim_ts_MaterialType_decode_aper; +per_type_encoder_f ivim_ts_MaterialType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MaterialType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaxLenghtOfPlatoon.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaxLenghtOfPlatoon.h new file mode 100644 index 000000000..976c32ee8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaxLenghtOfPlatoon.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MaxLenghtOfPlatoon_H_ +#define _ivim_ts_MaxLenghtOfPlatoon_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_MaxLenghtOfPlatoon */ +typedef long ivim_ts_MaxLenghtOfPlatoon_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_MaxLenghtOfPlatoon_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MaxLenghtOfPlatoon; +asn_struct_free_f ivim_ts_MaxLenghtOfPlatoon_free; +asn_struct_print_f ivim_ts_MaxLenghtOfPlatoon_print; +asn_constr_check_f ivim_ts_MaxLenghtOfPlatoon_constraint; +per_type_decoder_f ivim_ts_MaxLenghtOfPlatoon_decode_uper; +per_type_encoder_f ivim_ts_MaxLenghtOfPlatoon_encode_uper; +per_type_decoder_f ivim_ts_MaxLenghtOfPlatoon_decode_aper; +per_type_encoder_f ivim_ts_MaxLenghtOfPlatoon_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MaxLenghtOfPlatoon_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaxNoOfVehicles.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaxNoOfVehicles.h new file mode 100644 index 000000000..a4d83a4bf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MaxNoOfVehicles.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MaxNoOfVehicles_H_ +#define _ivim_ts_MaxNoOfVehicles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_MaxNoOfVehicles */ +typedef long ivim_ts_MaxNoOfVehicles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_MaxNoOfVehicles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MaxNoOfVehicles; +asn_struct_free_f ivim_ts_MaxNoOfVehicles_free; +asn_struct_print_f ivim_ts_MaxNoOfVehicles_print; +asn_constr_check_f ivim_ts_MaxNoOfVehicles_constraint; +per_type_decoder_f ivim_ts_MaxNoOfVehicles_decode_uper; +per_type_encoder_f ivim_ts_MaxNoOfVehicles_encode_uper; +per_type_decoder_f ivim_ts_MaxNoOfVehicles_decode_aper; +per_type_encoder_f ivim_ts_MaxNoOfVehicles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MaxNoOfVehicles_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MergeDivergeNodeAngle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MergeDivergeNodeAngle.h new file mode 100644 index 000000000..594e70c70 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MergeDivergeNodeAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MergeDivergeNodeAngle_H_ +#define _ivim_ts_MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_MergeDivergeNodeAngle */ +typedef long ivim_ts_MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MergeDivergeNodeAngle; +asn_struct_free_f ivim_ts_MergeDivergeNodeAngle_free; +asn_struct_print_f ivim_ts_MergeDivergeNodeAngle_print; +asn_constr_check_f ivim_ts_MergeDivergeNodeAngle_constraint; +per_type_decoder_f ivim_ts_MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f ivim_ts_MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f ivim_ts_MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f ivim_ts_MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MergeDivergeNodeAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h new file mode 100644 index 000000000..a28f79cd3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MinuteOfTheYear_H_ +#define _ivim_ts_MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_MinuteOfTheYear */ +typedef long ivim_ts_MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MinuteOfTheYear; +asn_struct_free_f ivim_ts_MinuteOfTheYear_free; +asn_struct_print_f ivim_ts_MinuteOfTheYear_print; +asn_constr_check_f ivim_ts_MinuteOfTheYear_constraint; +per_type_decoder_f ivim_ts_MinuteOfTheYear_decode_uper; +per_type_encoder_f ivim_ts_MinuteOfTheYear_encode_uper; +per_type_decoder_f ivim_ts_MinuteOfTheYear_decode_aper; +per_type_encoder_f ivim_ts_MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MinuteOfTheYear_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MlcPart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MlcPart.h new file mode 100644 index 000000000..9b5cf9807 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MlcPart.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MlcPart_H_ +#define _ivim_ts_MlcPart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Zid.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_LaneIds; + +/* ivim_ts_MlcPart */ +typedef struct ivim_ts_MlcPart { + ivim_ts_Zid_t zoneId; + struct ivim_ts_LaneIds *laneIds; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MlcPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MlcPart; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MlcPart_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MlcPart_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneIds.h" + +#endif /* _ivim_ts_MlcPart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MlcParts.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MlcParts.h new file mode 100644 index 000000000..dad9b2f75 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MlcParts.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MlcParts_H_ +#define _ivim_ts_MlcParts_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_MlcPart; + +/* ivim_ts_MlcParts */ +typedef struct ivim_ts_MlcParts { + A_SEQUENCE_OF(struct ivim_ts_MlcPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MlcParts_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MlcParts; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_MlcParts_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MlcParts_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_MlcParts_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MlcPart.h" + +#endif /* _ivim_ts_MlcParts_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MonthDay.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MonthDay.h new file mode 100644 index 000000000..6f208b99c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MonthDay.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MonthDay_H_ +#define _ivim_ts_MonthDay_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_MonthDay */ +typedef struct ivim_ts_MonthDay { + long month; + long day; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MonthDay_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MonthDay; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MonthDay_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MonthDay_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MonthDay_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEvent-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEvent-addGrpC.h new file mode 100644 index 000000000..e83f3327a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEvent-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MovementEvent_addGrpC_H_ +#define _ivim_ts_MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_MovementEvent-addGrpC */ +typedef struct ivim_ts_MovementEvent_addGrpC { + ivim_ts_ExceptionalCondition_t *stateChangeReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MovementEvent_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEvent.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEvent.h new file mode 100644 index 000000000..ee4ae8caa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEvent.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MovementEvent_H_ +#define _ivim_ts_MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_TimeChangeDetails; +struct ivim_ts_AdvisorySpeedList; +struct ivim_ts_Reg_MovementEvent; + +/* ivim_ts_MovementEvent */ +typedef struct ivim_ts_MovementEvent { + ivim_ts_MovementPhaseState_t eventState; + struct ivim_ts_TimeChangeDetails *timing; /* OPTIONAL */ + struct ivim_ts_AdvisorySpeedList *speeds; /* OPTIONAL */ + struct ivim_ts_MovementEvent__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeChangeDetails.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_MovementEvent_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEventList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEventList.h new file mode 100644 index 000000000..9c2fd61fb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementEventList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MovementEventList_H_ +#define _ivim_ts_MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_MovementEvent; + +/* ivim_ts_MovementEventList */ +typedef struct ivim_ts_MovementEventList { + A_SEQUENCE_OF(struct ivim_ts_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementEvent.h" + +#endif /* _ivim_ts_MovementEventList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementList.h new file mode 100644 index 000000000..fb49d0897 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MovementList_H_ +#define _ivim_ts_MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_MovementState; + +/* ivim_ts_MovementList */ +typedef struct ivim_ts_MovementList { + A_SEQUENCE_OF(struct ivim_ts_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementState.h" + +#endif /* _ivim_ts_MovementList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementPhaseState.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementPhaseState.h new file mode 100644 index 000000000..9762ee339 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementPhaseState.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MovementPhaseState_H_ +#define _ivim_ts_MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_MovementPhaseState { + ivim_ts_MovementPhaseState_unavailable = 0, + ivim_ts_MovementPhaseState_dark = 1, + ivim_ts_MovementPhaseState_stop_Then_Proceed = 2, + ivim_ts_MovementPhaseState_stop_And_Remain = 3, + ivim_ts_MovementPhaseState_pre_Movement = 4, + ivim_ts_MovementPhaseState_permissive_Movement_Allowed = 5, + ivim_ts_MovementPhaseState_protected_Movement_Allowed = 6, + ivim_ts_MovementPhaseState_permissive_clearance = 7, + ivim_ts_MovementPhaseState_protected_clearance = 8, + ivim_ts_MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_ivim_ts_MovementPhaseState; + +/* ivim_ts_MovementPhaseState */ +typedef long ivim_ts_MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_MovementPhaseState_specs_1; +asn_struct_free_f ivim_ts_MovementPhaseState_free; +asn_struct_print_f ivim_ts_MovementPhaseState_print; +asn_constr_check_f ivim_ts_MovementPhaseState_constraint; +per_type_decoder_f ivim_ts_MovementPhaseState_decode_uper; +per_type_encoder_f ivim_ts_MovementPhaseState_encode_uper; +per_type_decoder_f ivim_ts_MovementPhaseState_decode_aper; +per_type_encoder_f ivim_ts_MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MovementPhaseState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementState.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementState.h new file mode 100644 index 000000000..e2d73baa2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MovementState.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MovementState_H_ +#define _ivim_ts_MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalGroupID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ManeuverAssistList; +struct ivim_ts_Reg_MovementState; + +/* ivim_ts_MovementState */ +typedef struct ivim_ts_MovementState { + ivim_ts_DescriptiveName_t *movementName; /* OPTIONAL */ + ivim_ts_SignalGroupID_t signalGroup; + ivim_ts_MovementEventList_t state_time_speed; + struct ivim_ts_ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct ivim_ts_MovementState__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ManeuverAssistList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_MovementState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h new file mode 100644 index 000000000..1da160437 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_MsgCount_H_ +#define _ivim_ts_MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_MsgCount */ +typedef long ivim_ts_MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_MsgCount; +asn_struct_free_f ivim_ts_MsgCount_free; +asn_struct_print_f ivim_ts_MsgCount_print; +asn_constr_check_f ivim_ts_MsgCount_constraint; +per_type_decoder_f ivim_ts_MsgCount_decode_uper; +per_type_encoder_f ivim_ts_MsgCount_encode_uper; +per_type_decoder_f ivim_ts_MsgCount_decode_aper; +per_type_encoder_f ivim_ts_MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_MsgCount_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-LLmD-64b.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-LLmD-64b.h new file mode 100644 index 000000000..19fd99ff7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-LLmD-64b.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Node_LLmD_64b_H_ +#define _ivim_ts_Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Node-LLmD-64b */ +typedef struct ivim_ts_Node_LLmD_64b { + ivim_ts_Longitude_t lon; + ivim_ts_Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Node_LLmD_64b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-20b.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-20b.h new file mode 100644 index 000000000..122efff61 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-20b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Node_XY_20b_H_ +#define _ivim_ts_Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Node-XY-20b */ +typedef struct ivim_ts_Node_XY_20b { + ivim_ts_Offset_B10_t x; + ivim_ts_Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Node_XY_20b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-22b.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-22b.h new file mode 100644 index 000000000..204fe2f5a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-22b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Node_XY_22b_H_ +#define _ivim_ts_Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Node-XY-22b */ +typedef struct ivim_ts_Node_XY_22b { + ivim_ts_Offset_B11_t x; + ivim_ts_Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Node_XY_22b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-24b.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-24b.h new file mode 100644 index 000000000..173a1e39e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-24b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Node_XY_24b_H_ +#define _ivim_ts_Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Node-XY-24b */ +typedef struct ivim_ts_Node_XY_24b { + ivim_ts_Offset_B12_t x; + ivim_ts_Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Node_XY_24b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-26b.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-26b.h new file mode 100644 index 000000000..8717b4263 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-26b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Node_XY_26b_H_ +#define _ivim_ts_Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Node-XY-26b */ +typedef struct ivim_ts_Node_XY_26b { + ivim_ts_Offset_B13_t x; + ivim_ts_Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Node_XY_26b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-28b.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-28b.h new file mode 100644 index 000000000..0329381d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-28b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Node_XY_28b_H_ +#define _ivim_ts_Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Node-XY-28b */ +typedef struct ivim_ts_Node_XY_28b { + ivim_ts_Offset_B14_t x; + ivim_ts_Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Node_XY_28b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-32b.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-32b.h new file mode 100644 index 000000000..12b8175c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node-XY-32b.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Node_XY_32b_H_ +#define _ivim_ts_Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Node-XY-32b */ +typedef struct ivim_ts_Node_XY_32b { + ivim_ts_Offset_B16_t x; + ivim_ts_Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Node_XY_32b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node.h new file mode 100644 index 000000000..21f642a7d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Node.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Node_H_ +#define _ivim_ts_Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Node */ +typedef struct ivim_ts_Node { + long id; + ivim_ts_LaneID_t *lane; /* OPTIONAL */ + ivim_ts_LaneConnectionID_t *connectionID; /* OPTIONAL */ + ivim_ts_IntersectionID_t *intersectionID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Node_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSet-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSet-addGrpC.h new file mode 100644 index 000000000..a06369670 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSet-addGrpC.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeAttributeSet_addGrpC_H_ +#define _ivim_ts_NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_NodeLink; +struct ivim_ts_Node; + +/* ivim_ts_NodeAttributeSet-addGrpC */ +typedef struct ivim_ts_NodeAttributeSet_addGrpC { + ivim_ts_PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct ivim_ts_NodeLink *nodeLink; /* OPTIONAL */ + struct ivim_ts_Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeLink.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Node.h" + +#endif /* _ivim_ts_NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSetXY.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSetXY.h new file mode 100644 index 000000000..8bd781857 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSetXY.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeAttributeSetXY_H_ +#define _ivim_ts_NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_NodeAttributeXYList; +struct ivim_ts_SegmentAttributeXYList; +struct ivim_ts_LaneDataAttributeList; +struct ivim_ts_Reg_NodeAttributeSetXY; + +/* ivim_ts_NodeAttributeSetXY */ +typedef struct ivim_ts_NodeAttributeSetXY { + struct ivim_ts_NodeAttributeXYList *localNode; /* OPTIONAL */ + struct ivim_ts_SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct ivim_ts_SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct ivim_ts_LaneDataAttributeList *data; /* OPTIONAL */ + ivim_ts_Offset_B10_t *dWidth; /* OPTIONAL */ + ivim_ts_Offset_B10_t *dElevation; /* OPTIONAL */ + struct ivim_ts_NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_NodeAttributeSetXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXYList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXYList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttributeList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_NodeAttributeSetXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXY.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXY.h new file mode 100644 index 000000000..420f87e7e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXY.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeAttributeXY_H_ +#define _ivim_ts_NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_NodeAttributeXY { + ivim_ts_NodeAttributeXY_reserved = 0, + ivim_ts_NodeAttributeXY_stopLine = 1, + ivim_ts_NodeAttributeXY_roundedCapStyleA = 2, + ivim_ts_NodeAttributeXY_roundedCapStyleB = 3, + ivim_ts_NodeAttributeXY_mergePoint = 4, + ivim_ts_NodeAttributeXY_divergePoint = 5, + ivim_ts_NodeAttributeXY_downstreamStopLine = 6, + ivim_ts_NodeAttributeXY_downstreamStartNode = 7, + ivim_ts_NodeAttributeXY_closedToTraffic = 8, + ivim_ts_NodeAttributeXY_safeIsland = 9, + ivim_ts_NodeAttributeXY_curbPresentAtStepOff = 10, + ivim_ts_NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_ivim_ts_NodeAttributeXY; + +/* ivim_ts_NodeAttributeXY */ +typedef long ivim_ts_NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_NodeAttributeXY_specs_1; +asn_struct_free_f ivim_ts_NodeAttributeXY_free; +asn_struct_print_f ivim_ts_NodeAttributeXY_print; +asn_constr_check_f ivim_ts_NodeAttributeXY_constraint; +per_type_decoder_f ivim_ts_NodeAttributeXY_decode_uper; +per_type_encoder_f ivim_ts_NodeAttributeXY_encode_uper; +per_type_decoder_f ivim_ts_NodeAttributeXY_decode_aper; +per_type_encoder_f ivim_ts_NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_NodeAttributeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXYList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXYList.h new file mode 100644 index 000000000..a6cc8e063 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeAttributeXYList_H_ +#define _ivim_ts_NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_NodeAttributeXYList */ +typedef struct ivim_ts_NodeAttributeXYList { + A_SEQUENCE_OF(ivim_ts_NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_NodeAttributeXYList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeLink.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeLink.h new file mode 100644 index 000000000..994b623d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeLink.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeLink_H_ +#define _ivim_ts_NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Node; + +/* ivim_ts_NodeLink */ +typedef struct ivim_ts_NodeLink { + A_SEQUENCE_OF(struct ivim_ts_Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Node.h" + +#endif /* _ivim_ts_NodeLink_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeListXY.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeListXY.h new file mode 100644 index 000000000..85e4cf489 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeListXY.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeListXY_H_ +#define _ivim_ts_NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeSetXY.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_NodeListXY_PR { + ivim_ts_NodeListXY_PR_NOTHING, /* No components present */ + ivim_ts_NodeListXY_PR_nodes, + ivim_ts_NodeListXY_PR_computed + /* Extensions may appear below */ + +} ivim_ts_NodeListXY_PR; + +/* ivim_ts_NodeListXY */ +typedef struct ivim_ts_NodeListXY { + ivim_ts_NodeListXY_PR present; + union ivim_ts_NodeListXY_u { + ivim_ts_NodeSetXY_t nodes; + ivim_ts_ComputedLane_t computed; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_NodeListXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeOffsetPointXY.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeOffsetPointXY.h new file mode 100644 index 000000000..4e804d491 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeOffsetPointXY.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeOffsetPointXY_H_ +#define _ivim_ts_NodeOffsetPointXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-20b.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-22b.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-24b.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-26b.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-28b.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-32b.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-LLmD-64b.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_NodeOffsetPointXY_PR { + ivim_ts_NodeOffsetPointXY_PR_NOTHING, /* No components present */ + ivim_ts_NodeOffsetPointXY_PR_node_XY1, + ivim_ts_NodeOffsetPointXY_PR_node_XY2, + ivim_ts_NodeOffsetPointXY_PR_node_XY3, + ivim_ts_NodeOffsetPointXY_PR_node_XY4, + ivim_ts_NodeOffsetPointXY_PR_node_XY5, + ivim_ts_NodeOffsetPointXY_PR_node_XY6, + ivim_ts_NodeOffsetPointXY_PR_node_LatLon, + ivim_ts_NodeOffsetPointXY_PR_regional +} ivim_ts_NodeOffsetPointXY_PR; + +/* ivim_ts_NodeOffsetPointXY */ +typedef struct ivim_ts_NodeOffsetPointXY { + ivim_ts_NodeOffsetPointXY_PR present; + union ivim_ts_NodeOffsetPointXY_u { + ivim_ts_Node_XY_20b_t node_XY1; + ivim_ts_Node_XY_22b_t node_XY2; + ivim_ts_Node_XY_24b_t node_XY3; + ivim_ts_Node_XY_26b_t node_XY4; + ivim_ts_Node_XY_28b_t node_XY5; + ivim_ts_Node_XY_32b_t node_XY6; + ivim_ts_Node_LLmD_64b_t node_LatLon; + ivim_ts_Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_NodeOffsetPointXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeSetXY.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeSetXY.h new file mode 100644 index 000000000..544f97427 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeSetXY.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeSetXY_H_ +#define _ivim_ts_NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_NodeXY; + +/* ivim_ts_NodeSetXY */ +typedef struct ivim_ts_NodeSetXY { + A_SEQUENCE_OF(struct ivim_ts_NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeXY.h" + +#endif /* _ivim_ts_NodeSetXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeXY.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeXY.h new file mode 100644 index 000000000..1ce3b94ea --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NodeXY.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NodeXY_H_ +#define _ivim_ts_NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_NodeAttributeSetXY; + +/* ivim_ts_NodeXY */ +typedef struct ivim_ts_NodeXY { + ivim_ts_NodeOffsetPointXY_t delta; + struct ivim_ts_NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSetXY.h" + +#endif /* _ivim_ts_NodeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NumberOfOccupants.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NumberOfOccupants.h new file mode 100644 index 000000000..c165e0b0c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_NumberOfOccupants.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_NumberOfOccupants_H_ +#define _ivim_ts_NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_NumberOfOccupants { + ivim_ts_NumberOfOccupants_oneOccupant = 1, + ivim_ts_NumberOfOccupants_unavailable = 127 +} e_ivim_ts_NumberOfOccupants; + +/* ivim_ts_NumberOfOccupants */ +typedef long ivim_ts_NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_NumberOfOccupants; +asn_struct_free_f ivim_ts_NumberOfOccupants_free; +asn_struct_print_f ivim_ts_NumberOfOccupants_print; +asn_constr_check_f ivim_ts_NumberOfOccupants_constraint; +per_type_decoder_f ivim_ts_NumberOfOccupants_decode_uper; +per_type_encoder_f ivim_ts_NumberOfOccupants_encode_uper; +per_type_decoder_f ivim_ts_NumberOfOccupants_decode_aper; +per_type_encoder_f ivim_ts_NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_NumberOfOccupants_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B09.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B09.h new file mode 100644 index 000000000..637ed0360 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B09.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Offset_B09_H_ +#define _ivim_ts_Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Offset-B09 */ +typedef long ivim_ts_Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B09; +asn_struct_free_f ivim_ts_Offset_B09_free; +asn_struct_print_f ivim_ts_Offset_B09_print; +asn_constr_check_f ivim_ts_Offset_B09_constraint; +per_type_decoder_f ivim_ts_Offset_B09_decode_uper; +per_type_encoder_f ivim_ts_Offset_B09_encode_uper; +per_type_decoder_f ivim_ts_Offset_B09_decode_aper; +per_type_encoder_f ivim_ts_Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Offset_B09_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B10.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B10.h new file mode 100644 index 000000000..725a33b09 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B10.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Offset_B10_H_ +#define _ivim_ts_Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Offset-B10 */ +typedef long ivim_ts_Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B10; +asn_struct_free_f ivim_ts_Offset_B10_free; +asn_struct_print_f ivim_ts_Offset_B10_print; +asn_constr_check_f ivim_ts_Offset_B10_constraint; +per_type_decoder_f ivim_ts_Offset_B10_decode_uper; +per_type_encoder_f ivim_ts_Offset_B10_encode_uper; +per_type_decoder_f ivim_ts_Offset_B10_decode_aper; +per_type_encoder_f ivim_ts_Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Offset_B10_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B11.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B11.h new file mode 100644 index 000000000..5b4306fa4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B11.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Offset_B11_H_ +#define _ivim_ts_Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Offset-B11 */ +typedef long ivim_ts_Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B11; +asn_struct_free_f ivim_ts_Offset_B11_free; +asn_struct_print_f ivim_ts_Offset_B11_print; +asn_constr_check_f ivim_ts_Offset_B11_constraint; +per_type_decoder_f ivim_ts_Offset_B11_decode_uper; +per_type_encoder_f ivim_ts_Offset_B11_encode_uper; +per_type_decoder_f ivim_ts_Offset_B11_decode_aper; +per_type_encoder_f ivim_ts_Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Offset_B11_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B12.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B12.h new file mode 100644 index 000000000..c2f9ef2da --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B12.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Offset_B12_H_ +#define _ivim_ts_Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Offset-B12 */ +typedef long ivim_ts_Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B12; +asn_struct_free_f ivim_ts_Offset_B12_free; +asn_struct_print_f ivim_ts_Offset_B12_print; +asn_constr_check_f ivim_ts_Offset_B12_constraint; +per_type_decoder_f ivim_ts_Offset_B12_decode_uper; +per_type_encoder_f ivim_ts_Offset_B12_encode_uper; +per_type_decoder_f ivim_ts_Offset_B12_decode_aper; +per_type_encoder_f ivim_ts_Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Offset_B12_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B13.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B13.h new file mode 100644 index 000000000..d89184762 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B13.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Offset_B13_H_ +#define _ivim_ts_Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Offset-B13 */ +typedef long ivim_ts_Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B13; +asn_struct_free_f ivim_ts_Offset_B13_free; +asn_struct_print_f ivim_ts_Offset_B13_print; +asn_constr_check_f ivim_ts_Offset_B13_constraint; +per_type_decoder_f ivim_ts_Offset_B13_decode_uper; +per_type_encoder_f ivim_ts_Offset_B13_encode_uper; +per_type_decoder_f ivim_ts_Offset_B13_decode_aper; +per_type_encoder_f ivim_ts_Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Offset_B13_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B14.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B14.h new file mode 100644 index 000000000..69bd93ae1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B14.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Offset_B14_H_ +#define _ivim_ts_Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Offset-B14 */ +typedef long ivim_ts_Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B14; +asn_struct_free_f ivim_ts_Offset_B14_free; +asn_struct_print_f ivim_ts_Offset_B14_print; +asn_constr_check_f ivim_ts_Offset_B14_constraint; +per_type_decoder_f ivim_ts_Offset_B14_decode_uper; +per_type_encoder_f ivim_ts_Offset_B14_encode_uper; +per_type_decoder_f ivim_ts_Offset_B14_decode_aper; +per_type_encoder_f ivim_ts_Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Offset_B14_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B16.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B16.h new file mode 100644 index 000000000..17e6eb90c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Offset-B16.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Offset_B16_H_ +#define _ivim_ts_Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Offset-B16 */ +typedef long ivim_ts_Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B16; +asn_struct_free_f ivim_ts_Offset_B16_free; +asn_struct_print_f ivim_ts_Offset_B16_print; +asn_constr_check_f ivim_ts_Offset_B16_constraint; +per_type_decoder_f ivim_ts_Offset_B16_decode_uper; +per_type_encoder_f ivim_ts_Offset_B16_encode_uper; +per_type_decoder_f ivim_ts_Offset_B16_decode_aper; +per_type_encoder_f ivim_ts_Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Offset_B16_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_OpeningDaysHours.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_OpeningDaysHours.h new file mode 100644 index 000000000..31d704b82 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_OpeningDaysHours.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_OpeningDaysHours_H_ +#define _ivim_ts_OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_OpeningDaysHours */ +typedef UTF8String_t ivim_ts_OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_OpeningDaysHours; +asn_struct_free_f ivim_ts_OpeningDaysHours_free; +asn_struct_print_f ivim_ts_OpeningDaysHours_print; +asn_constr_check_f ivim_ts_OpeningDaysHours_constraint; +per_type_decoder_f ivim_ts_OpeningDaysHours_decode_uper; +per_type_encoder_f ivim_ts_OpeningDaysHours_encode_uper; +per_type_decoder_f ivim_ts_OpeningDaysHours_decode_aper; +per_type_encoder_f ivim_ts_OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_OpeningDaysHours_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_OverlayLaneList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_OverlayLaneList.h new file mode 100644 index 000000000..901887b2c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_OverlayLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_OverlayLaneList_H_ +#define _ivim_ts_OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_OverlayLaneList */ +typedef struct ivim_ts_OverlayLaneList { + A_SEQUENCE_OF(ivim_ts_LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_OverlayLaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PassengerCapacity.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PassengerCapacity.h new file mode 100644 index 000000000..92949568d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PassengerCapacity.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PassengerCapacity_H_ +#define _ivim_ts_PassengerCapacity_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PassengerCapacity */ +typedef struct ivim_ts_PassengerCapacity { + ivim_ts_Int1_t numberOfSeats; + ivim_ts_Int1_t numberOfStandingPlaces; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PassengerCapacity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PassengerCapacity; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PassengerCapacity_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PassengerCapacity_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PassengerCapacity_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathDeltaTime.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathDeltaTime.h new file mode 100644 index 000000000..05db27517 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathDeltaTime.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PathDeltaTime_H_ +#define _ivim_ts_PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PathDeltaTime { + ivim_ts_PathDeltaTime_tenMilliSecondsInPast = 1 +} e_ivim_ts_PathDeltaTime; + +/* ivim_ts_PathDeltaTime */ +typedef long ivim_ts_PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PathDeltaTime; +asn_struct_free_f ivim_ts_PathDeltaTime_free; +asn_struct_print_f ivim_ts_PathDeltaTime_print; +asn_constr_check_f ivim_ts_PathDeltaTime_constraint; +per_type_decoder_f ivim_ts_PathDeltaTime_decode_uper; +per_type_encoder_f ivim_ts_PathDeltaTime_encode_uper; +per_type_decoder_f ivim_ts_PathDeltaTime_decode_aper; +per_type_encoder_f ivim_ts_PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PathDeltaTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathHistory.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathHistory.h new file mode 100644 index 000000000..f42f0f678 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathHistory.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PathHistory_H_ +#define _ivim_ts_PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_PathPoint; + +/* ivim_ts_PathHistory */ +typedef struct ivim_ts_PathHistory { + A_SEQUENCE_OF(struct ivim_ts_PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PathPoint.h" + +#endif /* _ivim_ts_PathHistory_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathPoint.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathPoint.h new file mode 100644 index 000000000..50b8149c5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PathPoint_H_ +#define _ivim_ts_PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePosition.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PathPoint */ +typedef struct ivim_ts_PathPoint { + ivim_ts_DeltaReferencePosition_t pathPosition; + ivim_ts_PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PathPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PayUnit.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PayUnit.h new file mode 100644 index 000000000..ed80e2558 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PayUnit.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PayUnit_H_ +#define _ivim_ts_PayUnit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PayUnit */ +typedef OCTET_STRING_t ivim_ts_PayUnit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PayUnit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PayUnit; +asn_struct_free_f ivim_ts_PayUnit_free; +asn_struct_print_f ivim_ts_PayUnit_print; +asn_constr_check_f ivim_ts_PayUnit_constraint; +per_type_decoder_f ivim_ts_PayUnit_decode_uper; +per_type_encoder_f ivim_ts_PayUnit_encode_uper; +per_type_decoder_f ivim_ts_PayUnit_decode_aper; +per_type_encoder_f ivim_ts_PayUnit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PayUnit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentFee.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentFee.h new file mode 100644 index 000000000..714409500 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentFee.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PaymentFee_H_ +#define _ivim_ts_PaymentFee_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PayUnit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PaymentFee */ +typedef struct ivim_ts_PaymentFee { + ivim_ts_Int2_t paymentFeeAmount; + ivim_ts_PayUnit_t paymentFeeUnit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PaymentFee_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PaymentFee; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PaymentFee_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PaymentFee_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PaymentFee_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeans.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeans.h new file mode 100644 index 000000000..6da3e7c41 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeans.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PaymentMeans_H_ +#define _ivim_ts_PaymentMeans_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PersonalAccountNumber.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DateCompact.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PaymentMeans */ +typedef struct ivim_ts_PaymentMeans { + ivim_ts_PersonalAccountNumber_t personalAccountNumber; + ivim_ts_DateCompact_t paymentMeansExpiryDate; + OCTET_STRING_t pamentMeansUsageControl; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PaymentMeans_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PaymentMeans; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PaymentMeans_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeansBalance.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeansBalance.h new file mode 100644 index 000000000..0920cc562 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeansBalance.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PaymentMeansBalance_H_ +#define _ivim_ts_PaymentMeansBalance_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignedValue.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PaymentMeansBalance */ +typedef ivim_ts_SignedValue_t ivim_ts_PaymentMeansBalance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PaymentMeansBalance; +asn_struct_free_f ivim_ts_PaymentMeansBalance_free; +asn_struct_print_f ivim_ts_PaymentMeansBalance_print; +asn_constr_check_f ivim_ts_PaymentMeansBalance_constraint; +per_type_decoder_f ivim_ts_PaymentMeansBalance_decode_uper; +per_type_encoder_f ivim_ts_PaymentMeansBalance_encode_uper; +per_type_decoder_f ivim_ts_PaymentMeansBalance_decode_aper; +per_type_encoder_f ivim_ts_PaymentMeansBalance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PaymentMeansBalance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeansUnit.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeansUnit.h new file mode 100644 index 000000000..b627b5d7c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentMeansUnit.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PaymentMeansUnit_H_ +#define _ivim_ts_PaymentMeansUnit_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PayUnit.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PaymentMeansUnit */ +typedef ivim_ts_PayUnit_t ivim_ts_PaymentMeansUnit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PaymentMeansUnit; +asn_struct_free_f ivim_ts_PaymentMeansUnit_free; +asn_struct_print_f ivim_ts_PaymentMeansUnit_print; +asn_constr_check_f ivim_ts_PaymentMeansUnit_constraint; +per_type_decoder_f ivim_ts_PaymentMeansUnit_decode_uper; +per_type_encoder_f ivim_ts_PaymentMeansUnit_encode_uper; +per_type_decoder_f ivim_ts_PaymentMeansUnit_decode_aper; +per_type_encoder_f ivim_ts_PaymentMeansUnit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PaymentMeansUnit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentSecurityData.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentSecurityData.h new file mode 100644 index 000000000..b550f1269 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PaymentSecurityData.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PaymentSecurityData_H_ +#define _ivim_ts_PaymentSecurityData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PaymentSecurityData */ +typedef OCTET_STRING_t ivim_ts_PaymentSecurityData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PaymentSecurityData; +asn_struct_free_f ivim_ts_PaymentSecurityData_free; +asn_struct_print_f ivim_ts_PaymentSecurityData_print; +asn_constr_check_f ivim_ts_PaymentSecurityData_constraint; +per_type_decoder_f ivim_ts_PaymentSecurityData_decode_uper; +per_type_encoder_f ivim_ts_PaymentSecurityData_encode_uper; +per_type_decoder_f ivim_ts_PaymentSecurityData_decode_aper; +per_type_encoder_f ivim_ts_PaymentSecurityData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PaymentSecurityData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PedestrianBicycleDetect.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PedestrianBicycleDetect.h new file mode 100644 index 000000000..fe2da0f6d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PedestrianBicycleDetect.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PedestrianBicycleDetect_H_ +#define _ivim_ts_PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PedestrianBicycleDetect */ +typedef BOOLEAN_t ivim_ts_PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PedestrianBicycleDetect; +asn_struct_free_f ivim_ts_PedestrianBicycleDetect_free; +asn_struct_print_f ivim_ts_PedestrianBicycleDetect_print; +asn_constr_check_f ivim_ts_PedestrianBicycleDetect_constraint; +per_type_decoder_f ivim_ts_PedestrianBicycleDetect_decode_uper; +per_type_encoder_f ivim_ts_PedestrianBicycleDetect_encode_uper; +per_type_decoder_f ivim_ts_PedestrianBicycleDetect_decode_aper; +per_type_encoder_f ivim_ts_PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PedestrianBicycleDetect_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PerformanceClass.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PerformanceClass.h new file mode 100644 index 000000000..b810afabe --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PerformanceClass.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PerformanceClass_H_ +#define _ivim_ts_PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PerformanceClass { + ivim_ts_PerformanceClass_unavailable = 0, + ivim_ts_PerformanceClass_performanceClassA = 1, + ivim_ts_PerformanceClass_performanceClassB = 2 +} e_ivim_ts_PerformanceClass; + +/* ivim_ts_PerformanceClass */ +typedef long ivim_ts_PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PerformanceClass; +asn_struct_free_f ivim_ts_PerformanceClass_free; +asn_struct_print_f ivim_ts_PerformanceClass_print; +asn_constr_check_f ivim_ts_PerformanceClass_constraint; +per_type_decoder_f ivim_ts_PerformanceClass_decode_uper; +per_type_encoder_f ivim_ts_PerformanceClass_encode_uper; +per_type_decoder_f ivim_ts_PerformanceClass_decode_aper; +per_type_encoder_f ivim_ts_PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PerformanceClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PersonalAccountNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PersonalAccountNumber.h new file mode 100644 index 000000000..5a37276f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PersonalAccountNumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PersonalAccountNumber_H_ +#define _ivim_ts_PersonalAccountNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PersonalAccountNumber */ +typedef OCTET_STRING_t ivim_ts_PersonalAccountNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PersonalAccountNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PersonalAccountNumber; +asn_struct_free_f ivim_ts_PersonalAccountNumber_free; +asn_struct_print_f ivim_ts_PersonalAccountNumber_print; +asn_constr_check_f ivim_ts_PersonalAccountNumber_constraint; +per_type_decoder_f ivim_ts_PersonalAccountNumber_decode_uper; +per_type_encoder_f ivim_ts_PersonalAccountNumber_encode_uper; +per_type_decoder_f ivim_ts_PersonalAccountNumber_decode_aper; +per_type_encoder_f ivim_ts_PersonalAccountNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PersonalAccountNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PhoneNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PhoneNumber.h new file mode 100644 index 000000000..837cada57 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PhoneNumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PhoneNumber_H_ +#define _ivim_ts_PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PhoneNumber */ +typedef NumericString_t ivim_ts_PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PhoneNumber; +asn_struct_free_f ivim_ts_PhoneNumber_free; +asn_struct_print_f ivim_ts_PhoneNumber_print; +asn_constr_check_f ivim_ts_PhoneNumber_constraint; +per_type_decoder_f ivim_ts_PhoneNumber_decode_uper; +per_type_encoder_f ivim_ts_PhoneNumber_encode_uper; +per_type_decoder_f ivim_ts_PhoneNumber_decode_aper; +per_type_encoder_f ivim_ts_PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PhoneNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PlatooningRule.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PlatooningRule.h new file mode 100644 index 000000000..10476520f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PlatooningRule.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PlatooningRule_H_ +#define _ivim_ts_PlatooningRule_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PriorityLevel.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevels.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MaxNoOfVehicles.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MaxLenghtOfPlatoon.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_GapBetweenVehicles.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RoadSignCodes; +struct ivim_ts_ConstraintTextLines2; + +/* ivim_ts_PlatooningRule */ +typedef struct ivim_ts_PlatooningRule { + ivim_ts_PriorityLevel_t priority; + ivim_ts_SaeAutomationLevels_t allowedSaeAutomationLevels; + ivim_ts_MaxNoOfVehicles_t *maxNoOfVehicles; /* OPTIONAL */ + ivim_ts_MaxLenghtOfPlatoon_t *maxLenghtOfPlatoon; /* OPTIONAL */ + ivim_ts_GapBetweenVehicles_t *minGapBetweenVehicles; /* OPTIONAL */ + ivim_ts_SpeedValue_t *platoonMaxSpeedLimit; /* OPTIONAL */ + ivim_ts_SpeedValue_t *platoonMinSpeedLimit; /* OPTIONAL */ + ivim_ts_SpeedValue_t *platoonSpeedRecommendation; /* OPTIONAL */ + struct ivim_ts_RoadSignCodes *roadSignCodes; /* OPTIONAL */ + struct ivim_ts_ConstraintTextLines2 *extraText; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PlatooningRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PlatooningRule; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PlatooningRule_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PlatooningRule_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSignCodes.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines2.h" + +#endif /* _ivim_ts_PlatooningRule_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PlatooningRules.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PlatooningRules.h new file mode 100644 index 000000000..3b504c549 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PlatooningRules.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PlatooningRules_H_ +#define _ivim_ts_PlatooningRules_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_PlatooningRule; + +/* ivim_ts_PlatooningRules */ +typedef struct ivim_ts_PlatooningRules { + A_SEQUENCE_OF(struct ivim_ts_PlatooningRule) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PlatooningRules_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PlatooningRules; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_PlatooningRules_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PlatooningRules_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_PlatooningRules_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PlatooningRule.h" + +#endif /* _ivim_ts_PlatooningRules_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PolygonalLine.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PolygonalLine.h new file mode 100644 index 000000000..b196f50fc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PolygonalLine.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PolygonalLine_H_ +#define _ivim_ts_PolygonalLine_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaPositions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePositions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionsWAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PolygonalLine_PR { + ivim_ts_PolygonalLine_PR_NOTHING, /* No components present */ + ivim_ts_PolygonalLine_PR_deltaPositions, + ivim_ts_PolygonalLine_PR_deltaPositionsWithAltitude, + ivim_ts_PolygonalLine_PR_absolutePositions, + ivim_ts_PolygonalLine_PR_absolutePositionsWithAltitude + /* Extensions may appear below */ + +} ivim_ts_PolygonalLine_PR; + +/* ivim_ts_PolygonalLine */ +typedef struct ivim_ts_PolygonalLine { + ivim_ts_PolygonalLine_PR present; + union ivim_ts_PolygonalLine_u { + ivim_ts_DeltaPositions_t deltaPositions; + ivim_ts_DeltaReferencePositions_t deltaPositionsWithAltitude; + ivim_ts_AbsolutePositions_t absolutePositions; + ivim_ts_AbsolutePositionsWAltitude_t absolutePositionsWithAltitude; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PolygonalLine_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PolygonalLine; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_PolygonalLine_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PolygonalLine_1[4]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_PolygonalLine_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PolygonalLine_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosCentMass.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosCentMass.h new file mode 100644 index 000000000..c9016bb6a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosCentMass.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PosCentMass_H_ +#define _ivim_ts_PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PosCentMass { + ivim_ts_PosCentMass_tenCentimeters = 1, + ivim_ts_PosCentMass_unavailable = 63 +} e_ivim_ts_PosCentMass; + +/* ivim_ts_PosCentMass */ +typedef long ivim_ts_PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosCentMass; +asn_struct_free_f ivim_ts_PosCentMass_free; +asn_struct_print_f ivim_ts_PosCentMass_print; +asn_constr_check_f ivim_ts_PosCentMass_constraint; +per_type_decoder_f ivim_ts_PosCentMass_decode_uper; +per_type_encoder_f ivim_ts_PosCentMass_encode_uper; +per_type_decoder_f ivim_ts_PosCentMass_decode_aper; +per_type_encoder_f ivim_ts_PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PosCentMass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosConfidenceEllipse.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosConfidenceEllipse.h new file mode 100644 index 000000000..adfac2a36 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PosConfidenceEllipse_H_ +#define _ivim_ts_PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SemiAxisLength.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PosConfidenceEllipse */ +typedef struct ivim_ts_PosConfidenceEllipse { + ivim_ts_SemiAxisLength_t semiMajorConfidence; + ivim_ts_SemiAxisLength_t semiMinorConfidence; + ivim_ts_HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PosConfidenceEllipse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosFrontAx.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosFrontAx.h new file mode 100644 index 000000000..d09929c54 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosFrontAx.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PosFrontAx_H_ +#define _ivim_ts_PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PosFrontAx { + ivim_ts_PosFrontAx_tenCentimeters = 1, + ivim_ts_PosFrontAx_unavailable = 20 +} e_ivim_ts_PosFrontAx; + +/* ivim_ts_PosFrontAx */ +typedef long ivim_ts_PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosFrontAx; +asn_struct_free_f ivim_ts_PosFrontAx_free; +asn_struct_print_f ivim_ts_PosFrontAx_print; +asn_constr_check_f ivim_ts_PosFrontAx_constraint; +per_type_decoder_f ivim_ts_PosFrontAx_decode_uper; +per_type_encoder_f ivim_ts_PosFrontAx_encode_uper; +per_type_decoder_f ivim_ts_PosFrontAx_decode_aper; +per_type_encoder_f ivim_ts_PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PosFrontAx_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosLonCarr.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosLonCarr.h new file mode 100644 index 000000000..c73d2373f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosLonCarr.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PosLonCarr_H_ +#define _ivim_ts_PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PosLonCarr { + ivim_ts_PosLonCarr_oneCentimeter = 1, + ivim_ts_PosLonCarr_unavailable = 127 +} e_ivim_ts_PosLonCarr; + +/* ivim_ts_PosLonCarr */ +typedef long ivim_ts_PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosLonCarr; +asn_struct_free_f ivim_ts_PosLonCarr_free; +asn_struct_print_f ivim_ts_PosLonCarr_print; +asn_constr_check_f ivim_ts_PosLonCarr_constraint; +per_type_decoder_f ivim_ts_PosLonCarr_decode_uper; +per_type_encoder_f ivim_ts_PosLonCarr_encode_uper; +per_type_decoder_f ivim_ts_PosLonCarr_decode_aper; +per_type_encoder_f ivim_ts_PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PosLonCarr_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosPillar.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosPillar.h new file mode 100644 index 000000000..86672d086 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PosPillar.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PosPillar_H_ +#define _ivim_ts_PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PosPillar { + ivim_ts_PosPillar_tenCentimeters = 1, + ivim_ts_PosPillar_unavailable = 30 +} e_ivim_ts_PosPillar; + +/* ivim_ts_PosPillar */ +typedef long ivim_ts_PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosPillar; +asn_struct_free_f ivim_ts_PosPillar_free; +asn_struct_print_f ivim_ts_PosPillar_print; +asn_constr_check_f ivim_ts_PosPillar_constraint; +per_type_decoder_f ivim_ts_PosPillar_decode_uper; +per_type_encoder_f ivim_ts_PosPillar_encode_uper; +per_type_decoder_f ivim_ts_PosPillar_decode_aper; +per_type_encoder_f ivim_ts_PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PosPillar_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Position3D-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Position3D-addGrpC.h new file mode 100644 index 000000000..895b24f6a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Position3D-addGrpC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Position3D_addGrpC_H_ +#define _ivim_ts_Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Position3D-addGrpC */ +typedef struct ivim_ts_Position3D_addGrpC { + ivim_ts_Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Position3D_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Position3D.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Position3D.h new file mode 100644 index 000000000..a6b858238 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Position3D.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Position3D_H_ +#define _ivim_ts_Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_Position3D; + +/* ivim_ts_Position3D */ +typedef struct ivim_ts_Position3D { + ivim_ts_Latitude_t lat; + ivim_ts_Longitude_t Long; + ivim_ts_Elevation_t *elevation; /* OPTIONAL */ + struct ivim_ts_Position3D__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_Position3D) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_Position3D_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionConfidence.h new file mode 100644 index 000000000..3ebd69add --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionConfidence.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PositionConfidence_H_ +#define _ivim_ts_PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PositionConfidence { + ivim_ts_PositionConfidence_unavailable = 0, + ivim_ts_PositionConfidence_a500m = 1, + ivim_ts_PositionConfidence_a200m = 2, + ivim_ts_PositionConfidence_a100m = 3, + ivim_ts_PositionConfidence_a50m = 4, + ivim_ts_PositionConfidence_a20m = 5, + ivim_ts_PositionConfidence_a10m = 6, + ivim_ts_PositionConfidence_a5m = 7, + ivim_ts_PositionConfidence_a2m = 8, + ivim_ts_PositionConfidence_a1m = 9, + ivim_ts_PositionConfidence_a50cm = 10, + ivim_ts_PositionConfidence_a20cm = 11, + ivim_ts_PositionConfidence_a10cm = 12, + ivim_ts_PositionConfidence_a5cm = 13, + ivim_ts_PositionConfidence_a2cm = 14, + ivim_ts_PositionConfidence_a1cm = 15 +} e_ivim_ts_PositionConfidence; + +/* ivim_ts_PositionConfidence */ +typedef long ivim_ts_PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PositionConfidence_specs_1; +asn_struct_free_f ivim_ts_PositionConfidence_free; +asn_struct_print_f ivim_ts_PositionConfidence_print; +asn_constr_check_f ivim_ts_PositionConfidence_constraint; +per_type_decoder_f ivim_ts_PositionConfidence_decode_uper; +per_type_encoder_f ivim_ts_PositionConfidence_encode_uper; +per_type_decoder_f ivim_ts_PositionConfidence_decode_aper; +per_type_encoder_f ivim_ts_PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PositionConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionConfidenceSet.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionConfidenceSet.h new file mode 100644 index 000000000..48ed523ce --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionConfidenceSet.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PositionConfidenceSet_H_ +#define _ivim_ts_PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PositionConfidence.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PositionConfidenceSet */ +typedef struct ivim_ts_PositionConfidenceSet { + ivim_ts_PositionConfidence_t pos; + ivim_ts_ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PositionConfidenceSet_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionOfOccupants.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionOfOccupants.h new file mode 100644 index 000000000..c2cc62fcc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionOfOccupants.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PositionOfOccupants_H_ +#define _ivim_ts_PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PositionOfOccupants { + ivim_ts_PositionOfOccupants_row1LeftOccupied = 0, + ivim_ts_PositionOfOccupants_row1RightOccupied = 1, + ivim_ts_PositionOfOccupants_row1MidOccupied = 2, + ivim_ts_PositionOfOccupants_row1NotDetectable = 3, + ivim_ts_PositionOfOccupants_row1NotPresent = 4, + ivim_ts_PositionOfOccupants_row2LeftOccupied = 5, + ivim_ts_PositionOfOccupants_row2RightOccupied = 6, + ivim_ts_PositionOfOccupants_row2MidOccupied = 7, + ivim_ts_PositionOfOccupants_row2NotDetectable = 8, + ivim_ts_PositionOfOccupants_row2NotPresent = 9, + ivim_ts_PositionOfOccupants_row3LeftOccupied = 10, + ivim_ts_PositionOfOccupants_row3RightOccupied = 11, + ivim_ts_PositionOfOccupants_row3MidOccupied = 12, + ivim_ts_PositionOfOccupants_row3NotDetectable = 13, + ivim_ts_PositionOfOccupants_row3NotPresent = 14, + ivim_ts_PositionOfOccupants_row4LeftOccupied = 15, + ivim_ts_PositionOfOccupants_row4RightOccupied = 16, + ivim_ts_PositionOfOccupants_row4MidOccupied = 17, + ivim_ts_PositionOfOccupants_row4NotDetectable = 18, + ivim_ts_PositionOfOccupants_row4NotPresent = 19 +} e_ivim_ts_PositionOfOccupants; + +/* ivim_ts_PositionOfOccupants */ +typedef BIT_STRING_t ivim_ts_PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositionOfOccupants; +asn_struct_free_f ivim_ts_PositionOfOccupants_free; +asn_struct_print_f ivim_ts_PositionOfOccupants_print; +asn_constr_check_f ivim_ts_PositionOfOccupants_constraint; +per_type_decoder_f ivim_ts_PositionOfOccupants_decode_uper; +per_type_encoder_f ivim_ts_PositionOfOccupants_encode_uper; +per_type_decoder_f ivim_ts_PositionOfOccupants_decode_aper; +per_type_encoder_f ivim_ts_PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PositionOfOccupants_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionOfPillars.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionOfPillars.h new file mode 100644 index 000000000..f274fe371 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionOfPillars.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PositionOfPillars_H_ +#define _ivim_ts_PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PositionOfPillars */ +typedef struct ivim_ts_PositionOfPillars { + A_SEQUENCE_OF(ivim_ts_PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PositionOfPillars_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionalAccuracy.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionalAccuracy.h new file mode 100644 index 000000000..36bf7d40e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositionalAccuracy.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PositionalAccuracy_H_ +#define _ivim_ts_PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisAccuracy.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SemiMinorAxisAccuracy.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PositionalAccuracy */ +typedef struct ivim_ts_PositionalAccuracy { + ivim_ts_SemiMajorAxisAccuracy_t semiMajor; + ivim_ts_SemiMinorAxisAccuracy_t semiMinor; + ivim_ts_SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PositionalAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositioningSolutionType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositioningSolutionType.h new file mode 100644 index 000000000..a405dabe1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PositioningSolutionType.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PositioningSolutionType_H_ +#define _ivim_ts_PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PositioningSolutionType { + ivim_ts_PositioningSolutionType_noPositioningSolution = 0, + ivim_ts_PositioningSolutionType_sGNSS = 1, + ivim_ts_PositioningSolutionType_dGNSS = 2, + ivim_ts_PositioningSolutionType_sGNSSplusDR = 3, + ivim_ts_PositioningSolutionType_dGNSSplusDR = 4, + ivim_ts_PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_ivim_ts_PositioningSolutionType; + +/* ivim_ts_PositioningSolutionType */ +typedef long ivim_ts_PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositioningSolutionType; +asn_struct_free_f ivim_ts_PositioningSolutionType_free; +asn_struct_print_f ivim_ts_PositioningSolutionType_print; +asn_constr_check_f ivim_ts_PositioningSolutionType_constraint; +per_type_decoder_f ivim_ts_PositioningSolutionType_decode_uper; +per_type_encoder_f ivim_ts_PositioningSolutionType_encode_uper; +per_type_decoder_f ivim_ts_PositioningSolutionType_decode_aper; +per_type_encoder_f ivim_ts_PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PositioningSolutionType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PostCrashSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PostCrashSubCauseCode.h new file mode 100644 index 000000000..4baf3336f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PostCrashSubCauseCode.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PostCrashSubCauseCode_H_ +#define _ivim_ts_PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PostCrashSubCauseCode { + ivim_ts_PostCrashSubCauseCode_unavailable = 0, + ivim_ts_PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + ivim_ts_PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + ivim_ts_PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + ivim_ts_PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_ivim_ts_PostCrashSubCauseCode; + +/* ivim_ts_PostCrashSubCauseCode */ +typedef long ivim_ts_PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PostCrashSubCauseCode; +asn_struct_free_f ivim_ts_PostCrashSubCauseCode_free; +asn_struct_print_f ivim_ts_PostCrashSubCauseCode_print; +asn_constr_check_f ivim_ts_PostCrashSubCauseCode_constraint; +per_type_decoder_f ivim_ts_PostCrashSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_PostCrashSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_PostCrashSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PostCrashSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PreemptPriorityList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PreemptPriorityList.h new file mode 100644 index 000000000..af0787d3a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PreemptPriorityList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PreemptPriorityList_H_ +#define _ivim_ts_PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SignalControlZone; + +/* ivim_ts_PreemptPriorityList */ +typedef struct ivim_ts_PreemptPriorityList { + A_SEQUENCE_OF(struct ivim_ts_SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalControlZone.h" + +#endif /* _ivim_ts_PreemptPriorityList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponse.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponse.h new file mode 100644 index 000000000..bf70346e4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponse.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PrioritizationResponse_H_ +#define _ivim_ts_PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_StationID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseStatus.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PrioritizationResponse */ +typedef struct ivim_ts_PrioritizationResponse { + ivim_ts_StationID_t stationID; + ivim_ts_PrioritizationResponseStatus_t priorState; + ivim_ts_SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PrioritizationResponse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseList.h new file mode 100644 index 000000000..de611a11a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PrioritizationResponseList_H_ +#define _ivim_ts_PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_PrioritizationResponse; + +/* ivim_ts_PrioritizationResponseList */ +typedef struct ivim_ts_PrioritizationResponseList { + A_SEQUENCE_OF(struct ivim_ts_PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponse.h" + +#endif /* _ivim_ts_PrioritizationResponseList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseStatus.h new file mode 100644 index 000000000..1721d93f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseStatus.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PrioritizationResponseStatus_H_ +#define _ivim_ts_PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PrioritizationResponseStatus { + ivim_ts_PrioritizationResponseStatus_unknown = 0, + ivim_ts_PrioritizationResponseStatus_requested = 1, + ivim_ts_PrioritizationResponseStatus_processing = 2, + ivim_ts_PrioritizationResponseStatus_watchOtherTraffic = 3, + ivim_ts_PrioritizationResponseStatus_granted = 4, + ivim_ts_PrioritizationResponseStatus_rejected = 5, + ivim_ts_PrioritizationResponseStatus_maxPresence = 6, + ivim_ts_PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_ivim_ts_PrioritizationResponseStatus; + +/* ivim_ts_PrioritizationResponseStatus */ +typedef long ivim_ts_PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PrioritizationResponseStatus_specs_1; +asn_struct_free_f ivim_ts_PrioritizationResponseStatus_free; +asn_struct_print_f ivim_ts_PrioritizationResponseStatus_print; +asn_constr_check_f ivim_ts_PrioritizationResponseStatus_constraint; +per_type_decoder_f ivim_ts_PrioritizationResponseStatus_decode_uper; +per_type_encoder_f ivim_ts_PrioritizationResponseStatus_encode_uper; +per_type_decoder_f ivim_ts_PrioritizationResponseStatus_decode_aper; +per_type_encoder_f ivim_ts_PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PrioritizationResponseStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PriorityLevel.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PriorityLevel.h new file mode 100644 index 000000000..8effb5353 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PriorityLevel.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PriorityLevel_H_ +#define _ivim_ts_PriorityLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PriorityLevel */ +typedef long ivim_ts_PriorityLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PriorityLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PriorityLevel; +asn_struct_free_f ivim_ts_PriorityLevel_free; +asn_struct_print_f ivim_ts_PriorityLevel_print; +asn_constr_check_f ivim_ts_PriorityLevel_constraint; +per_type_decoder_f ivim_ts_PriorityLevel_decode_uper; +per_type_encoder_f ivim_ts_PriorityLevel_encode_uper; +per_type_decoder_f ivim_ts_PriorityLevel_decode_aper; +per_type_encoder_f ivim_ts_PriorityLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PriorityLevel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PriorityRequestType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PriorityRequestType.h new file mode 100644 index 000000000..4f23d4945 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PriorityRequestType.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PriorityRequestType_H_ +#define _ivim_ts_PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PriorityRequestType { + ivim_ts_PriorityRequestType_priorityRequestTypeReserved = 0, + ivim_ts_PriorityRequestType_priorityRequest = 1, + ivim_ts_PriorityRequestType_priorityRequestUpdate = 2, + ivim_ts_PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_ivim_ts_PriorityRequestType; + +/* ivim_ts_PriorityRequestType */ +typedef long ivim_ts_PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PriorityRequestType_specs_1; +asn_struct_free_f ivim_ts_PriorityRequestType_free; +asn_struct_print_f ivim_ts_PriorityRequestType_print; +asn_constr_check_f ivim_ts_PriorityRequestType_constraint; +per_type_decoder_f ivim_ts_PriorityRequestType_decode_uper; +per_type_encoder_f ivim_ts_PriorityRequestType_encode_uper; +per_type_decoder_f ivim_ts_PriorityRequestType_decode_aper; +per_type_encoder_f ivim_ts_PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PriorityRequestType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZone.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZone.h new file mode 100644 index 000000000..ae9f68133 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ProtectedCommunicationZone_H_ +#define _ivim_ts_ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TimestampIts.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneRadius.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ProtectedCommunicationZone */ +typedef struct ivim_ts_ProtectedCommunicationZone { + ivim_ts_ProtectedZoneType_t protectedZoneType; + ivim_ts_TimestampIts_t *expiryTime; /* OPTIONAL */ + ivim_ts_Latitude_t protectedZoneLatitude; + ivim_ts_Longitude_t protectedZoneLongitude; + ivim_ts_ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + ivim_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; +} ivim_ts_ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ProtectedCommunicationZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZonesRSU.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZonesRSU.h new file mode 100644 index 000000000..d01ffad1c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZonesRSU.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ProtectedCommunicationZonesRSU_H_ +#define _ivim_ts_ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ProtectedCommunicationZone; + +/* ivim_ts_ProtectedCommunicationZonesRSU */ +typedef struct ivim_ts_ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct ivim_ts_ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZone.h" + +#endif /* _ivim_ts_ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneID.h new file mode 100644 index 000000000..9fe949766 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ProtectedZoneID_H_ +#define _ivim_ts_ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ProtectedZoneID */ +typedef long ivim_ts_ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedZoneID; +asn_struct_free_f ivim_ts_ProtectedZoneID_free; +asn_struct_print_f ivim_ts_ProtectedZoneID_print; +asn_constr_check_f ivim_ts_ProtectedZoneID_constraint; +per_type_decoder_f ivim_ts_ProtectedZoneID_decode_uper; +per_type_encoder_f ivim_ts_ProtectedZoneID_encode_uper; +per_type_decoder_f ivim_ts_ProtectedZoneID_decode_aper; +per_type_encoder_f ivim_ts_ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ProtectedZoneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneRadius.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneRadius.h new file mode 100644 index 000000000..90c7c9613 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneRadius.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ProtectedZoneRadius_H_ +#define _ivim_ts_ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ProtectedZoneRadius { + ivim_ts_ProtectedZoneRadius_oneMeter = 1 +} e_ivim_ts_ProtectedZoneRadius; + +/* ivim_ts_ProtectedZoneRadius */ +typedef long ivim_ts_ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedZoneRadius; +asn_struct_free_f ivim_ts_ProtectedZoneRadius_free; +asn_struct_print_f ivim_ts_ProtectedZoneRadius_print; +asn_constr_check_f ivim_ts_ProtectedZoneRadius_constraint; +per_type_decoder_f ivim_ts_ProtectedZoneRadius_decode_uper; +per_type_encoder_f ivim_ts_ProtectedZoneRadius_encode_uper; +per_type_decoder_f ivim_ts_ProtectedZoneRadius_decode_aper; +per_type_encoder_f ivim_ts_ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ProtectedZoneRadius_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneType.h new file mode 100644 index 000000000..b5eeedd13 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneType.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ProtectedZoneType_H_ +#define _ivim_ts_ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ProtectedZoneType { + ivim_ts_ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + ivim_ts_ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_ivim_ts_ProtectedZoneType; + +/* ivim_ts_ProtectedZoneType */ +typedef long ivim_ts_ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ProtectedZoneType_specs_1; +asn_struct_free_f ivim_ts_ProtectedZoneType_free; +asn_struct_print_f ivim_ts_ProtectedZoneType_print; +asn_constr_check_f ivim_ts_ProtectedZoneType_constraint; +per_type_decoder_f ivim_ts_ProtectedZoneType_decode_uper; +per_type_encoder_f ivim_ts_ProtectedZoneType_encode_uper; +per_type_decoder_f ivim_ts_ProtectedZoneType_decode_aper; +per_type_encoder_f ivim_ts_ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ProtectedZoneType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Provider.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Provider.h new file mode 100644 index 000000000..1c239aa9c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Provider.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Provider_H_ +#define _ivim_ts_Provider_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IssuerIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Provider */ +typedef struct ivim_ts_Provider { + ivim_ts_CountryCode_t countryCode; + ivim_ts_IssuerIdentifier_t providerIdentifier; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Provider_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Provider; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Provider_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Provider_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Provider_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivation.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivation.h new file mode 100644 index 000000000..4f6d2133d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PtActivation_H_ +#define _ivim_ts_PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PtActivationType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PtActivation */ +typedef struct ivim_ts_PtActivation { + ivim_ts_PtActivationType_t ptActivationType; + ivim_ts_PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PtActivation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivationData.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivationData.h new file mode 100644 index 000000000..00e318dfa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivationData.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PtActivationData_H_ +#define _ivim_ts_PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PtActivationData */ +typedef OCTET_STRING_t ivim_ts_PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PtActivationData; +asn_struct_free_f ivim_ts_PtActivationData_free; +asn_struct_print_f ivim_ts_PtActivationData_print; +asn_constr_check_f ivim_ts_PtActivationData_constraint; +per_type_decoder_f ivim_ts_PtActivationData_decode_uper; +per_type_encoder_f ivim_ts_PtActivationData_encode_uper; +per_type_decoder_f ivim_ts_PtActivationData_decode_aper; +per_type_encoder_f ivim_ts_PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PtActivationData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivationType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivationType.h new file mode 100644 index 000000000..54aed60f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtActivationType.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PtActivationType_H_ +#define _ivim_ts_PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PtActivationType { + ivim_ts_PtActivationType_undefinedCodingType = 0, + ivim_ts_PtActivationType_r09_16CodingType = 1, + ivim_ts_PtActivationType_vdv_50149CodingType = 2 +} e_ivim_ts_PtActivationType; + +/* ivim_ts_PtActivationType */ +typedef long ivim_ts_PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PtActivationType; +asn_struct_free_f ivim_ts_PtActivationType_free; +asn_struct_print_f ivim_ts_PtActivationType_print; +asn_constr_check_f ivim_ts_PtActivationType_constraint; +per_type_decoder_f ivim_ts_PtActivationType_decode_uper; +per_type_encoder_f ivim_ts_PtActivationType_encode_uper; +per_type_decoder_f ivim_ts_PtActivationType_decode_aper; +per_type_encoder_f ivim_ts_PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PtActivationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtvRequestType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtvRequestType.h new file mode 100644 index 000000000..cccefdbff --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PtvRequestType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PtvRequestType_H_ +#define _ivim_ts_PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_PtvRequestType { + ivim_ts_PtvRequestType_preRequest = 0, + ivim_ts_PtvRequestType_mainRequest = 1, + ivim_ts_PtvRequestType_doorCloseRequest = 2, + ivim_ts_PtvRequestType_cancelRequest = 3, + ivim_ts_PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_ivim_ts_PtvRequestType; + +/* ivim_ts_PtvRequestType */ +typedef long ivim_ts_PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PtvRequestType_specs_1; +asn_struct_free_f ivim_ts_PtvRequestType_free; +asn_struct_print_f ivim_ts_PtvRequestType_print; +asn_constr_check_f ivim_ts_PtvRequestType_constraint; +per_type_decoder_f ivim_ts_PtvRequestType_decode_uper; +per_type_encoder_f ivim_ts_PtvRequestType_encode_uper; +per_type_decoder_f ivim_ts_PtvRequestType_decode_aper; +per_type_encoder_f ivim_ts_PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PtvRequestType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PurseBalance.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PurseBalance.h new file mode 100644 index 000000000..2f3145bd2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_PurseBalance.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_PurseBalance_H_ +#define _ivim_ts_PurseBalance_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignedValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PayUnit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_PurseBalance */ +typedef struct ivim_ts_PurseBalance { + ivim_ts_SignedValue_t purseValue; + ivim_ts_PayUnit_t purseUnit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_PurseBalance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_PurseBalance; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PurseBalance_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_PurseBalance_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_PurseBalance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RSCUnit.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RSCUnit.h new file mode 100644 index 000000000..8d49b1d08 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RSCUnit.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RSCUnit_H_ +#define _ivim_ts_RSCUnit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RSCUnit { + ivim_ts_RSCUnit_kmperh = 0, + ivim_ts_RSCUnit_milesperh = 1, + ivim_ts_RSCUnit_kilometer = 2, + ivim_ts_RSCUnit_meter = 3, + ivim_ts_RSCUnit_decimeter = 4, + ivim_ts_RSCUnit_centimeter = 5, + ivim_ts_RSCUnit_mile = 6, + ivim_ts_RSCUnit_yard = 7, + ivim_ts_RSCUnit_foot = 8, + ivim_ts_RSCUnit_minutesOfTime = 9, + ivim_ts_RSCUnit_tonnes = 10, + ivim_ts_RSCUnit_hundredkg = 11, + ivim_ts_RSCUnit_pound = 12, + ivim_ts_RSCUnit_rateOfIncline = 13 +} e_ivim_ts_RSCUnit; + +/* ivim_ts_RSCUnit */ +typedef long ivim_ts_RSCUnit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RSCUnit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RSCUnit; +asn_struct_free_f ivim_ts_RSCUnit_free; +asn_struct_print_f ivim_ts_RSCUnit_print; +asn_constr_check_f ivim_ts_RSCUnit_constraint; +per_type_decoder_f ivim_ts_RSCUnit_decode_uper; +per_type_encoder_f ivim_ts_RSCUnit_encode_uper; +per_type_decoder_f ivim_ts_RSCUnit_decode_aper; +per_type_encoder_f ivim_ts_RSCUnit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RSCUnit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RSCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RSCode.h new file mode 100644 index 000000000..9ffaf6e06 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RSCode.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RSCode_H_ +#define _ivim_ts_RSCode_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_VcCode.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ISO14823Code.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AnyCatalogue.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RSCode__code_PR { + ivim_ts_RSCode__code_PR_NOTHING, /* No components present */ + ivim_ts_RSCode__code_PR_viennaConvention, + ivim_ts_RSCode__code_PR_iso14823, + ivim_ts_RSCode__code_PR_itisCodes, + ivim_ts_RSCode__code_PR_anyCatalogue + /* Extensions may appear below */ + +} ivim_ts_RSCode__code_PR; + +/* ivim_ts_RSCode */ +typedef struct ivim_ts_RSCode { + long *layoutComponentId; /* OPTIONAL */ + struct ivim_ts_RSCode__code { + ivim_ts_RSCode__code_PR present; + union ivim_ts_RSCode__ivim_ts_code_u { + ivim_ts_VcCode_t viennaConvention; + ivim_ts_ISO14823Code_t iso14823; + long itisCodes; + ivim_ts_AnyCatalogue_t anyCatalogue; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } code; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RSCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RSCode; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RSCode_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RSCode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RSCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCM-Revision.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCM-Revision.h new file mode 100644 index 000000000..fd56c3fcd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCM-Revision.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RTCM_Revision_H_ +#define _ivim_ts_RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RTCM_Revision { + ivim_ts_RTCM_Revision_unknown = 0, + ivim_ts_RTCM_Revision_rtcmRev2 = 1, + ivim_ts_RTCM_Revision_rtcmRev3 = 2, + ivim_ts_RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_ivim_ts_RTCM_Revision; + +/* ivim_ts_RTCM-Revision */ +typedef long ivim_ts_RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RTCM_Revision_specs_1; +asn_struct_free_f ivim_ts_RTCM_Revision_free; +asn_struct_print_f ivim_ts_RTCM_Revision_print; +asn_constr_check_f ivim_ts_RTCM_Revision_constraint; +per_type_decoder_f ivim_ts_RTCM_Revision_decode_uper; +per_type_encoder_f ivim_ts_RTCM_Revision_encode_uper; +per_type_decoder_f ivim_ts_RTCM_Revision_decode_aper; +per_type_encoder_f ivim_ts_RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RTCM_Revision_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMcorrections.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMcorrections.h new file mode 100644 index 000000000..7c1e30c4e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMcorrections.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RTCMcorrections_H_ +#define _ivim_ts_RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCM-Revision.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_FullPositionVector; +struct ivim_ts_RTCMheader; +struct ivim_ts_Reg_RTCMcorrections; + +/* ivim_ts_RTCMcorrections */ +typedef struct ivim_ts_RTCMcorrections { + ivim_ts_MsgCount_t msgCnt; + ivim_ts_RTCM_Revision_t rev; + ivim_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct ivim_ts_FullPositionVector *anchorPoint; /* OPTIONAL */ + struct ivim_ts_RTCMheader *rtcmHeader; /* OPTIONAL */ + ivim_ts_RTCMmessageList_t msgs; + struct ivim_ts_RTCMcorrections__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_RTCMcorrections) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_FullPositionVector.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCMheader.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_RTCMcorrections_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMheader.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMheader.h new file mode 100644 index 000000000..975822c3b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMheader.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RTCMheader_H_ +#define _ivim_ts_RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GNSSstatus.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RTCMheader */ +typedef struct ivim_ts_RTCMheader { + ivim_ts_GNSSstatus_t status; + ivim_ts_AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RTCMheader_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMmessage.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMmessage.h new file mode 100644 index 000000000..e6c8ec5ea --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMmessage.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RTCMmessage_H_ +#define _ivim_ts_RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RTCMmessage */ +typedef OCTET_STRING_t ivim_ts_RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCMmessage; +asn_struct_free_f ivim_ts_RTCMmessage_free; +asn_struct_print_f ivim_ts_RTCMmessage_print; +asn_constr_check_f ivim_ts_RTCMmessage_constraint; +per_type_decoder_f ivim_ts_RTCMmessage_decode_uper; +per_type_encoder_f ivim_ts_RTCMmessage_encode_uper; +per_type_decoder_f ivim_ts_RTCMmessage_decode_aper; +per_type_encoder_f ivim_ts_RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RTCMmessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMmessageList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMmessageList.h new file mode 100644 index 000000000..ba9e85008 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RTCMmessageList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RTCMmessageList_H_ +#define _ivim_ts_RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RTCMmessageList */ +typedef struct ivim_ts_RTCMmessageList { + A_SEQUENCE_OF(ivim_ts_RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RTCMmessageList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RccPart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RccPart.h new file mode 100644 index 000000000..a66b7fa37 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RccPart.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RccPart_H_ +#define _ivim_ts_RccPart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneConfiguration.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RccPart */ +typedef struct ivim_ts_RccPart { + ivim_ts_ZoneIds_t relevanceZoneIds; + ivim_ts_RoadType_t roadType; + ivim_ts_LaneConfiguration_t laneConfiguration; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RccPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RccPart; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RccPart_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RccPart_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RccPart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptAuthenticator.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptAuthenticator.h new file mode 100644 index 000000000..5936b9d7f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptAuthenticator.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptAuthenticator_H_ +#define _ivim_ts_ReceiptAuthenticator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptAuthenticator */ +typedef OCTET_STRING_t ivim_ts_ReceiptAuthenticator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptAuthenticator; +asn_struct_free_f ivim_ts_ReceiptAuthenticator_free; +asn_struct_print_f ivim_ts_ReceiptAuthenticator_print; +asn_constr_check_f ivim_ts_ReceiptAuthenticator_constraint; +per_type_decoder_f ivim_ts_ReceiptAuthenticator_decode_uper; +per_type_encoder_f ivim_ts_ReceiptAuthenticator_encode_uper; +per_type_decoder_f ivim_ts_ReceiptAuthenticator_decode_aper; +per_type_encoder_f ivim_ts_ReceiptAuthenticator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptAuthenticator_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptContract.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptContract.h new file mode 100644 index 000000000..8371951cf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptContract.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptContract_H_ +#define _ivim_ts_ReceiptContract_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Provider.h" +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Int4.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptContract */ +typedef struct ivim_ts_ReceiptContract { + ivim_ts_Provider_t sessionContractProvider; + OCTET_STRING_t sessionTypeOfContract; + ivim_ts_Int4_t sessionContractSerialNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ReceiptContract_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptContract; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptContract_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData.h new file mode 100644 index 000000000..9eac683db --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptData_H_ +#define _ivim_ts_ReceiptData_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DateAndTime.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Provider.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SessionLocation.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ResultOp.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentFee.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptData */ +typedef struct ivim_ts_ReceiptData { + ivim_ts_DateAndTime_t sessionTime; + ivim_ts_Provider_t sessionServiceProvider; + ivim_ts_Int2_t locationOfStation; + ivim_ts_SessionLocation_t sessionLocation; + ivim_ts_Int1_t sessionType; + ivim_ts_ResultOp_t sessionResult; + ivim_ts_Int1_t sessionTariffClass; + ivim_ts_Int1_t sessionClaimedClass; + ivim_ts_PaymentFee_t sessionFee; + ivim_ts_Provider_t sessionContractProvider; + OCTET_STRING_t sessionTypeOfContract; + long sessionContextVersion; + OCTET_STRING_t receiptDataAuthenticator; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ReceiptData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptData; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ReceiptData_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ReceiptData_1[13]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData1.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData1.h new file mode 100644 index 000000000..0a058413c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData1.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptData1_H_ +#define _ivim_ts_ReceiptData1_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptData1 */ +typedef ivim_ts_ReceiptData_t ivim_ts_ReceiptData1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptData1; +asn_struct_free_f ivim_ts_ReceiptData1_free; +asn_struct_print_f ivim_ts_ReceiptData1_print; +asn_constr_check_f ivim_ts_ReceiptData1_constraint; +per_type_decoder_f ivim_ts_ReceiptData1_decode_uper; +per_type_encoder_f ivim_ts_ReceiptData1_encode_uper; +per_type_decoder_f ivim_ts_ReceiptData1_decode_aper; +per_type_encoder_f ivim_ts_ReceiptData1_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptData1_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData2.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData2.h new file mode 100644 index 000000000..d63e74ca7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptData2.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptData2_H_ +#define _ivim_ts_ReceiptData2_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptData2 */ +typedef ivim_ts_ReceiptData_t ivim_ts_ReceiptData2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptData2; +asn_struct_free_f ivim_ts_ReceiptData2_free; +asn_struct_print_f ivim_ts_ReceiptData2_print; +asn_constr_check_f ivim_ts_ReceiptData2_constraint; +per_type_decoder_f ivim_ts_ReceiptData2_decode_uper; +per_type_encoder_f ivim_ts_ReceiptData2_encode_uper; +per_type_decoder_f ivim_ts_ReceiptData2_decode_aper; +per_type_encoder_f ivim_ts_ReceiptData2_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptData2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptDistance.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptDistance.h new file mode 100644 index 000000000..c9be4c887 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptDistance.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptDistance_H_ +#define _ivim_ts_ReceiptDistance_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int3.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptDistance */ +typedef ivim_ts_Int3_t ivim_ts_ReceiptDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptDistance; +asn_struct_free_f ivim_ts_ReceiptDistance_free; +asn_struct_print_f ivim_ts_ReceiptDistance_print; +asn_constr_check_f ivim_ts_ReceiptDistance_constraint; +per_type_decoder_f ivim_ts_ReceiptDistance_decode_uper; +per_type_encoder_f ivim_ts_ReceiptDistance_encode_uper; +per_type_decoder_f ivim_ts_ReceiptDistance_decode_aper; +per_type_encoder_f ivim_ts_ReceiptDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptDistance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptFinancialPart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptFinancialPart.h new file mode 100644 index 000000000..6c9473ecc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptFinancialPart.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptFinancialPart_H_ +#define _ivim_ts_ReceiptFinancialPart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PersonalAccountNumber.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentFee.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PurseBalance.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Int4.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptFinancialPart */ +typedef struct ivim_ts_ReceiptFinancialPart { + ivim_ts_PersonalAccountNumber_t personalAccountNumber; + ivim_ts_PaymentFee_t sessionPaymentFee; + ivim_ts_PurseBalance_t sessionCurrentBalance; + ivim_ts_Int4_t receiptFinancialSerialNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ReceiptFinancialPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptFinancialPart; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptFinancialPart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptICC-Id.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptICC-Id.h new file mode 100644 index 000000000..b4a93875f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptICC-Id.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptICC_Id_H_ +#define _ivim_ts_ReceiptICC_Id_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ICC-Id.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptICC-Id */ +typedef ivim_ts_ICC_Id_t ivim_ts_ReceiptICC_Id_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptICC_Id; +asn_struct_free_f ivim_ts_ReceiptICC_Id_free; +asn_struct_print_f ivim_ts_ReceiptICC_Id_print; +asn_constr_check_f ivim_ts_ReceiptICC_Id_constraint; +per_type_decoder_f ivim_ts_ReceiptICC_Id_decode_uper; +per_type_encoder_f ivim_ts_ReceiptICC_Id_encode_uper; +per_type_decoder_f ivim_ts_ReceiptICC_Id_decode_aper; +per_type_encoder_f ivim_ts_ReceiptICC_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptICC_Id_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptOBUId.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptOBUId.h new file mode 100644 index 000000000..358992722 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptOBUId.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptOBUId_H_ +#define _ivim_ts_ReceiptOBUId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptOBUId */ +typedef OCTET_STRING_t ivim_ts_ReceiptOBUId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptOBUId; +asn_struct_free_f ivim_ts_ReceiptOBUId_free; +asn_struct_print_f ivim_ts_ReceiptOBUId_print; +asn_constr_check_f ivim_ts_ReceiptOBUId_constraint; +per_type_decoder_f ivim_ts_ReceiptOBUId_decode_uper; +per_type_encoder_f ivim_ts_ReceiptOBUId_encode_uper; +per_type_decoder_f ivim_ts_ReceiptOBUId_decode_aper; +per_type_encoder_f ivim_ts_ReceiptOBUId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptOBUId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptServicePart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptServicePart.h new file mode 100644 index 000000000..b2bb3fa9a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptServicePart.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptServicePart_H_ +#define _ivim_ts_ReceiptServicePart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DateAndTime.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Provider.h" +#include +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_StationType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ResultOp.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ResultFin.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptServicePart */ +typedef struct ivim_ts_ReceiptServicePart { + ivim_ts_DateAndTime_t sessionTime; + ivim_ts_Provider_t sessionServiceProvider; + long stationLocation; + BIT_STRING_t sessionLocation; + ivim_ts_EfcDsrcApplication_StationType_t typeOfSession; + ivim_ts_ResultOp_t sessionResultOperational; + ivim_ts_ResultFin_t sessionResultFinancial; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ReceiptServicePart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptServicePart; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptServicePart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptServiceSerialNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptServiceSerialNumber.h new file mode 100644 index 000000000..865463a4a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptServiceSerialNumber.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptServiceSerialNumber_H_ +#define _ivim_ts_ReceiptServiceSerialNumber_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int3.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptServiceSerialNumber */ +typedef ivim_ts_Int3_t ivim_ts_ReceiptServiceSerialNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptServiceSerialNumber; +asn_struct_free_f ivim_ts_ReceiptServiceSerialNumber_free; +asn_struct_print_f ivim_ts_ReceiptServiceSerialNumber_print; +asn_constr_check_f ivim_ts_ReceiptServiceSerialNumber_constraint; +per_type_decoder_f ivim_ts_ReceiptServiceSerialNumber_decode_uper; +per_type_encoder_f ivim_ts_ReceiptServiceSerialNumber_encode_uper; +per_type_decoder_f ivim_ts_ReceiptServiceSerialNumber_decode_aper; +per_type_encoder_f ivim_ts_ReceiptServiceSerialNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptServiceSerialNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptText.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptText.h new file mode 100644 index 000000000..12780f302 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReceiptText.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReceiptText_H_ +#define _ivim_ts_ReceiptText_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReceiptText */ +typedef OCTET_STRING_t ivim_ts_ReceiptText_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptText; +asn_struct_free_f ivim_ts_ReceiptText_free; +asn_struct_print_f ivim_ts_ReceiptText_print; +asn_constr_check_f ivim_ts_ReceiptText_constraint; +per_type_decoder_f ivim_ts_ReceiptText_decode_uper; +per_type_encoder_f ivim_ts_ReceiptText_encode_uper; +per_type_decoder_f ivim_ts_ReceiptText_decode_aper; +per_type_encoder_f ivim_ts_ReceiptText_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReceiptText_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReferencePosition.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReferencePosition.h new file mode 100644 index 000000000..9db70bcee --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ReferencePosition_H_ +#define _ivim_ts_ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PosConfidenceEllipse.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ReferencePosition */ +typedef struct ivim_ts_ReferencePosition { + ivim_ts_Latitude_t latitude; + ivim_ts_Longitude_t longitude; + ivim_ts_PosConfidenceEllipse_t positionConfidenceEllipse; + ivim_ts_Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ReferencePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegionId.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegionId.h new file mode 100644 index 000000000..9db965f73 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegionId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RegionId_H_ +#define _ivim_ts_RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RegionId */ +typedef long ivim_ts_RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RegionId; +asn_struct_free_f ivim_ts_RegionId_free; +asn_struct_print_f ivim_ts_RegionId_print; +asn_constr_check_f ivim_ts_RegionId_constraint; +per_type_decoder_f ivim_ts_RegionId_decode_uper; +per_type_encoder_f ivim_ts_RegionId_encode_uper; +per_type_decoder_f ivim_ts_RegionId_decode_aper; +per_type_encoder_f ivim_ts_RegionId_encode_aper; +#define ivim_ts_RegionId_noRegion ((ivim_ts_RegionId_t)0) +#define ivim_ts_RegionId_addGrpA ((ivim_ts_RegionId_t)1) +#define ivim_ts_RegionId_addGrpB ((ivim_ts_RegionId_t)2) +#define ivim_ts_RegionId_addGrpC ((ivim_ts_RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RegionId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h new file mode 100644 index 000000000..2c4582129 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RegionalExtension_H_ +#define _ivim_ts_RegionalExtension_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionId.h" +#include +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_MapData-addGrpC.h" +#include +#include +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectionTrajectory-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionState-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementEvent-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSet-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Position3D-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType-addGrpC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage-addGrpC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Reg_MapData__regExtValue_PR { + ivim_ts_Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_MapData__regExtValue_PR_MapData_addGrpC +} ivim_ts_Reg_MapData__regExtValue_PR; +typedef enum ivim_ts_Reg_RTCMcorrections__regExtValue_PR { + ivim_ts_Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_RTCMcorrections__regExtValue_PR; +typedef enum ivim_ts_Reg_SPAT__regExtValue_PR { + ivim_ts_Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_SPAT__regExtValue_PR; +typedef enum ivim_ts_Reg_SignalRequestMessage__regExtValue_PR { + ivim_ts_Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_SignalRequestMessage__regExtValue_PR; +typedef enum ivim_ts_Reg_SignalStatusMessage__regExtValue_PR { + ivim_ts_Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_SignalStatusMessage__regExtValue_PR; +typedef enum ivim_ts_Reg_AdvisorySpeed__regExtValue_PR { + ivim_ts_Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_AdvisorySpeed__regExtValue_PR; +typedef enum ivim_ts_Reg_ComputedLane__regExtValue_PR { + ivim_ts_Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_ComputedLane__regExtValue_PR; +typedef enum ivim_ts_Reg_ConnectionManeuverAssist__regExtValue_PR { + ivim_ts_Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} ivim_ts_Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum ivim_ts_Reg_GenericLane__regExtValue_PR { + ivim_ts_Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} ivim_ts_Reg_GenericLane__regExtValue_PR; +typedef enum ivim_ts_Reg_IntersectionGeometry__regExtValue_PR { + ivim_ts_Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_IntersectionGeometry__regExtValue_PR; +typedef enum ivim_ts_Reg_IntersectionState__regExtValue_PR { + ivim_ts_Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} ivim_ts_Reg_IntersectionState__regExtValue_PR; +typedef enum ivim_ts_Reg_LaneAttributes__regExtValue_PR { + ivim_ts_Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} ivim_ts_Reg_LaneAttributes__regExtValue_PR; +typedef enum ivim_ts_Reg_LaneDataAttribute__regExtValue_PR { + ivim_ts_Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_LaneDataAttribute__regExtValue_PR; +typedef enum ivim_ts_Reg_MovementEvent__regExtValue_PR { + ivim_ts_Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} ivim_ts_Reg_MovementEvent__regExtValue_PR; +typedef enum ivim_ts_Reg_MovementState__regExtValue_PR { + ivim_ts_Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_MovementState__regExtValue_PR; +typedef enum ivim_ts_Reg_NodeAttributeSetXY__regExtValue_PR { + ivim_ts_Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} ivim_ts_Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum ivim_ts_Reg_NodeOffsetPointXY__regExtValue_PR { + ivim_ts_Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum ivim_ts_Reg_Position3D__regExtValue_PR { + ivim_ts_Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} ivim_ts_Reg_Position3D__regExtValue_PR; +typedef enum ivim_ts_Reg_RequestorDescription__regExtValue_PR { + ivim_ts_Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} ivim_ts_Reg_RequestorDescription__regExtValue_PR; +typedef enum ivim_ts_Reg_RequestorType__regExtValue_PR { + ivim_ts_Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_RequestorType__regExtValue_PR; +typedef enum ivim_ts_Reg_RestrictionUserType__regExtValue_PR { + ivim_ts_Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} ivim_ts_Reg_RestrictionUserType__regExtValue_PR; +typedef enum ivim_ts_Reg_RoadSegment__regExtValue_PR { + ivim_ts_Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_RoadSegment__regExtValue_PR; +typedef enum ivim_ts_Reg_SignalControlZone__regExtValue_PR { + ivim_ts_Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_SignalControlZone__regExtValue_PR; +typedef enum ivim_ts_Reg_SignalRequest__regExtValue_PR { + ivim_ts_Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_SignalRequest__regExtValue_PR; +typedef enum ivim_ts_Reg_SignalRequestPackage__regExtValue_PR { + ivim_ts_Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_SignalRequestPackage__regExtValue_PR; +typedef enum ivim_ts_Reg_SignalStatus__regExtValue_PR { + ivim_ts_Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} ivim_ts_Reg_SignalStatus__regExtValue_PR; +typedef enum ivim_ts_Reg_SignalStatusPackage__regExtValue_PR { + ivim_ts_Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + ivim_ts_Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} ivim_ts_Reg_SignalStatusPackage__regExtValue_PR; + +/* ivim_ts_RegionalExtension */ +typedef struct ivim_ts_Reg_MapData { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_MapData__regExtValue { + ivim_ts_Reg_MapData__regExtValue_PR present; + union ivim_ts_Reg_MapData__ivim_ts_regExtValue_u { + ivim_ts_MapData_addGrpC_t MapData_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_MapData_t; +typedef struct ivim_ts_Reg_RTCMcorrections { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_RTCMcorrections__regExtValue { + ivim_ts_Reg_RTCMcorrections__regExtValue_PR present; + union ivim_ts_Reg_RTCMcorrections__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_RTCMcorrections_t; +typedef struct ivim_ts_Reg_SPAT { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_SPAT__regExtValue { + ivim_ts_Reg_SPAT__regExtValue_PR present; + union ivim_ts_Reg_SPAT__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_SPAT_t; +typedef struct ivim_ts_Reg_SignalRequestMessage { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_SignalRequestMessage__regExtValue { + ivim_ts_Reg_SignalRequestMessage__regExtValue_PR present; + union ivim_ts_Reg_SignalRequestMessage__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_SignalRequestMessage_t; +typedef struct ivim_ts_Reg_SignalStatusMessage { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_SignalStatusMessage__regExtValue { + ivim_ts_Reg_SignalStatusMessage__regExtValue_PR present; + union ivim_ts_Reg_SignalStatusMessage__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_SignalStatusMessage_t; +typedef struct ivim_ts_Reg_AdvisorySpeed { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_AdvisorySpeed__regExtValue { + ivim_ts_Reg_AdvisorySpeed__regExtValue_PR present; + union ivim_ts_Reg_AdvisorySpeed__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_AdvisorySpeed_t; +typedef struct ivim_ts_Reg_ComputedLane { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_ComputedLane__regExtValue { + ivim_ts_Reg_ComputedLane__regExtValue_PR present; + union ivim_ts_Reg_ComputedLane__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_ComputedLane_t; +typedef struct ivim_ts_Reg_ConnectionManeuverAssist { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_ConnectionManeuverAssist__regExtValue { + ivim_ts_Reg_ConnectionManeuverAssist__regExtValue_PR present; + union ivim_ts_Reg_ConnectionManeuverAssist__ivim_ts_regExtValue_u { + ivim_ts_ConnectionManeuverAssist_addGrpC_t ConnectionManeuverAssist_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_ConnectionManeuverAssist_t; +typedef struct ivim_ts_Reg_GenericLane { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_GenericLane__regExtValue { + ivim_ts_Reg_GenericLane__regExtValue_PR present; + union ivim_ts_Reg_GenericLane__ivim_ts_regExtValue_u { + ivim_ts_ConnectionTrajectory_addGrpC_t ConnectionTrajectory_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_GenericLane_t; +typedef struct ivim_ts_Reg_IntersectionGeometry { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_IntersectionGeometry__regExtValue { + ivim_ts_Reg_IntersectionGeometry__regExtValue_PR present; + union ivim_ts_Reg_IntersectionGeometry__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_IntersectionGeometry_t; +typedef struct ivim_ts_Reg_IntersectionState { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_IntersectionState__regExtValue { + ivim_ts_Reg_IntersectionState__regExtValue_PR present; + union ivim_ts_Reg_IntersectionState__ivim_ts_regExtValue_u { + ivim_ts_IntersectionState_addGrpC_t IntersectionState_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_IntersectionState_t; +typedef struct ivim_ts_Reg_LaneAttributes { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_LaneAttributes__regExtValue { + ivim_ts_Reg_LaneAttributes__regExtValue_PR present; + union ivim_ts_Reg_LaneAttributes__ivim_ts_regExtValue_u { + ivim_ts_LaneAttributes_addGrpC_t LaneAttributes_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_LaneAttributes_t; +typedef struct ivim_ts_Reg_LaneDataAttribute { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_LaneDataAttribute__regExtValue { + ivim_ts_Reg_LaneDataAttribute__regExtValue_PR present; + union ivim_ts_Reg_LaneDataAttribute__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_LaneDataAttribute_t; +typedef struct ivim_ts_Reg_MovementEvent { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_MovementEvent__regExtValue { + ivim_ts_Reg_MovementEvent__regExtValue_PR present; + union ivim_ts_Reg_MovementEvent__ivim_ts_regExtValue_u { + ivim_ts_MovementEvent_addGrpC_t MovementEvent_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_MovementEvent_t; +typedef struct ivim_ts_Reg_MovementState { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_MovementState__regExtValue { + ivim_ts_Reg_MovementState__regExtValue_PR present; + union ivim_ts_Reg_MovementState__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_MovementState_t; +typedef struct ivim_ts_Reg_NodeAttributeSetXY { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_NodeAttributeSetXY__regExtValue { + ivim_ts_Reg_NodeAttributeSetXY__regExtValue_PR present; + union ivim_ts_Reg_NodeAttributeSetXY__ivim_ts_regExtValue_u { + ivim_ts_NodeAttributeSet_addGrpC_t NodeAttributeSet_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_NodeAttributeSetXY_t; +typedef struct ivim_ts_Reg_NodeOffsetPointXY { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_NodeOffsetPointXY__regExtValue { + ivim_ts_Reg_NodeOffsetPointXY__regExtValue_PR present; + union ivim_ts_Reg_NodeOffsetPointXY__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_NodeOffsetPointXY_t; +typedef struct ivim_ts_Reg_Position3D { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_Position3D__regExtValue { + ivim_ts_Reg_Position3D__regExtValue_PR present; + union ivim_ts_Reg_Position3D__ivim_ts_regExtValue_u { + ivim_ts_Position3D_addGrpC_t Position3D_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_Position3D_t; +typedef struct ivim_ts_Reg_RequestorDescription { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_RequestorDescription__regExtValue { + ivim_ts_Reg_RequestorDescription__regExtValue_PR present; + union ivim_ts_Reg_RequestorDescription__ivim_ts_regExtValue_u { + ivim_ts_RequestorDescription_addGrpC_t RequestorDescription_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_RequestorDescription_t; +typedef struct ivim_ts_Reg_RequestorType { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_RequestorType__regExtValue { + ivim_ts_Reg_RequestorType__regExtValue_PR present; + union ivim_ts_Reg_RequestorType__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_RequestorType_t; +typedef struct ivim_ts_Reg_RestrictionUserType { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_RestrictionUserType__regExtValue { + ivim_ts_Reg_RestrictionUserType__regExtValue_PR present; + union ivim_ts_Reg_RestrictionUserType__ivim_ts_regExtValue_u { + ivim_ts_RestrictionUserType_addGrpC_t RestrictionUserType_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_RestrictionUserType_t; +typedef struct ivim_ts_Reg_RoadSegment { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_RoadSegment__regExtValue { + ivim_ts_Reg_RoadSegment__regExtValue_PR present; + union ivim_ts_Reg_RoadSegment__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_RoadSegment_t; +typedef struct ivim_ts_Reg_SignalControlZone { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_SignalControlZone__regExtValue { + ivim_ts_Reg_SignalControlZone__regExtValue_PR present; + union ivim_ts_Reg_SignalControlZone__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_SignalControlZone_t; +typedef struct ivim_ts_Reg_SignalRequest { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_SignalRequest__regExtValue { + ivim_ts_Reg_SignalRequest__regExtValue_PR present; + union ivim_ts_Reg_SignalRequest__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_SignalRequest_t; +typedef struct ivim_ts_Reg_SignalRequestPackage { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_SignalRequestPackage__regExtValue { + ivim_ts_Reg_SignalRequestPackage__regExtValue_PR present; + union ivim_ts_Reg_SignalRequestPackage__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_SignalRequestPackage_t; +typedef struct ivim_ts_Reg_SignalStatus { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_SignalStatus__regExtValue { + ivim_ts_Reg_SignalStatus__regExtValue_PR present; + union ivim_ts_Reg_SignalStatus__ivim_ts_regExtValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_SignalStatus_t; +typedef struct ivim_ts_Reg_SignalStatusPackage { + ivim_ts_RegionId_t regionId; + struct ivim_ts_Reg_SignalStatusPackage__regExtValue { + ivim_ts_Reg_SignalStatusPackage__regExtValue_PR present; + union ivim_ts_Reg_SignalStatusPackage__ivim_ts_regExtValue_u { + ivim_ts_SignalStatusPackage_addGrpC_t SignalStatusPackage_addGrpC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regExtValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RegionalExtension_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegulatorySpeedLimit.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegulatorySpeedLimit.h new file mode 100644 index 000000000..c05e0135d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RegulatorySpeedLimit.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RegulatorySpeedLimit_H_ +#define _ivim_ts_RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RegulatorySpeedLimit */ +typedef struct ivim_ts_RegulatorySpeedLimit { + ivim_ts_SpeedLimitType_t type; + ivim_ts_Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RegulatorySpeedLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RejectedReason.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RejectedReason.h new file mode 100644 index 000000000..3ff1ecf10 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RejectedReason.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RejectedReason_H_ +#define _ivim_ts_RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RejectedReason { + ivim_ts_RejectedReason_unknown = 0, + ivim_ts_RejectedReason_exceptionalCondition = 1, + ivim_ts_RejectedReason_maxWaitingTimeExceeded = 2, + ivim_ts_RejectedReason_ptPriorityDisabled = 3, + ivim_ts_RejectedReason_higherPTPriorityGranted = 4, + ivim_ts_RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_ivim_ts_RejectedReason; + +/* ivim_ts_RejectedReason */ +typedef long ivim_ts_RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RejectedReason_specs_1; +asn_struct_free_f ivim_ts_RejectedReason_free; +asn_struct_print_f ivim_ts_RejectedReason_print; +asn_constr_check_f ivim_ts_RejectedReason_constraint; +per_type_decoder_f ivim_ts_RejectedReason_decode_uper; +per_type_encoder_f ivim_ts_RejectedReason_encode_uper; +per_type_decoder_f ivim_ts_RejectedReason_decode_aper; +per_type_encoder_f ivim_ts_RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RejectedReason_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RelevanceDistance.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RelevanceDistance.h new file mode 100644 index 000000000..7a4e2863a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RelevanceDistance.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RelevanceDistance_H_ +#define _ivim_ts_RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RelevanceDistance { + ivim_ts_RelevanceDistance_lessThan50m = 0, + ivim_ts_RelevanceDistance_lessThan100m = 1, + ivim_ts_RelevanceDistance_lessThan200m = 2, + ivim_ts_RelevanceDistance_lessThan500m = 3, + ivim_ts_RelevanceDistance_lessThan1000m = 4, + ivim_ts_RelevanceDistance_lessThan5km = 5, + ivim_ts_RelevanceDistance_lessThan10km = 6, + ivim_ts_RelevanceDistance_over10km = 7 +} e_ivim_ts_RelevanceDistance; + +/* ivim_ts_RelevanceDistance */ +typedef long ivim_ts_RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RelevanceDistance; +asn_struct_free_f ivim_ts_RelevanceDistance_free; +asn_struct_print_f ivim_ts_RelevanceDistance_print; +asn_constr_check_f ivim_ts_RelevanceDistance_constraint; +per_type_decoder_f ivim_ts_RelevanceDistance_decode_uper; +per_type_encoder_f ivim_ts_RelevanceDistance_encode_uper; +per_type_decoder_f ivim_ts_RelevanceDistance_decode_aper; +per_type_encoder_f ivim_ts_RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RelevanceDistance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RelevanceTrafficDirection.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RelevanceTrafficDirection.h new file mode 100644 index 000000000..22611776d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RelevanceTrafficDirection.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RelevanceTrafficDirection_H_ +#define _ivim_ts_RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RelevanceTrafficDirection { + ivim_ts_RelevanceTrafficDirection_allTrafficDirections = 0, + ivim_ts_RelevanceTrafficDirection_upstreamTraffic = 1, + ivim_ts_RelevanceTrafficDirection_downstreamTraffic = 2, + ivim_ts_RelevanceTrafficDirection_oppositeTraffic = 3 +} e_ivim_ts_RelevanceTrafficDirection; + +/* ivim_ts_RelevanceTrafficDirection */ +typedef long ivim_ts_RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RelevanceTrafficDirection; +asn_struct_free_f ivim_ts_RelevanceTrafficDirection_free; +asn_struct_print_f ivim_ts_RelevanceTrafficDirection_print; +asn_constr_check_f ivim_ts_RelevanceTrafficDirection_constraint; +per_type_decoder_f ivim_ts_RelevanceTrafficDirection_decode_uper; +per_type_encoder_f ivim_ts_RelevanceTrafficDirection_encode_uper; +per_type_decoder_f ivim_ts_RelevanceTrafficDirection_decode_aper; +per_type_encoder_f ivim_ts_RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RelevanceTrafficDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RepeatingPeriodDayTypes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RepeatingPeriodDayTypes.h new file mode 100644 index 000000000..98267d287 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RepeatingPeriodDayTypes.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RepeatingPeriodDayTypes_H_ +#define _ivim_ts_RepeatingPeriodDayTypes_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RepeatingPeriodDayTypes { + ivim_ts_RepeatingPeriodDayTypes_national_holiday = 0, + ivim_ts_RepeatingPeriodDayTypes_even_days = 1, + ivim_ts_RepeatingPeriodDayTypes_odd_days = 2, + ivim_ts_RepeatingPeriodDayTypes_market_day = 3 +} e_ivim_ts_RepeatingPeriodDayTypes; + +/* ivim_ts_RepeatingPeriodDayTypes */ +typedef BIT_STRING_t ivim_ts_RepeatingPeriodDayTypes_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RepeatingPeriodDayTypes_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RepeatingPeriodDayTypes; +asn_struct_free_f ivim_ts_RepeatingPeriodDayTypes_free; +asn_struct_print_f ivim_ts_RepeatingPeriodDayTypes_print; +asn_constr_check_f ivim_ts_RepeatingPeriodDayTypes_constraint; +per_type_decoder_f ivim_ts_RepeatingPeriodDayTypes_decode_uper; +per_type_encoder_f ivim_ts_RepeatingPeriodDayTypes_encode_uper; +per_type_decoder_f ivim_ts_RepeatingPeriodDayTypes_decode_aper; +per_type_encoder_f ivim_ts_RepeatingPeriodDayTypes_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RepeatingPeriodDayTypes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestID.h new file mode 100644 index 000000000..7b601d6d7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RequestID_H_ +#define _ivim_ts_RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RequestID */ +typedef long ivim_ts_RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestID; +asn_struct_free_f ivim_ts_RequestID_free; +asn_struct_print_f ivim_ts_RequestID_print; +asn_constr_check_f ivim_ts_RequestID_constraint; +per_type_decoder_f ivim_ts_RequestID_decode_uper; +per_type_encoder_f ivim_ts_RequestID_encode_uper; +per_type_decoder_f ivim_ts_RequestID_decode_aper; +per_type_encoder_f ivim_ts_RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RequestID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestImportanceLevel.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestImportanceLevel.h new file mode 100644 index 000000000..d65526a64 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestImportanceLevel.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RequestImportanceLevel_H_ +#define _ivim_ts_RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RequestImportanceLevel { + ivim_ts_RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + ivim_ts_RequestImportanceLevel_requestImportanceLevel1 = 1, + ivim_ts_RequestImportanceLevel_requestImportanceLevel2 = 2, + ivim_ts_RequestImportanceLevel_requestImportanceLevel3 = 3, + ivim_ts_RequestImportanceLevel_requestImportanceLevel4 = 4, + ivim_ts_RequestImportanceLevel_requestImportanceLevel5 = 5, + ivim_ts_RequestImportanceLevel_requestImportanceLevel6 = 6, + ivim_ts_RequestImportanceLevel_requestImportanceLevel7 = 7, + ivim_ts_RequestImportanceLevel_requestImportanceLevel8 = 8, + ivim_ts_RequestImportanceLevel_requestImportanceLevel9 = 9, + ivim_ts_RequestImportanceLevel_requestImportanceLevel10 = 10, + ivim_ts_RequestImportanceLevel_requestImportanceLevel11 = 11, + ivim_ts_RequestImportanceLevel_requestImportanceLevel12 = 12, + ivim_ts_RequestImportanceLevel_requestImportanceLevel13 = 13, + ivim_ts_RequestImportanceLevel_requestImportanceLevel14 = 14, + ivim_ts_RequestImportanceLevel_requestImportanceReserved = 15 +} e_ivim_ts_RequestImportanceLevel; + +/* ivim_ts_RequestImportanceLevel */ +typedef long ivim_ts_RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RequestImportanceLevel_specs_1; +asn_struct_free_f ivim_ts_RequestImportanceLevel_free; +asn_struct_print_f ivim_ts_RequestImportanceLevel_print; +asn_constr_check_f ivim_ts_RequestImportanceLevel_constraint; +per_type_decoder_f ivim_ts_RequestImportanceLevel_decode_uper; +per_type_encoder_f ivim_ts_RequestImportanceLevel_encode_uper; +per_type_decoder_f ivim_ts_RequestImportanceLevel_decode_aper; +per_type_encoder_f ivim_ts_RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RequestImportanceLevel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestResponseIndication.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestResponseIndication.h new file mode 100644 index 000000000..d53d8d893 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestResponseIndication.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RequestResponseIndication_H_ +#define _ivim_ts_RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RequestResponseIndication { + ivim_ts_RequestResponseIndication_request = 0, + ivim_ts_RequestResponseIndication_response = 1 +} e_ivim_ts_RequestResponseIndication; + +/* ivim_ts_RequestResponseIndication */ +typedef long ivim_ts_RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestResponseIndication; +asn_struct_free_f ivim_ts_RequestResponseIndication_free; +asn_struct_print_f ivim_ts_RequestResponseIndication_print; +asn_constr_check_f ivim_ts_RequestResponseIndication_constraint; +per_type_decoder_f ivim_ts_RequestResponseIndication_decode_uper; +per_type_encoder_f ivim_ts_RequestResponseIndication_encode_uper; +per_type_decoder_f ivim_ts_RequestResponseIndication_decode_aper; +per_type_encoder_f ivim_ts_RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RequestResponseIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestSubRole.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestSubRole.h new file mode 100644 index 000000000..6f1d92b4a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestSubRole.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RequestSubRole_H_ +#define _ivim_ts_RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RequestSubRole { + ivim_ts_RequestSubRole_requestSubRoleUnKnown = 0, + ivim_ts_RequestSubRole_requestSubRole1 = 1, + ivim_ts_RequestSubRole_requestSubRole2 = 2, + ivim_ts_RequestSubRole_requestSubRole3 = 3, + ivim_ts_RequestSubRole_requestSubRole4 = 4, + ivim_ts_RequestSubRole_requestSubRole5 = 5, + ivim_ts_RequestSubRole_requestSubRole6 = 6, + ivim_ts_RequestSubRole_requestSubRole7 = 7, + ivim_ts_RequestSubRole_requestSubRole8 = 8, + ivim_ts_RequestSubRole_requestSubRole9 = 9, + ivim_ts_RequestSubRole_requestSubRole10 = 10, + ivim_ts_RequestSubRole_requestSubRole11 = 11, + ivim_ts_RequestSubRole_requestSubRole12 = 12, + ivim_ts_RequestSubRole_requestSubRole13 = 13, + ivim_ts_RequestSubRole_requestSubRole14 = 14, + ivim_ts_RequestSubRole_requestSubRoleReserved = 15 +} e_ivim_ts_RequestSubRole; + +/* ivim_ts_RequestSubRole */ +typedef long ivim_ts_RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RequestSubRole_specs_1; +asn_struct_free_f ivim_ts_RequestSubRole_free; +asn_struct_print_f ivim_ts_RequestSubRole_print; +asn_constr_check_f ivim_ts_RequestSubRole_constraint; +per_type_decoder_f ivim_ts_RequestSubRole_decode_uper; +per_type_encoder_f ivim_ts_RequestSubRole_encode_uper; +per_type_decoder_f ivim_ts_RequestSubRole_decode_aper; +per_type_encoder_f ivim_ts_RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RequestSubRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription-addGrpC.h new file mode 100644 index 000000000..877b5dc88 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RequestorDescription_addGrpC_H_ +#define _ivim_ts_RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_FuelType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RequestorDescription-addGrpC */ +typedef struct ivim_ts_RequestorDescription_addGrpC { + ivim_ts_FuelType_t *fuel; /* OPTIONAL */ + ivim_ts_BatteryStatus_t *batteryStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RequestorDescription_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription.h new file mode 100644 index 000000000..b1108e282 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RequestorDescription_H_ +#define _ivim_ts_RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleStatus.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleOccupancy.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RequestorType; +struct ivim_ts_RequestorPositionVector; +struct ivim_ts_Reg_RequestorDescription; + +/* ivim_ts_RequestorDescription */ +typedef struct ivim_ts_RequestorDescription { + ivim_ts_VehicleID_t id; + struct ivim_ts_RequestorType *type; /* OPTIONAL */ + struct ivim_ts_RequestorPositionVector *position; /* OPTIONAL */ + ivim_ts_DescriptiveName_t *name; /* OPTIONAL */ + ivim_ts_DescriptiveName_t *routeName; /* OPTIONAL */ + ivim_ts_TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + ivim_ts_TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + ivim_ts_DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct ivim_ts_RequestorDescription__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_RequestorDescription) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorPositionVector.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_RequestorDescription_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorPositionVector.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorPositionVector.h new file mode 100644 index 000000000..3e2a4304e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorPositionVector.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RequestorPositionVector_H_ +#define _ivim_ts_RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Position3D.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_TransmissionAndSpeed; + +/* ivim_ts_RequestorPositionVector */ +typedef struct ivim_ts_RequestorPositionVector { + ivim_ts_Position3D_t position; + ivim_ts_Angle_t *heading; /* OPTIONAL */ + struct ivim_ts_TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TransmissionAndSpeed.h" + +#endif /* _ivim_ts_RequestorPositionVector_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorType.h new file mode 100644 index 000000000..95d798d4e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RequestorType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RequestorType_H_ +#define _ivim_ts_RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_BasicVehicleRole.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestSubRole.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestImportanceLevel.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Iso3833VehicleType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_RequestorType; + +/* ivim_ts_RequestorType */ +typedef struct ivim_ts_RequestorType { + ivim_ts_BasicVehicleRole_t role; + ivim_ts_RequestSubRole_t *subrole; /* OPTIONAL */ + ivim_ts_RequestImportanceLevel_t *request; /* OPTIONAL */ + ivim_ts_Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + ivim_ts_VehicleType_t *hpmsType; /* OPTIONAL */ + struct ivim_ts_Reg_RequestorType *regional; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_RequestorType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 000000000..675c7d81b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode { + ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +per_type_decoder_f ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictedTypes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictedTypes.h new file mode 100644 index 000000000..259b897da --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictedTypes.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RestrictedTypes_H_ +#define _ivim_ts_RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RestrictedTypes */ +typedef struct ivim_ts_RestrictedTypes { + A_SEQUENCE_OF(ivim_ts_ITS_Container_StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RestrictedTypes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionAppliesTo.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionAppliesTo.h new file mode 100644 index 000000000..5a5fbd2fa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionAppliesTo.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RestrictionAppliesTo_H_ +#define _ivim_ts_RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RestrictionAppliesTo { + ivim_ts_RestrictionAppliesTo_none = 0, + ivim_ts_RestrictionAppliesTo_equippedTransit = 1, + ivim_ts_RestrictionAppliesTo_equippedTaxis = 2, + ivim_ts_RestrictionAppliesTo_equippedOther = 3, + ivim_ts_RestrictionAppliesTo_emissionCompliant = 4, + ivim_ts_RestrictionAppliesTo_equippedBicycle = 5, + ivim_ts_RestrictionAppliesTo_weightCompliant = 6, + ivim_ts_RestrictionAppliesTo_heightCompliant = 7, + ivim_ts_RestrictionAppliesTo_pedestrians = 8, + ivim_ts_RestrictionAppliesTo_slowMovingPersons = 9, + ivim_ts_RestrictionAppliesTo_wheelchairUsers = 10, + ivim_ts_RestrictionAppliesTo_visualDisabilities = 11, + ivim_ts_RestrictionAppliesTo_audioDisabilities = 12, + ivim_ts_RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_ivim_ts_RestrictionAppliesTo; + +/* ivim_ts_RestrictionAppliesTo */ +typedef long ivim_ts_RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RestrictionAppliesTo_specs_1; +asn_struct_free_f ivim_ts_RestrictionAppliesTo_free; +asn_struct_print_f ivim_ts_RestrictionAppliesTo_print; +asn_constr_check_f ivim_ts_RestrictionAppliesTo_constraint; +per_type_decoder_f ivim_ts_RestrictionAppliesTo_decode_uper; +per_type_encoder_f ivim_ts_RestrictionAppliesTo_encode_uper; +per_type_decoder_f ivim_ts_RestrictionAppliesTo_decode_aper; +per_type_encoder_f ivim_ts_RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RestrictionAppliesTo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassAssignment.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassAssignment.h new file mode 100644 index 000000000..3cdde68b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassAssignment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RestrictionClassAssignment_H_ +#define _ivim_ts_RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RestrictionClassAssignment */ +typedef struct ivim_ts_RestrictionClassAssignment { + ivim_ts_RestrictionClassID_t id; + ivim_ts_RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RestrictionClassAssignment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassID.h new file mode 100644 index 000000000..f303d3b52 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RestrictionClassID_H_ +#define _ivim_ts_RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RestrictionClassID */ +typedef long ivim_ts_RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionClassID; +asn_struct_free_f ivim_ts_RestrictionClassID_free; +asn_struct_print_f ivim_ts_RestrictionClassID_print; +asn_constr_check_f ivim_ts_RestrictionClassID_constraint; +per_type_decoder_f ivim_ts_RestrictionClassID_decode_uper; +per_type_encoder_f ivim_ts_RestrictionClassID_encode_uper; +per_type_decoder_f ivim_ts_RestrictionClassID_decode_aper; +per_type_encoder_f ivim_ts_RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RestrictionClassID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassList.h new file mode 100644 index 000000000..58d25df0f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RestrictionClassList_H_ +#define _ivim_ts_RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RestrictionClassAssignment; + +/* ivim_ts_RestrictionClassList */ +typedef struct ivim_ts_RestrictionClassList { + A_SEQUENCE_OF(struct ivim_ts_RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassAssignment.h" + +#endif /* _ivim_ts_RestrictionClassList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType-addGrpC.h new file mode 100644 index 000000000..330507c73 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RestrictionUserType_addGrpC_H_ +#define _ivim_ts_RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_EmissionType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RestrictionUserType-addGrpC */ +typedef struct ivim_ts_RestrictionUserType_addGrpC { + ivim_ts_EmissionType_t *emission; /* OPTIONAL */ + ivim_ts_FuelType_t *fuel; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RestrictionUserType_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType.h new file mode 100644 index 000000000..162d3bebb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RestrictionUserType_H_ +#define _ivim_ts_RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RestrictionUserType_PR { + ivim_ts_RestrictionUserType_PR_NOTHING, /* No components present */ + ivim_ts_RestrictionUserType_PR_basicType, + ivim_ts_RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} ivim_ts_RestrictionUserType_PR; + +/* Forward declarations */ +struct ivim_ts_Reg_RestrictionUserType; + +/* ivim_ts_RestrictionUserType */ +typedef struct ivim_ts_RestrictionUserType { + ivim_ts_RestrictionUserType_PR present; + union ivim_ts_RestrictionUserType_u { + ivim_ts_RestrictionAppliesTo_t basicType; + struct ivim_ts_RestrictionUserType__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } regional; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_RestrictionUserType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserTypeList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserTypeList.h new file mode 100644 index 000000000..e08ff3cd6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserTypeList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RestrictionUserTypeList_H_ +#define _ivim_ts_RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RestrictionUserType; + +/* ivim_ts_RestrictionUserTypeList */ +typedef struct ivim_ts_RestrictionUserTypeList { + A_SEQUENCE_OF(struct ivim_ts_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType.h" + +#endif /* _ivim_ts_RestrictionUserTypeList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ResultFin.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ResultFin.h new file mode 100644 index 000000000..78b155776 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ResultFin.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ResultFin_H_ +#define _ivim_ts_ResultFin_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ResultFin */ +typedef OCTET_STRING_t ivim_ts_ResultFin_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ResultFin_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ResultFin; +asn_struct_free_f ivim_ts_ResultFin_free; +asn_struct_print_f ivim_ts_ResultFin_print; +asn_constr_check_f ivim_ts_ResultFin_constraint; +per_type_decoder_f ivim_ts_ResultFin_decode_uper; +per_type_encoder_f ivim_ts_ResultFin_encode_uper; +per_type_decoder_f ivim_ts_ResultFin_decode_aper; +per_type_encoder_f ivim_ts_ResultFin_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ResultFin_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ResultOp.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ResultOp.h new file mode 100644 index 000000000..a7bd0b898 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ResultOp.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ResultOp_H_ +#define _ivim_ts_ResultOp_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ResultOp { + ivim_ts_ResultOp_correctTransaction = 0, + ivim_ts_ResultOp_obeStatusNotAccepted = 1, + ivim_ts_ResultOp_equipmentStatusNotAccepted = 2, + ivim_ts_ResultOp_contractNotInWhiteList = 3, + ivim_ts_ResultOp_contractIdentifierInBlackList = 4, + ivim_ts_ResultOp_contractIdentifierNotCorrect = 5, + ivim_ts_ResultOp_expiredContract = 6, + ivim_ts_ResultOp_contractRestrictionsNotFulfilled = 7, + ivim_ts_ResultOp_claimedVehicleCharacteristicsNotValid = 8, + ivim_ts_ResultOp_vehicleClassAuthenticationFailed = 9, + ivim_ts_ResultOp_entryVehicleClassDifferentFromExitVehicleClass = 10, + ivim_ts_ResultOp_entryReceiptMissing = 11, + ivim_ts_ResultOp_entryReceiptNotValid = 12, + ivim_ts_ResultOp_entryTollStationNotValid = 13, + ivim_ts_ResultOp_equipmentNotCertified = 14, + ivim_ts_ResultOp_timeDifference = 15, + ivim_ts_ResultOp_accessCredentialsNotAccepted = 16, + ivim_ts_ResultOp_contractAuthenticatorNotAccepted = 17, + ivim_ts_ResultOp_receiptAuthenticatorNotAccepted = 18, + ivim_ts_ResultOp_claimedVehicleCharacteristicsMissing = 19, + ivim_ts_ResultOp_paymentMeansNotAccepted = 20, + ivim_ts_ResultOp_paymentAuthenticatorNotAccepted = 21, + ivim_ts_ResultOp_paymentMeansInBlackList = 22, + ivim_ts_ResultOp_paymentMeansNotCorrect = 23, + ivim_ts_ResultOp_expiredPaymentMeans = 24, + ivim_ts_ResultOp_paymentMeansRestrictionsNotFulfilled = 25 +} e_ivim_ts_ResultOp; + +/* ivim_ts_ResultOp */ +typedef long ivim_ts_ResultOp_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ResultOp_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ResultOp; +asn_struct_free_f ivim_ts_ResultOp_free; +asn_struct_print_f ivim_ts_ResultOp_print; +asn_constr_check_f ivim_ts_ResultOp_constraint; +per_type_decoder_f ivim_ts_ResultOp_decode_uper; +per_type_encoder_f ivim_ts_ResultOp_encode_uper; +per_type_decoder_f ivim_ts_ResultOp_decode_aper; +per_type_encoder_f ivim_ts_ResultOp_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ResultOp_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadConfigurationContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadConfigurationContainer.h new file mode 100644 index 000000000..4ebd51562 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadConfigurationContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadConfigurationContainer_H_ +#define _ivim_ts_RoadConfigurationContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RccPart; + +/* ivim_ts_RoadConfigurationContainer */ +typedef struct ivim_ts_RoadConfigurationContainer { + A_SEQUENCE_OF(struct ivim_ts_RccPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadConfigurationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadConfigurationContainer; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadConfigurationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadConfigurationContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadConfigurationContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RccPart.h" + +#endif /* _ivim_ts_RoadConfigurationContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadLaneSetList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadLaneSetList.h new file mode 100644 index 000000000..18fb31f08 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadLaneSetList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadLaneSetList_H_ +#define _ivim_ts_RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_GenericLane; + +/* ivim_ts_RoadLaneSetList */ +typedef struct ivim_ts_RoadLaneSetList { + A_SEQUENCE_OF(struct ivim_ts_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_GenericLane.h" + +#endif /* _ivim_ts_RoadLaneSetList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadRegulatorID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadRegulatorID.h new file mode 100644 index 000000000..4e1289af4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadRegulatorID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadRegulatorID_H_ +#define _ivim_ts_RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RoadRegulatorID */ +typedef long ivim_ts_RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadRegulatorID; +asn_struct_free_f ivim_ts_RoadRegulatorID_free; +asn_struct_print_f ivim_ts_RoadRegulatorID_print; +asn_constr_check_f ivim_ts_RoadRegulatorID_constraint; +per_type_decoder_f ivim_ts_RoadRegulatorID_decode_uper; +per_type_encoder_f ivim_ts_RoadRegulatorID_encode_uper; +per_type_decoder_f ivim_ts_RoadRegulatorID_decode_aper; +per_type_encoder_f ivim_ts_RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RoadRegulatorID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegment.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegment.h new file mode 100644 index 000000000..a9fbe69aa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegment.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadSegment_H_ +#define _ivim_ts_RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentReferenceID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Position3D.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneWidth.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SpeedLimitList; +struct ivim_ts_Reg_RoadSegment; + +/* ivim_ts_RoadSegment */ +typedef struct ivim_ts_RoadSegment { + ivim_ts_DescriptiveName_t *name; /* OPTIONAL */ + ivim_ts_RoadSegmentReferenceID_t id; + ivim_ts_MsgCount_t revision; + ivim_ts_Position3D_t refPoint; + ivim_ts_LaneWidth_t *laneWidth; /* OPTIONAL */ + struct ivim_ts_SpeedLimitList *speedLimits; /* OPTIONAL */ + ivim_ts_RoadLaneSetList_t roadLaneSet; + struct ivim_ts_RoadSegment__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_RoadSegment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentID.h new file mode 100644 index 000000000..be71f48c3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadSegmentID_H_ +#define _ivim_ts_RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RoadSegmentID */ +typedef long ivim_ts_RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSegmentID; +asn_struct_free_f ivim_ts_RoadSegmentID_free; +asn_struct_print_f ivim_ts_RoadSegmentID_print; +asn_constr_check_f ivim_ts_RoadSegmentID_constraint; +per_type_decoder_f ivim_ts_RoadSegmentID_decode_uper; +per_type_encoder_f ivim_ts_RoadSegmentID_encode_uper; +per_type_decoder_f ivim_ts_RoadSegmentID_decode_aper; +per_type_encoder_f ivim_ts_RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RoadSegmentID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentList.h new file mode 100644 index 000000000..fefccb9b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadSegmentList_H_ +#define _ivim_ts_RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RoadSegment; + +/* ivim_ts_RoadSegmentList */ +typedef struct ivim_ts_RoadSegmentList { + A_SEQUENCE_OF(struct ivim_ts_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegment.h" + +#endif /* _ivim_ts_RoadSegmentList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentReferenceID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentReferenceID.h new file mode 100644 index 000000000..352b76955 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentReferenceID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadSegmentReferenceID_H_ +#define _ivim_ts_RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadRegulatorID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RoadSegmentReferenceID */ +typedef struct ivim_ts_RoadSegmentReferenceID { + ivim_ts_RoadRegulatorID_t *region; /* OPTIONAL */ + ivim_ts_RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RoadSegmentReferenceID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSignCodes.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSignCodes.h new file mode 100644 index 000000000..a46389bb9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSignCodes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadSignCodes_H_ +#define _ivim_ts_RoadSignCodes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RSCode; + +/* ivim_ts_RoadSignCodes */ +typedef struct ivim_ts_RoadSignCodes { + A_SEQUENCE_OF(struct ivim_ts_RSCode) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadSignCodes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSignCodes; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadSignCodes_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadSignCodes_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadSignCodes_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RSCode.h" + +#endif /* _ivim_ts_RoadSignCodes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceContainer.h new file mode 100644 index 000000000..c95431507 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadSurfaceContainer_H_ +#define _ivim_ts_RoadSurfaceContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RscPart; + +/* ivim_ts_RoadSurfaceContainer */ +typedef struct ivim_ts_RoadSurfaceContainer { + A_SEQUENCE_OF(struct ivim_ts_RscPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadSurfaceContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSurfaceContainer; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadSurfaceContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadSurfaceContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadSurfaceContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RscPart.h" + +#endif /* _ivim_ts_RoadSurfaceContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceDynamicCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceDynamicCharacteristics.h new file mode 100644 index 000000000..9bc1c5109 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceDynamicCharacteristics.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadSurfaceDynamicCharacteristics_H_ +#define _ivim_ts_RoadSurfaceDynamicCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Condition.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IVI_Temperature.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Depth.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TreatmentType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RoadSurfaceDynamicCharacteristics */ +typedef struct ivim_ts_RoadSurfaceDynamicCharacteristics { + ivim_ts_Condition_t condition; + ivim_ts_IVI_Temperature_t temperature; + ivim_ts_Depth_t iceOrWaterDepth; + ivim_ts_TreatmentType_t treatment; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadSurfaceDynamicCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RoadSurfaceDynamicCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadSurfaceDynamicCharacteristics_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RoadSurfaceDynamicCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceStaticCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceStaticCharacteristics.h new file mode 100644 index 000000000..f60d8dd70 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceStaticCharacteristics.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadSurfaceStaticCharacteristics_H_ +#define _ivim_ts_RoadSurfaceStaticCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_FrictionCoefficient.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MaterialType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_WearLevel.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_BankingAngle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RoadSurfaceStaticCharacteristics */ +typedef struct ivim_ts_RoadSurfaceStaticCharacteristics { + ivim_ts_FrictionCoefficient_t frictionCoefficient; + ivim_ts_MaterialType_t material; + ivim_ts_WearLevel_t wear; + ivim_ts_BankingAngle_t avBankingAngle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RoadSurfaceStaticCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RoadSurfaceStaticCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RoadSurfaceStaticCharacteristics_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RoadSurfaceStaticCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadType.h new file mode 100644 index 000000000..333b54626 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadType.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadType_H_ +#define _ivim_ts_RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RoadType { + ivim_ts_RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + ivim_ts_RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + ivim_ts_RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + ivim_ts_RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_ivim_ts_RoadType; + +/* ivim_ts_RoadType */ +typedef long ivim_ts_RoadType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RoadType_specs_1; +asn_struct_free_f ivim_ts_RoadType_free; +asn_struct_print_f ivim_ts_RoadType_print; +asn_constr_check_f ivim_ts_RoadType_constraint; +per_type_decoder_f ivim_ts_RoadType_decode_uper; +per_type_encoder_f ivim_ts_RoadType_encode_uper; +per_type_decoder_f ivim_ts_RoadType_decode_aper; +per_type_encoder_f ivim_ts_RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RoadType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadwayCrownAngle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadwayCrownAngle.h new file mode 100644 index 000000000..91dadc33e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadwayCrownAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadwayCrownAngle_H_ +#define _ivim_ts_RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_RoadwayCrownAngle */ +typedef long ivim_ts_RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadwayCrownAngle; +asn_struct_free_f ivim_ts_RoadwayCrownAngle_free; +asn_struct_print_f ivim_ts_RoadwayCrownAngle_print; +asn_constr_check_f ivim_ts_RoadwayCrownAngle_constraint; +per_type_decoder_f ivim_ts_RoadwayCrownAngle_decode_uper; +per_type_encoder_f ivim_ts_RoadwayCrownAngle_encode_uper; +per_type_decoder_f ivim_ts_RoadwayCrownAngle_decode_aper; +per_type_encoder_f ivim_ts_RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RoadwayCrownAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadworksSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadworksSubCauseCode.h new file mode 100644 index 000000000..a4a7936fd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RoadworksSubCauseCode.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RoadworksSubCauseCode_H_ +#define _ivim_ts_RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_RoadworksSubCauseCode { + ivim_ts_RoadworksSubCauseCode_unavailable = 0, + ivim_ts_RoadworksSubCauseCode_majorRoadworks = 1, + ivim_ts_RoadworksSubCauseCode_roadMarkingWork = 2, + ivim_ts_RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + ivim_ts_RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + ivim_ts_RoadworksSubCauseCode_streetCleaning = 5, + ivim_ts_RoadworksSubCauseCode_winterService = 6 +} e_ivim_ts_RoadworksSubCauseCode; + +/* ivim_ts_RoadworksSubCauseCode */ +typedef long ivim_ts_RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadworksSubCauseCode; +asn_struct_free_f ivim_ts_RoadworksSubCauseCode_free; +asn_struct_print_f ivim_ts_RoadworksSubCauseCode_print; +asn_constr_check_f ivim_ts_RoadworksSubCauseCode_constraint; +per_type_decoder_f ivim_ts_RoadworksSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_RoadworksSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_RoadworksSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_RoadworksSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RscPart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RscPart.h new file mode 100644 index 000000000..4dd3abde1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_RscPart.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_RscPart_H_ +#define _ivim_ts_RscPart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Direction.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ZoneIds; +struct ivim_ts_RoadSurfaceStaticCharacteristics; +struct ivim_ts_RoadSurfaceDynamicCharacteristics; + +/* ivim_ts_RscPart */ +typedef struct ivim_ts_RscPart { + struct ivim_ts_ZoneIds *detectionZoneIds; /* OPTIONAL */ + ivim_ts_ZoneIds_t relevanceZoneIds; + ivim_ts_Direction_t *direction; /* OPTIONAL */ + struct ivim_ts_RoadSurfaceStaticCharacteristics *roadSurfaceStaticCharacteristics; /* OPTIONAL */ + struct ivim_ts_RoadSurfaceDynamicCharacteristics *roadSurfaceDynamicCharacteristics; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_RscPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_RscPart; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RscPart_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_RscPart_1[5]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_RscPart_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceStaticCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceDynamicCharacteristics.h" + +#endif /* _ivim_ts_RscPart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SPAT.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SPAT.h new file mode 100644 index 000000000..dec0f1bc8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SPAT.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SPAT_H_ +#define _ivim_ts_SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_SPAT; + +/* ivim_ts_SPAT */ +typedef struct ivim_ts_SPAT { + ivim_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + ivim_ts_DescriptiveName_t *name; /* OPTIONAL */ + ivim_ts_IntersectionStateList_t intersections; + struct ivim_ts_SPAT__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_SPAT) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SPAT; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_SPAT_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevel.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevel.h new file mode 100644 index 000000000..53556aec5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevel.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SaeAutomationLevel_H_ +#define _ivim_ts_SaeAutomationLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SaeAutomationLevel */ +typedef long ivim_ts_SaeAutomationLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SaeAutomationLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SaeAutomationLevel; +asn_struct_free_f ivim_ts_SaeAutomationLevel_free; +asn_struct_print_f ivim_ts_SaeAutomationLevel_print; +asn_constr_check_f ivim_ts_SaeAutomationLevel_constraint; +per_type_decoder_f ivim_ts_SaeAutomationLevel_decode_uper; +per_type_encoder_f ivim_ts_SaeAutomationLevel_encode_uper; +per_type_decoder_f ivim_ts_SaeAutomationLevel_decode_aper; +per_type_encoder_f ivim_ts_SaeAutomationLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SaeAutomationLevel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevels.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevels.h new file mode 100644 index 000000000..397207970 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevels.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SaeAutomationLevels_H_ +#define _ivim_ts_SaeAutomationLevels_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevel.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SaeAutomationLevels */ +typedef struct ivim_ts_SaeAutomationLevels { + A_SEQUENCE_OF(ivim_ts_SaeAutomationLevel_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SaeAutomationLevels_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SaeAutomationLevels; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_SaeAutomationLevels_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SaeAutomationLevels_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_SaeAutomationLevels_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SaeAutomationLevels_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Scale-B12.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Scale-B12.h new file mode 100644 index 000000000..b75dea279 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Scale-B12.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Scale_B12_H_ +#define _ivim_ts_Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Scale-B12 */ +typedef long ivim_ts_Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Scale_B12; +asn_struct_free_f ivim_ts_Scale_B12_free; +asn_struct_print_f ivim_ts_Scale_B12_print; +asn_constr_check_f ivim_ts_Scale_B12_constraint; +per_type_decoder_f ivim_ts_Scale_B12_decode_uper; +per_type_encoder_f ivim_ts_Scale_B12_encode_uper; +per_type_decoder_f ivim_ts_Scale_B12_decode_aper; +per_type_encoder_f ivim_ts_Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Scale_B12_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Segment.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Segment.h new file mode 100644 index 000000000..b02c1b993 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Segment.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Segment_H_ +#define _ivim_ts_Segment_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PolygonalLine.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IviLaneWidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Segment */ +typedef struct ivim_ts_Segment { + ivim_ts_PolygonalLine_t line; + ivim_ts_IviLaneWidth_t *laneWidth; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Segment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Segment; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Segment_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Segment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Segment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXY.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXY.h new file mode 100644 index 000000000..6aec52aeb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXY.h @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SegmentAttributeXY_H_ +#define _ivim_ts_SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SegmentAttributeXY { + ivim_ts_SegmentAttributeXY_reserved = 0, + ivim_ts_SegmentAttributeXY_doNotBlock = 1, + ivim_ts_SegmentAttributeXY_whiteLine = 2, + ivim_ts_SegmentAttributeXY_mergingLaneLeft = 3, + ivim_ts_SegmentAttributeXY_mergingLaneRight = 4, + ivim_ts_SegmentAttributeXY_curbOnLeft = 5, + ivim_ts_SegmentAttributeXY_curbOnRight = 6, + ivim_ts_SegmentAttributeXY_loadingzoneOnLeft = 7, + ivim_ts_SegmentAttributeXY_loadingzoneOnRight = 8, + ivim_ts_SegmentAttributeXY_turnOutPointOnLeft = 9, + ivim_ts_SegmentAttributeXY_turnOutPointOnRight = 10, + ivim_ts_SegmentAttributeXY_adjacentParkingOnLeft = 11, + ivim_ts_SegmentAttributeXY_adjacentParkingOnRight = 12, + ivim_ts_SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + ivim_ts_SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + ivim_ts_SegmentAttributeXY_sharedBikeLane = 15, + ivim_ts_SegmentAttributeXY_bikeBoxInFront = 16, + ivim_ts_SegmentAttributeXY_transitStopOnLeft = 17, + ivim_ts_SegmentAttributeXY_transitStopOnRight = 18, + ivim_ts_SegmentAttributeXY_transitStopInLane = 19, + ivim_ts_SegmentAttributeXY_sharedWithTrackedVehicle = 20, + ivim_ts_SegmentAttributeXY_safeIsland = 21, + ivim_ts_SegmentAttributeXY_lowCurbsPresent = 22, + ivim_ts_SegmentAttributeXY_rumbleStripPresent = 23, + ivim_ts_SegmentAttributeXY_audibleSignalingPresent = 24, + ivim_ts_SegmentAttributeXY_adaptiveTimingPresent = 25, + ivim_ts_SegmentAttributeXY_rfSignalRequestPresent = 26, + ivim_ts_SegmentAttributeXY_partialCurbIntrusion = 27, + ivim_ts_SegmentAttributeXY_taperToLeft = 28, + ivim_ts_SegmentAttributeXY_taperToRight = 29, + ivim_ts_SegmentAttributeXY_taperToCenterLine = 30, + ivim_ts_SegmentAttributeXY_parallelParking = 31, + ivim_ts_SegmentAttributeXY_headInParking = 32, + ivim_ts_SegmentAttributeXY_freeParking = 33, + ivim_ts_SegmentAttributeXY_timeRestrictionsOnParking = 34, + ivim_ts_SegmentAttributeXY_costToPark = 35, + ivim_ts_SegmentAttributeXY_midBlockCurbPresent = 36, + ivim_ts_SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_ivim_ts_SegmentAttributeXY; + +/* ivim_ts_SegmentAttributeXY */ +typedef long ivim_ts_SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_SegmentAttributeXY_specs_1; +asn_struct_free_f ivim_ts_SegmentAttributeXY_free; +asn_struct_print_f ivim_ts_SegmentAttributeXY_print; +asn_constr_check_f ivim_ts_SegmentAttributeXY_constraint; +per_type_decoder_f ivim_ts_SegmentAttributeXY_decode_uper; +per_type_encoder_f ivim_ts_SegmentAttributeXY_encode_uper; +per_type_decoder_f ivim_ts_SegmentAttributeXY_decode_aper; +per_type_encoder_f ivim_ts_SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SegmentAttributeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXYList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXYList.h new file mode 100644 index 000000000..7025a64a6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXYList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SegmentAttributeXYList_H_ +#define _ivim_ts_SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SegmentAttributeXYList */ +typedef struct ivim_ts_SegmentAttributeXYList { + A_SEQUENCE_OF(ivim_ts_SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SegmentAttributeXYList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiAxisLength.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiAxisLength.h new file mode 100644 index 000000000..68c8b7550 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiAxisLength.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SemiAxisLength_H_ +#define _ivim_ts_SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SemiAxisLength { + ivim_ts_SemiAxisLength_oneCentimeter = 1, + ivim_ts_SemiAxisLength_outOfRange = 4094, + ivim_ts_SemiAxisLength_unavailable = 4095 +} e_ivim_ts_SemiAxisLength; + +/* ivim_ts_SemiAxisLength */ +typedef long ivim_ts_SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SemiAxisLength; +asn_struct_free_f ivim_ts_SemiAxisLength_free; +asn_struct_print_f ivim_ts_SemiAxisLength_print; +asn_constr_check_f ivim_ts_SemiAxisLength_constraint; +per_type_decoder_f ivim_ts_SemiAxisLength_decode_uper; +per_type_encoder_f ivim_ts_SemiAxisLength_encode_uper; +per_type_decoder_f ivim_ts_SemiAxisLength_decode_aper; +per_type_encoder_f ivim_ts_SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SemiAxisLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisAccuracy.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisAccuracy.h new file mode 100644 index 000000000..74a9a9706 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisAccuracy.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SemiMajorAxisAccuracy_H_ +#define _ivim_ts_SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SemiMajorAxisAccuracy */ +typedef long ivim_ts_SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SemiMajorAxisAccuracy; +asn_struct_free_f ivim_ts_SemiMajorAxisAccuracy_free; +asn_struct_print_f ivim_ts_SemiMajorAxisAccuracy_print; +asn_constr_check_f ivim_ts_SemiMajorAxisAccuracy_constraint; +per_type_decoder_f ivim_ts_SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f ivim_ts_SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f ivim_ts_SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f ivim_ts_SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SemiMajorAxisAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisOrientation.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisOrientation.h new file mode 100644 index 000000000..38c172810 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisOrientation.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SemiMajorAxisOrientation_H_ +#define _ivim_ts_SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SemiMajorAxisOrientation */ +typedef long ivim_ts_SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SemiMajorAxisOrientation; +asn_struct_free_f ivim_ts_SemiMajorAxisOrientation_free; +asn_struct_print_f ivim_ts_SemiMajorAxisOrientation_print; +asn_constr_check_f ivim_ts_SemiMajorAxisOrientation_constraint; +per_type_decoder_f ivim_ts_SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f ivim_ts_SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f ivim_ts_SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f ivim_ts_SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SemiMajorAxisOrientation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMinorAxisAccuracy.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMinorAxisAccuracy.h new file mode 100644 index 000000000..b0515db9c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SemiMinorAxisAccuracy.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SemiMinorAxisAccuracy_H_ +#define _ivim_ts_SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SemiMinorAxisAccuracy */ +typedef long ivim_ts_SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SemiMinorAxisAccuracy; +asn_struct_free_f ivim_ts_SemiMinorAxisAccuracy_free; +asn_struct_print_f ivim_ts_SemiMinorAxisAccuracy_print; +asn_constr_check_f ivim_ts_SemiMinorAxisAccuracy_constraint; +per_type_decoder_f ivim_ts_SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f ivim_ts_SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f ivim_ts_SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f ivim_ts_SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SemiMinorAxisAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SequenceNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SequenceNumber.h new file mode 100644 index 000000000..ebdbe2e8f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SequenceNumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SequenceNumber_H_ +#define _ivim_ts_SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SequenceNumber */ +typedef long ivim_ts_SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SequenceNumber; +asn_struct_free_f ivim_ts_SequenceNumber_free; +asn_struct_print_f ivim_ts_SequenceNumber_print; +asn_constr_check_f ivim_ts_SequenceNumber_constraint; +per_type_decoder_f ivim_ts_SequenceNumber_decode_uper; +per_type_encoder_f ivim_ts_SequenceNumber_encode_uper; +per_type_decoder_f ivim_ts_SequenceNumber_decode_aper; +per_type_encoder_f ivim_ts_SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SequenceNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ServiceApplicationLimit.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ServiceApplicationLimit.h new file mode 100644 index 000000000..28b9375fd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ServiceApplicationLimit.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ServiceApplicationLimit_H_ +#define _ivim_ts_ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ServiceApplicationLimit { + ivim_ts_ServiceApplicationLimit_notForPostpayment = 0, + ivim_ts_ServiceApplicationLimit_notForPrepayment = 1, + ivim_ts_ServiceApplicationLimit_notForVehicleaccess = 2, + ivim_ts_ServiceApplicationLimit_notForFleetcontrol = 3, + ivim_ts_ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + ivim_ts_ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + ivim_ts_ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + ivim_ts_ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_ivim_ts_ServiceApplicationLimit; + +/* ivim_ts_ServiceApplicationLimit */ +typedef BIT_STRING_t ivim_ts_ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ServiceApplicationLimit; +asn_struct_free_f ivim_ts_ServiceApplicationLimit_free; +asn_struct_print_f ivim_ts_ServiceApplicationLimit_print; +asn_constr_check_f ivim_ts_ServiceApplicationLimit_constraint; +per_type_decoder_f ivim_ts_ServiceApplicationLimit_decode_uper; +per_type_encoder_f ivim_ts_ServiceApplicationLimit_encode_uper; +per_type_decoder_f ivim_ts_ServiceApplicationLimit_decode_aper; +per_type_encoder_f ivim_ts_ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ServiceApplicationLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ServiceNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ServiceNumber.h new file mode 100644 index 000000000..332e48ee1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ServiceNumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ServiceNumber_H_ +#define _ivim_ts_ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ServiceNumber */ +typedef BIT_STRING_t ivim_ts_ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ServiceNumber; +asn_struct_free_f ivim_ts_ServiceNumber_free; +asn_struct_print_f ivim_ts_ServiceNumber_print; +asn_constr_check_f ivim_ts_ServiceNumber_constraint; +per_type_decoder_f ivim_ts_ServiceNumber_decode_uper; +per_type_encoder_f ivim_ts_ServiceNumber_encode_uper; +per_type_decoder_f ivim_ts_ServiceNumber_decode_aper; +per_type_encoder_f ivim_ts_ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ServiceNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SessionClass.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SessionClass.h new file mode 100644 index 000000000..e76e05314 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SessionClass.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SessionClass_H_ +#define _ivim_ts_SessionClass_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SessionClass */ +typedef struct ivim_ts_SessionClass { + ivim_ts_Int1_t sessionTariffClass; + ivim_ts_Int1_t sessionClaimedClass; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SessionClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SessionClass; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SessionClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SessionLocation.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SessionLocation.h new file mode 100644 index 000000000..ce40a4dbd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SessionLocation.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SessionLocation_H_ +#define _ivim_ts_SessionLocation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SessionLocation */ +typedef struct ivim_ts_SessionLocation { + BOOLEAN_t ascendingKilometrage; + long laneCodeNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SessionLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SessionLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SessionLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SessionLocation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SessionLocation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetInstanceRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetInstanceRq.h new file mode 100644 index 000000000..e15499a18 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetInstanceRq.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SetInstanceRq_H_ +#define _ivim_ts_SetInstanceRq_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SetInstanceRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetMMIRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetMMIRq.h new file mode 100644 index 000000000..61e97f975 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetMMIRq.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SetMMIRq_H_ +#define _ivim_ts_SetMMIRq_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SetMMIRq { + ivim_ts_SetMMIRq_ok = 0, + ivim_ts_SetMMIRq_nok = 1, + ivim_ts_SetMMIRq_contactOperator = 2, + ivim_ts_SetMMIRq_noSignalling = 255 +} e_ivim_ts_SetMMIRq; + +/* ivim_ts_SetMMIRq */ +typedef long ivim_ts_SetMMIRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SetMMIRq; +asn_struct_free_f ivim_ts_SetMMIRq_free; +asn_struct_print_f ivim_ts_SetMMIRq_print; +asn_constr_check_f ivim_ts_SetMMIRq_constraint; +per_type_decoder_f ivim_ts_SetMMIRq_decode_uper; +per_type_encoder_f ivim_ts_SetMMIRq_encode_uper; +per_type_decoder_f ivim_ts_SetMMIRq_decode_aper; +per_type_encoder_f ivim_ts_SetMMIRq_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SetMMIRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetStampedRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetStampedRq.h new file mode 100644 index 000000000..9a66af4f4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SetStampedRq.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SetStampedRq_H_ +#define _ivim_ts_SetStampedRq_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SetStampedRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalControlZone.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalControlZone.h new file mode 100644 index 000000000..b97e47897 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalControlZone.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalControlZone_H_ +#define _ivim_ts_SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SignalControlZone */ +typedef struct ivim_ts_SignalControlZone { + ivim_ts_Reg_SignalControlZone_t zone; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SignalControlZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalGroupID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalGroupID.h new file mode 100644 index 000000000..43e46b221 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalGroupID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalGroupID_H_ +#define _ivim_ts_SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SignalGroupID */ +typedef long ivim_ts_SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalGroupID; +asn_struct_free_f ivim_ts_SignalGroupID_free; +asn_struct_print_f ivim_ts_SignalGroupID_print; +asn_constr_check_f ivim_ts_SignalGroupID_constraint; +per_type_decoder_f ivim_ts_SignalGroupID_decode_uper; +per_type_encoder_f ivim_ts_SignalGroupID_encode_uper; +per_type_decoder_f ivim_ts_SignalGroupID_decode_aper; +per_type_encoder_f ivim_ts_SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SignalGroupID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocation.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocation.h new file mode 100644 index 000000000..b4d4c7db5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalHeadLocation_H_ +#define _ivim_ts_SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeOffsetPointXY.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaAltitude.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SignalHeadLocation */ +typedef struct ivim_ts_SignalHeadLocation { + ivim_ts_NodeOffsetPointXY_t nodeXY; + ivim_ts_DeltaAltitude_t nodeZ; + ivim_ts_SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SignalHeadLocation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocationList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocationList.h new file mode 100644 index 000000000..e68115637 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocationList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalHeadLocationList_H_ +#define _ivim_ts_SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SignalHeadLocation; + +/* ivim_ts_SignalHeadLocationList */ +typedef struct ivim_ts_SignalHeadLocationList { + A_SEQUENCE_OF(struct ivim_ts_SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocation.h" + +#endif /* _ivim_ts_SignalHeadLocationList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequest.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequest.h new file mode 100644 index 000000000..8b4b2d316 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequest.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalRequest_H_ +#define _ivim_ts_SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PriorityRequestType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_IntersectionAccessPoint; +struct ivim_ts_Reg_SignalRequest; + +/* ivim_ts_SignalRequest */ +typedef struct ivim_ts_SignalRequest { + ivim_ts_IntersectionReferenceID_t id; + ivim_ts_RequestID_t requestID; + ivim_ts_PriorityRequestType_t requestType; + ivim_ts_IntersectionAccessPoint_t inBoundLane; + struct ivim_ts_IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct ivim_ts_SignalRequest__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_SignalRequest) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionAccessPoint.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_SignalRequest_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestList.h new file mode 100644 index 000000000..aea4b612a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalRequestList_H_ +#define _ivim_ts_SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SignalRequestPackage; + +/* ivim_ts_SignalRequestList */ +typedef struct ivim_ts_SignalRequestList { + A_SEQUENCE_OF(struct ivim_ts_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequestPackage.h" + +#endif /* _ivim_ts_SignalRequestList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestMessage.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestMessage.h new file mode 100644 index 000000000..99b2bb3ff --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestMessage.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalRequestMessage_H_ +#define _ivim_ts_SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DSecond.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SignalRequestList; +struct ivim_ts_Reg_SignalRequestMessage; + +/* ivim_ts_SignalRequestMessage */ +typedef struct ivim_ts_SignalRequestMessage { + ivim_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + ivim_ts_DSecond_t second; + ivim_ts_MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct ivim_ts_SignalRequestList *requests; /* OPTIONAL */ + ivim_ts_RequestorDescription_t requestor; + struct ivim_ts_SignalRequestMessage__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_SignalRequestMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequestList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_SignalRequestMessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestPackage.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestPackage.h new file mode 100644 index 000000000..4b83ab575 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequestPackage.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalRequestPackage_H_ +#define _ivim_ts_SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequest.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_SignalRequestPackage; + +/* ivim_ts_SignalRequestPackage */ +typedef struct ivim_ts_SignalRequestPackage { + ivim_ts_SignalRequest_t request; + ivim_ts_MinuteOfTheYear_t *minute; /* OPTIONAL */ + ivim_ts_DSecond_t *second; /* OPTIONAL */ + ivim_ts_DSecond_t *duration; /* OPTIONAL */ + struct ivim_ts_SignalRequestPackage__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_SignalRequestPackage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequesterInfo.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequesterInfo.h new file mode 100644 index 000000000..335f8a4c3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalRequesterInfo.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalRequesterInfo_H_ +#define _ivim_ts_SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RequestorType; + +/* ivim_ts_SignalRequesterInfo */ +typedef struct ivim_ts_SignalRequesterInfo { + ivim_ts_VehicleID_t id; + ivim_ts_RequestID_t request; + ivim_ts_MsgCount_t sequenceNumber; + ivim_ts_BasicVehicleRole_t *role; /* OPTIONAL */ + struct ivim_ts_RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorType.h" + +#endif /* _ivim_ts_SignalRequesterInfo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatus.h new file mode 100644 index 000000000..aa7e6d483 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatus.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalStatus_H_ +#define _ivim_ts_SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_SignalStatus; + +/* ivim_ts_SignalStatus */ +typedef struct ivim_ts_SignalStatus { + ivim_ts_MsgCount_t sequenceNumber; + ivim_ts_IntersectionReferenceID_t id; + ivim_ts_SignalStatusPackageList_t sigStatus; + struct ivim_ts_SignalStatus__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_SignalStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusList.h new file mode 100644 index 000000000..84c75dc5e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalStatusList_H_ +#define _ivim_ts_SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SignalStatus; + +/* ivim_ts_SignalStatusList */ +typedef struct ivim_ts_SignalStatusList { + A_SEQUENCE_OF(struct ivim_ts_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatus.h" + +#endif /* _ivim_ts_SignalStatusList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusMessage.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusMessage.h new file mode 100644 index 000000000..9e86d23b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusMessage.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalStatusMessage_H_ +#define _ivim_ts_SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DSecond.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Reg_SignalStatusMessage; + +/* ivim_ts_SignalStatusMessage */ +typedef struct ivim_ts_SignalStatusMessage { + ivim_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + ivim_ts_DSecond_t second; + ivim_ts_MsgCount_t *sequenceNumber; /* OPTIONAL */ + ivim_ts_SignalStatusList_t status; + struct ivim_ts_SignalStatusMessage__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_SignalStatusMessage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_SignalStatusMessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage-addGrpC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage-addGrpC.h new file mode 100644 index 000000000..d2318c94e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage-addGrpC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalStatusPackage_addGrpC_H_ +#define _ivim_ts_SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaTime.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SignalStatusPackage-addGrpC */ +typedef struct ivim_ts_SignalStatusPackage_addGrpC { + ivim_ts_DeltaTime_t *synchToSchedule; /* OPTIONAL */ + ivim_ts_RejectedReason_t *rejectedReason; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage.h new file mode 100644 index 000000000..0b9cb1025 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalStatusPackage_H_ +#define _ivim_ts_SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionAccessPoint.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DSecond.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SignalRequesterInfo; +struct ivim_ts_IntersectionAccessPoint; +struct ivim_ts_Reg_SignalStatusPackage; + +/* ivim_ts_SignalStatusPackage */ +typedef struct ivim_ts_SignalStatusPackage { + struct ivim_ts_SignalRequesterInfo *requester; /* OPTIONAL */ + ivim_ts_IntersectionAccessPoint_t inboundOn; + struct ivim_ts_IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + ivim_ts_MinuteOfTheYear_t *minute; /* OPTIONAL */ + ivim_ts_DSecond_t *second; /* OPTIONAL */ + ivim_ts_DSecond_t *duration; /* OPTIONAL */ + ivim_ts_PrioritizationResponseStatus_t status; + struct ivim_ts_SignalStatusPackage__regional { + A_SEQUENCE_OF(struct ivim_ts_Reg_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequesterInfo.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionAccessPoint.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +#endif /* _ivim_ts_SignalStatusPackage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackageList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackageList.h new file mode 100644 index 000000000..6ef4be94a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackageList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalStatusPackageList_H_ +#define _ivim_ts_SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_SignalStatusPackage; + +/* ivim_ts_SignalStatusPackageList */ +typedef struct ivim_ts_SignalStatusPackageList { + A_SEQUENCE_OF(struct ivim_ts_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage.h" + +#endif /* _ivim_ts_SignalStatusPackageList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalViolationSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalViolationSubCauseCode.h new file mode 100644 index 000000000..9903faca5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignalViolationSubCauseCode.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignalViolationSubCauseCode_H_ +#define _ivim_ts_SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SignalViolationSubCauseCode { + ivim_ts_SignalViolationSubCauseCode_unavailable = 0, + ivim_ts_SignalViolationSubCauseCode_stopSignViolation = 1, + ivim_ts_SignalViolationSubCauseCode_trafficLightViolation = 2, + ivim_ts_SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_ivim_ts_SignalViolationSubCauseCode; + +/* ivim_ts_SignalViolationSubCauseCode */ +typedef long ivim_ts_SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalViolationSubCauseCode; +asn_struct_free_f ivim_ts_SignalViolationSubCauseCode_free; +asn_struct_print_f ivim_ts_SignalViolationSubCauseCode_print; +asn_constr_check_f ivim_ts_SignalViolationSubCauseCode_constraint; +per_type_decoder_f ivim_ts_SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SignalViolationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignedValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignedValue.h new file mode 100644 index 000000000..1099c188e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SignedValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SignedValue_H_ +#define _ivim_ts_SignedValue_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SignedValue_PR { + ivim_ts_SignedValue_PR_NOTHING, /* No components present */ + ivim_ts_SignedValue_PR_positive, + ivim_ts_SignedValue_PR_negative +} ivim_ts_SignedValue_PR; + +/* ivim_ts_SignedValue */ +typedef struct ivim_ts_SignedValue { + ivim_ts_SignedValue_PR present; + union ivim_ts_SignedValue_u { + long positive; + long negative; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SignedValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignedValue; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_SignedValue_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SignedValue_1[2]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_SignedValue_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SignedValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SlowVehicleSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SlowVehicleSubCauseCode.h new file mode 100644 index 000000000..a73d7051b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SlowVehicleSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SlowVehicleSubCauseCode_H_ +#define _ivim_ts_SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SlowVehicleSubCauseCode { + ivim_ts_SlowVehicleSubCauseCode_unavailable = 0, + ivim_ts_SlowVehicleSubCauseCode_maintenanceVehicle = 1, + ivim_ts_SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + ivim_ts_SlowVehicleSubCauseCode_abnormalLoad = 3, + ivim_ts_SlowVehicleSubCauseCode_abnormalWideLoad = 4, + ivim_ts_SlowVehicleSubCauseCode_convoy = 5, + ivim_ts_SlowVehicleSubCauseCode_snowplough = 6, + ivim_ts_SlowVehicleSubCauseCode_deicing = 7, + ivim_ts_SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_ivim_ts_SlowVehicleSubCauseCode; + +/* ivim_ts_SlowVehicleSubCauseCode */ +typedef long ivim_ts_SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SlowVehicleSubCauseCode; +asn_struct_free_f ivim_ts_SlowVehicleSubCauseCode_free; +asn_struct_print_f ivim_ts_SlowVehicleSubCauseCode_print; +asn_constr_check_f ivim_ts_SlowVehicleSubCauseCode_constraint; +per_type_decoder_f ivim_ts_SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SlowVehicleSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SoundLevel.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SoundLevel.h new file mode 100644 index 000000000..fcbe947bb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SoundLevel.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SoundLevel_H_ +#define _ivim_ts_SoundLevel_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SoundLevel */ +typedef struct ivim_ts_SoundLevel { + ivim_ts_Int1_t soundstationary; + ivim_ts_Int1_t sounddriveby; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SoundLevel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SoundLevel; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SoundLevel_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SoundLevel_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SoundLevel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpecialTransportType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpecialTransportType.h new file mode 100644 index 000000000..8c0234255 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpecialTransportType.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpecialTransportType_H_ +#define _ivim_ts_SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SpecialTransportType { + ivim_ts_SpecialTransportType_heavyLoad = 0, + ivim_ts_SpecialTransportType_excessWidth = 1, + ivim_ts_SpecialTransportType_excessLength = 2, + ivim_ts_SpecialTransportType_excessHeight = 3 +} e_ivim_ts_SpecialTransportType; + +/* ivim_ts_SpecialTransportType */ +typedef BIT_STRING_t ivim_ts_SpecialTransportType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SpecialTransportType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpecialTransportType; +asn_struct_free_f ivim_ts_SpecialTransportType_free; +asn_struct_print_f ivim_ts_SpecialTransportType_print; +asn_constr_check_f ivim_ts_SpecialTransportType_constraint; +per_type_decoder_f ivim_ts_SpecialTransportType_decode_uper; +per_type_encoder_f ivim_ts_SpecialTransportType_encode_uper; +per_type_decoder_f ivim_ts_SpecialTransportType_decode_aper; +per_type_encoder_f ivim_ts_SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SpecialTransportType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Speed.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Speed.h new file mode 100644 index 000000000..c091bbe5d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Speed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Speed_H_ +#define _ivim_ts_Speed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Speed */ +typedef struct ivim_ts_Speed { + ivim_ts_SpeedValue_t speedValue; + ivim_ts_SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Speed; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Speed_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Speed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Speed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedAdvice.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedAdvice.h new file mode 100644 index 000000000..88d202f3b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedAdvice.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpeedAdvice_H_ +#define _ivim_ts_SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SpeedAdvice */ +typedef long ivim_ts_SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedAdvice; +asn_struct_free_f ivim_ts_SpeedAdvice_free; +asn_struct_print_f ivim_ts_SpeedAdvice_print; +asn_constr_check_f ivim_ts_SpeedAdvice_constraint; +per_type_decoder_f ivim_ts_SpeedAdvice_decode_uper; +per_type_encoder_f ivim_ts_SpeedAdvice_encode_uper; +per_type_decoder_f ivim_ts_SpeedAdvice_decode_aper; +per_type_encoder_f ivim_ts_SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SpeedAdvice_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidence.h new file mode 100644 index 000000000..c76cb15cc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidence.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpeedConfidence_H_ +#define _ivim_ts_SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SpeedConfidence { + ivim_ts_SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + ivim_ts_SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + ivim_ts_SpeedConfidence_outOfRange = 126, + ivim_ts_SpeedConfidence_unavailable = 127 +} e_ivim_ts_SpeedConfidence; + +/* ivim_ts_SpeedConfidence */ +typedef long ivim_ts_SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedConfidence; +asn_struct_free_f ivim_ts_SpeedConfidence_free; +asn_struct_print_f ivim_ts_SpeedConfidence_print; +asn_constr_check_f ivim_ts_SpeedConfidence_constraint; +per_type_decoder_f ivim_ts_SpeedConfidence_decode_uper; +per_type_encoder_f ivim_ts_SpeedConfidence_encode_uper; +per_type_decoder_f ivim_ts_SpeedConfidence_decode_aper; +per_type_encoder_f ivim_ts_SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SpeedConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidenceDSRC.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidenceDSRC.h new file mode 100644 index 000000000..0e622e8b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidenceDSRC.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpeedConfidenceDSRC_H_ +#define _ivim_ts_SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SpeedConfidenceDSRC { + ivim_ts_SpeedConfidenceDSRC_unavailable = 0, + ivim_ts_SpeedConfidenceDSRC_prec100ms = 1, + ivim_ts_SpeedConfidenceDSRC_prec10ms = 2, + ivim_ts_SpeedConfidenceDSRC_prec5ms = 3, + ivim_ts_SpeedConfidenceDSRC_prec1ms = 4, + ivim_ts_SpeedConfidenceDSRC_prec0_1ms = 5, + ivim_ts_SpeedConfidenceDSRC_prec0_05ms = 6, + ivim_ts_SpeedConfidenceDSRC_prec0_01ms = 7 +} e_ivim_ts_SpeedConfidenceDSRC; + +/* ivim_ts_SpeedConfidenceDSRC */ +typedef long ivim_ts_SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f ivim_ts_SpeedConfidenceDSRC_free; +asn_struct_print_f ivim_ts_SpeedConfidenceDSRC_print; +asn_constr_check_f ivim_ts_SpeedConfidenceDSRC_constraint; +per_type_decoder_f ivim_ts_SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f ivim_ts_SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f ivim_ts_SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f ivim_ts_SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SpeedConfidenceDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimit.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimit.h new file mode 100644 index 000000000..6897098dd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimit.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpeedLimit_H_ +#define _ivim_ts_SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SpeedLimit { + ivim_ts_SpeedLimit_oneKmPerHour = 1 +} e_ivim_ts_SpeedLimit; + +/* ivim_ts_SpeedLimit */ +typedef long ivim_ts_SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedLimit; +asn_struct_free_f ivim_ts_SpeedLimit_free; +asn_struct_print_f ivim_ts_SpeedLimit_print; +asn_constr_check_f ivim_ts_SpeedLimit_constraint; +per_type_decoder_f ivim_ts_SpeedLimit_decode_uper; +per_type_encoder_f ivim_ts_SpeedLimit_encode_uper; +per_type_decoder_f ivim_ts_SpeedLimit_decode_aper; +per_type_encoder_f ivim_ts_SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SpeedLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitList.h new file mode 100644 index 000000000..eec71ff60 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpeedLimitList_H_ +#define _ivim_ts_SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_RegulatorySpeedLimit; + +/* ivim_ts_SpeedLimitList */ +typedef struct ivim_ts_SpeedLimitList { + A_SEQUENCE_OF(struct ivim_ts_RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_RegulatorySpeedLimit.h" + +#endif /* _ivim_ts_SpeedLimitList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitType.h new file mode 100644 index 000000000..da94b39a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpeedLimitType_H_ +#define _ivim_ts_SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SpeedLimitType { + ivim_ts_SpeedLimitType_unknown = 0, + ivim_ts_SpeedLimitType_maxSpeedInSchoolZone = 1, + ivim_ts_SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + ivim_ts_SpeedLimitType_maxSpeedInConstructionZone = 3, + ivim_ts_SpeedLimitType_vehicleMinSpeed = 4, + ivim_ts_SpeedLimitType_vehicleMaxSpeed = 5, + ivim_ts_SpeedLimitType_vehicleNightMaxSpeed = 6, + ivim_ts_SpeedLimitType_truckMinSpeed = 7, + ivim_ts_SpeedLimitType_truckMaxSpeed = 8, + ivim_ts_SpeedLimitType_truckNightMaxSpeed = 9, + ivim_ts_SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + ivim_ts_SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + ivim_ts_SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_ivim_ts_SpeedLimitType; + +/* ivim_ts_SpeedLimitType */ +typedef long ivim_ts_SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_SpeedLimitType_specs_1; +asn_struct_free_f ivim_ts_SpeedLimitType_free; +asn_struct_print_f ivim_ts_SpeedLimitType_print; +asn_constr_check_f ivim_ts_SpeedLimitType_constraint; +per_type_decoder_f ivim_ts_SpeedLimitType_decode_uper; +per_type_encoder_f ivim_ts_SpeedLimitType_encode_uper; +per_type_decoder_f ivim_ts_SpeedLimitType_decode_aper; +per_type_encoder_f ivim_ts_SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SpeedLimitType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedValue.h new file mode 100644 index 000000000..a9c40dfa1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpeedValue_H_ +#define _ivim_ts_SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SpeedValue { + ivim_ts_SpeedValue_standstill = 0, + ivim_ts_SpeedValue_oneCentimeterPerSec = 1, + ivim_ts_SpeedValue_unavailable = 16383 +} e_ivim_ts_SpeedValue; + +/* ivim_ts_SpeedValue */ +typedef long ivim_ts_SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedValue; +asn_struct_free_f ivim_ts_SpeedValue_free; +asn_struct_print_f ivim_ts_SpeedValue_print; +asn_constr_check_f ivim_ts_SpeedValue_constraint; +per_type_decoder_f ivim_ts_SpeedValue_decode_uper; +per_type_encoder_f ivim_ts_SpeedValue_encode_uper; +per_type_decoder_f ivim_ts_SpeedValue_decode_aper; +per_type_encoder_f ivim_ts_SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SpeedValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedandHeadingandThrottleConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 000000000..99df66154 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SpeedandHeadingandThrottleConfidence.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SpeedandHeadingandThrottleConfidence_H_ +#define _ivim_ts_SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidenceDSRC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidenceDSRC.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SpeedandHeadingandThrottleConfidence */ +typedef struct ivim_ts_SpeedandHeadingandThrottleConfidence { + ivim_ts_HeadingConfidenceDSRC_t heading; + ivim_ts_SpeedConfidenceDSRC_t speed; + ivim_ts_ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StartTime.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StartTime.h new file mode 100644 index 000000000..fa5f31a82 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StartTime.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_StartTime_H_ +#define _ivim_ts_StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_StartTime */ +typedef ivim_ts_AviEriDateTime_t ivim_ts_StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_StartTime; +asn_struct_free_f ivim_ts_StartTime_free; +asn_struct_print_f ivim_ts_StartTime_print; +asn_constr_check_f ivim_ts_StartTime_constraint; +per_type_decoder_f ivim_ts_StartTime_decode_uper; +per_type_encoder_f ivim_ts_StartTime_encode_uper; +per_type_decoder_f ivim_ts_StartTime_decode_aper; +per_type_encoder_f ivim_ts_StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_StartTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationID.h new file mode 100644 index 000000000..274619166 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationID.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_StationID_H_ +#define _ivim_ts_StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_StationID */ +typedef unsigned long ivim_ts_StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_StationID_specs_1; +asn_struct_free_f ivim_ts_StationID_free; +asn_struct_print_f ivim_ts_StationID_print; +asn_constr_check_f ivim_ts_StationID_constraint; +per_type_decoder_f ivim_ts_StationID_decode_uper; +per_type_encoder_f ivim_ts_StationID_encode_uper; +per_type_decoder_f ivim_ts_StationID_decode_aper; +per_type_encoder_f ivim_ts_StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_StationID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationarySince.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationarySince.h new file mode 100644 index 000000000..a472e6af9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationarySince.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_StationarySince_H_ +#define _ivim_ts_StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_StationarySince { + ivim_ts_StationarySince_lessThan1Minute = 0, + ivim_ts_StationarySince_lessThan2Minutes = 1, + ivim_ts_StationarySince_lessThan15Minutes = 2, + ivim_ts_StationarySince_equalOrGreater15Minutes = 3 +} e_ivim_ts_StationarySince; + +/* ivim_ts_StationarySince */ +typedef long ivim_ts_StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_StationarySince; +asn_struct_free_f ivim_ts_StationarySince_free; +asn_struct_print_f ivim_ts_StationarySince_print; +asn_constr_check_f ivim_ts_StationarySince_constraint; +per_type_decoder_f ivim_ts_StationarySince_decode_uper; +per_type_encoder_f ivim_ts_StationarySince_encode_uper; +per_type_decoder_f ivim_ts_StationarySince_decode_aper; +per_type_encoder_f ivim_ts_StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_StationarySince_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationaryVehicleSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationaryVehicleSubCauseCode.h new file mode 100644 index 000000000..7637efa39 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StationaryVehicleSubCauseCode.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_StationaryVehicleSubCauseCode_H_ +#define _ivim_ts_StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_StationaryVehicleSubCauseCode { + ivim_ts_StationaryVehicleSubCauseCode_unavailable = 0, + ivim_ts_StationaryVehicleSubCauseCode_humanProblem = 1, + ivim_ts_StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + ivim_ts_StationaryVehicleSubCauseCode_postCrash = 3, + ivim_ts_StationaryVehicleSubCauseCode_publicTransportStop = 4, + ivim_ts_StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_ivim_ts_StationaryVehicleSubCauseCode; + +/* ivim_ts_StationaryVehicleSubCauseCode */ +typedef long ivim_ts_StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_StationaryVehicleSubCauseCode; +asn_struct_free_f ivim_ts_StationaryVehicleSubCauseCode_free; +asn_struct_print_f ivim_ts_StationaryVehicleSubCauseCode_print; +asn_constr_check_f ivim_ts_StationaryVehicleSubCauseCode_constraint; +per_type_decoder_f ivim_ts_StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngle.h new file mode 100644 index 000000000..bf023d81f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngle.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SteeringWheelAngle_H_ +#define _ivim_ts_SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SteeringWheelAngle */ +typedef struct ivim_ts_SteeringWheelAngle { + ivim_ts_SteeringWheelAngleValue_t steeringWheelAngleValue; + ivim_ts_SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SteeringWheelAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleConfidence.h new file mode 100644 index 000000000..ecba017bf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleConfidence.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SteeringWheelAngleConfidence_H_ +#define _ivim_ts_SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SteeringWheelAngleConfidence { + ivim_ts_SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + ivim_ts_SteeringWheelAngleConfidence_outOfRange = 126, + ivim_ts_SteeringWheelAngleConfidence_unavailable = 127 +} e_ivim_ts_SteeringWheelAngleConfidence; + +/* ivim_ts_SteeringWheelAngleConfidence */ +typedef long ivim_ts_SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SteeringWheelAngleConfidence; +asn_struct_free_f ivim_ts_SteeringWheelAngleConfidence_free; +asn_struct_print_f ivim_ts_SteeringWheelAngleConfidence_print; +asn_constr_check_f ivim_ts_SteeringWheelAngleConfidence_constraint; +per_type_decoder_f ivim_ts_SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f ivim_ts_SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f ivim_ts_SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f ivim_ts_SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SteeringWheelAngleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleValue.h new file mode 100644 index 000000000..5304b346e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleValue.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SteeringWheelAngleValue_H_ +#define _ivim_ts_SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_SteeringWheelAngleValue { + ivim_ts_SteeringWheelAngleValue_straight = 0, + ivim_ts_SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + ivim_ts_SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + ivim_ts_SteeringWheelAngleValue_unavailable = 512 +} e_ivim_ts_SteeringWheelAngleValue; + +/* ivim_ts_SteeringWheelAngleValue */ +typedef long ivim_ts_SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SteeringWheelAngleValue; +asn_struct_free_f ivim_ts_SteeringWheelAngleValue_free; +asn_struct_print_f ivim_ts_SteeringWheelAngleValue_print; +asn_constr_check_f ivim_ts_SteeringWheelAngleValue_constraint; +per_type_decoder_f ivim_ts_SteeringWheelAngleValue_decode_uper; +per_type_encoder_f ivim_ts_SteeringWheelAngleValue_encode_uper; +per_type_decoder_f ivim_ts_SteeringWheelAngleValue_decode_aper; +per_type_encoder_f ivim_ts_SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SteeringWheelAngleValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StopTime.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StopTime.h new file mode 100644 index 000000000..5c7106eb7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_StopTime.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_StopTime_H_ +#define _ivim_ts_StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_StopTime */ +typedef ivim_ts_AviEriDateTime_t ivim_ts_StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_StopTime; +asn_struct_free_f ivim_ts_StopTime_free; +asn_struct_print_f ivim_ts_StopTime_print; +asn_constr_check_f ivim_ts_StopTime_constraint; +per_type_decoder_f ivim_ts_StopTime_decode_uper; +per_type_encoder_f ivim_ts_StopTime_encode_uper; +per_type_decoder_f ivim_ts_StopTime_decode_aper; +per_type_encoder_f ivim_ts_StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_StopTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SubCauseCodeType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SubCauseCodeType.h new file mode 100644 index 000000000..eb0466c26 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SubCauseCodeType.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SubCauseCodeType_H_ +#define _ivim_ts_SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SubCauseCodeType */ +typedef long ivim_ts_SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SubCauseCodeType; +asn_struct_free_f ivim_ts_SubCauseCodeType_free; +asn_struct_print_f ivim_ts_SubCauseCodeType_print; +asn_constr_check_f ivim_ts_SubCauseCodeType_constraint; +per_type_decoder_f ivim_ts_SubCauseCodeType_decode_uper; +per_type_encoder_f ivim_ts_SubCauseCodeType_encode_uper; +per_type_decoder_f ivim_ts_SubCauseCodeType_decode_aper; +per_type_encoder_f ivim_ts_SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SubCauseCodeType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SubRq.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SubRq.h new file mode 100644 index 000000000..4edc96c6c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_SubRq.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_SubRq_H_ +#define _ivim_ts_SubRq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_SubRq */ +typedef struct ivim_ts_SubRq { + long attributeId; + long value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_SubRq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_SubRq; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_SubRq_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TaxCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TaxCode.h new file mode 100644 index 000000000..2bce88bdd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TaxCode.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TaxCode_H_ +#define _ivim_ts_TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TaxCode */ +typedef OCTET_STRING_t ivim_ts_TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TaxCode; +asn_struct_free_f ivim_ts_TaxCode_free; +asn_struct_print_f ivim_ts_TaxCode_print; +asn_constr_check_f ivim_ts_TaxCode_constraint; +per_type_decoder_f ivim_ts_TaxCode_decode_uper; +per_type_encoder_f ivim_ts_TaxCode_encode_uper; +per_type_decoder_f ivim_ts_TaxCode_decode_aper; +per_type_encoder_f ivim_ts_TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TaxCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TcPart.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TcPart.h new file mode 100644 index 000000000..4f0200823 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TcPart.h @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TcPart_H_ +#define _ivim_ts_TcPart_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Direction.h" +#include +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_IviType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ZoneIds; +struct ivim_ts_LanePositions; +struct ivim_ts_TextLines; +struct ivim_ts_VehicleCharacteristicsList; + +/* ivim_ts_TcPart */ +typedef struct ivim_ts_TcPart { + struct ivim_ts_ZoneIds *detectionZoneIds; /* OPTIONAL */ + ivim_ts_ZoneIds_t relevanceZoneIds; + ivim_ts_Direction_t *direction; /* OPTIONAL */ + struct ivim_ts_ZoneIds *driverAwarenessZoneIds; /* OPTIONAL */ + long *minimumAwarenessTime; /* OPTIONAL */ + struct ivim_ts_LanePositions *applicableLanes; /* OPTIONAL */ + long *layoutId; /* OPTIONAL */ + long *preStoredlayoutId; /* OPTIONAL */ + struct ivim_ts_TextLines *text; /* OPTIONAL */ + OCTET_STRING_t data; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ivim_ts_TcPart__ext1 { + ivim_ts_IviType_t iviType; + ivim_ts_LaneStatus_t *laneStatus; /* OPTIONAL */ + struct ivim_ts_VehicleCharacteristicsList *vehicleCharacteristics; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TcPart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TcPart; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TcPart_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TcPart_1[11]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePositions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TextLines.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsList.h" + +#endif /* _ivim_ts_TcPart_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TemporaryID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TemporaryID.h new file mode 100644 index 000000000..f16dbf77d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TemporaryID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TemporaryID_H_ +#define _ivim_ts_TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TemporaryID */ +typedef OCTET_STRING_t ivim_ts_TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TemporaryID; +asn_struct_free_f ivim_ts_TemporaryID_free; +asn_struct_print_f ivim_ts_TemporaryID_print; +asn_constr_check_f ivim_ts_TemporaryID_constraint; +per_type_decoder_f ivim_ts_TemporaryID_decode_uper; +per_type_encoder_f ivim_ts_TemporaryID_encode_uper; +per_type_decoder_f ivim_ts_TemporaryID_decode_aper; +per_type_encoder_f ivim_ts_TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TemporaryID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Text.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Text.h new file mode 100644 index 000000000..1d1370a11 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Text.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Text_H_ +#define _ivim_ts_Text_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Text */ +typedef struct ivim_ts_Text { + long *layoutComponentId; /* OPTIONAL */ + BIT_STRING_t language; + UTF8String_t textContent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Text_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Text; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Text_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Text_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Text_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TextContainer.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TextContainer.h new file mode 100644 index 000000000..fca6ab03c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TextContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TextContainer_H_ +#define _ivim_ts_TextContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_TcPart; + +/* ivim_ts_TextContainer */ +typedef struct ivim_ts_TextContainer { + A_SEQUENCE_OF(struct ivim_ts_TcPart) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TextContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TextContainer; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_TextContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TextContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_TextContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TcPart.h" + +#endif /* _ivim_ts_TextContainer_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TextLines.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TextLines.h new file mode 100644 index 000000000..ce402ceec --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TextLines.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TextLines_H_ +#define _ivim_ts_TextLines_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_Text; + +/* ivim_ts_TextLines */ +typedef struct ivim_ts_TextLines { + A_SEQUENCE_OF(struct ivim_ts_Text) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TextLines_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TextLines; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_TextLines_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TextLines_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_TextLines_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Text.h" + +#endif /* _ivim_ts_TextLines_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ThrottleConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ThrottleConfidence.h new file mode 100644 index 000000000..ffccd6788 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ThrottleConfidence.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ThrottleConfidence_H_ +#define _ivim_ts_ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ThrottleConfidence { + ivim_ts_ThrottleConfidence_unavailable = 0, + ivim_ts_ThrottleConfidence_prec10percent = 1, + ivim_ts_ThrottleConfidence_prec1percent = 2, + ivim_ts_ThrottleConfidence_prec0_5percent = 3 +} e_ivim_ts_ThrottleConfidence; + +/* ivim_ts_ThrottleConfidence */ +typedef long ivim_ts_ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ThrottleConfidence_specs_1; +asn_struct_free_f ivim_ts_ThrottleConfidence_free; +asn_struct_print_f ivim_ts_ThrottleConfidence_print; +asn_constr_check_f ivim_ts_ThrottleConfidence_constraint; +per_type_decoder_f ivim_ts_ThrottleConfidence_decode_uper; +per_type_encoder_f ivim_ts_ThrottleConfidence_encode_uper; +per_type_decoder_f ivim_ts_ThrottleConfidence_decode_aper; +per_type_encoder_f ivim_ts_ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ThrottleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeChangeDetails.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeChangeDetails.h new file mode 100644 index 000000000..e32932c5f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeChangeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TimeChangeDetails_H_ +#define _ivim_ts_TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeMark.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TimeChangeDetails */ +typedef struct ivim_ts_TimeChangeDetails { + ivim_ts_TimeMark_t *startTime; /* OPTIONAL */ + ivim_ts_TimeMark_t minEndTime; + ivim_ts_TimeMark_t *maxEndTime; /* OPTIONAL */ + ivim_ts_TimeMark_t *likelyTime; /* OPTIONAL */ + ivim_ts_TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + ivim_ts_TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TimeChangeDetails_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeConfidence.h new file mode 100644 index 000000000..1242031f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeConfidence.h @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TimeConfidence_H_ +#define _ivim_ts_TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TimeConfidence { + ivim_ts_TimeConfidence_unavailable = 0, + ivim_ts_TimeConfidence_time_100_000 = 1, + ivim_ts_TimeConfidence_time_050_000 = 2, + ivim_ts_TimeConfidence_time_020_000 = 3, + ivim_ts_TimeConfidence_time_010_000 = 4, + ivim_ts_TimeConfidence_time_002_000 = 5, + ivim_ts_TimeConfidence_time_001_000 = 6, + ivim_ts_TimeConfidence_time_000_500 = 7, + ivim_ts_TimeConfidence_time_000_200 = 8, + ivim_ts_TimeConfidence_time_000_100 = 9, + ivim_ts_TimeConfidence_time_000_050 = 10, + ivim_ts_TimeConfidence_time_000_020 = 11, + ivim_ts_TimeConfidence_time_000_010 = 12, + ivim_ts_TimeConfidence_time_000_005 = 13, + ivim_ts_TimeConfidence_time_000_002 = 14, + ivim_ts_TimeConfidence_time_000_001 = 15, + ivim_ts_TimeConfidence_time_000_000_5 = 16, + ivim_ts_TimeConfidence_time_000_000_2 = 17, + ivim_ts_TimeConfidence_time_000_000_1 = 18, + ivim_ts_TimeConfidence_time_000_000_05 = 19, + ivim_ts_TimeConfidence_time_000_000_02 = 20, + ivim_ts_TimeConfidence_time_000_000_01 = 21, + ivim_ts_TimeConfidence_time_000_000_005 = 22, + ivim_ts_TimeConfidence_time_000_000_002 = 23, + ivim_ts_TimeConfidence_time_000_000_001 = 24, + ivim_ts_TimeConfidence_time_000_000_000_5 = 25, + ivim_ts_TimeConfidence_time_000_000_000_2 = 26, + ivim_ts_TimeConfidence_time_000_000_000_1 = 27, + ivim_ts_TimeConfidence_time_000_000_000_05 = 28, + ivim_ts_TimeConfidence_time_000_000_000_02 = 29, + ivim_ts_TimeConfidence_time_000_000_000_01 = 30, + ivim_ts_TimeConfidence_time_000_000_000_005 = 31, + ivim_ts_TimeConfidence_time_000_000_000_002 = 32, + ivim_ts_TimeConfidence_time_000_000_000_001 = 33, + ivim_ts_TimeConfidence_time_000_000_000_000_5 = 34, + ivim_ts_TimeConfidence_time_000_000_000_000_2 = 35, + ivim_ts_TimeConfidence_time_000_000_000_000_1 = 36, + ivim_ts_TimeConfidence_time_000_000_000_000_05 = 37, + ivim_ts_TimeConfidence_time_000_000_000_000_02 = 38, + ivim_ts_TimeConfidence_time_000_000_000_000_01 = 39 +} e_ivim_ts_TimeConfidence; + +/* ivim_ts_TimeConfidence */ +typedef long ivim_ts_TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_TimeConfidence_specs_1; +asn_struct_free_f ivim_ts_TimeConfidence_free; +asn_struct_print_f ivim_ts_TimeConfidence_print; +asn_constr_check_f ivim_ts_TimeConfidence_constraint; +per_type_decoder_f ivim_ts_TimeConfidence_decode_uper; +per_type_encoder_f ivim_ts_TimeConfidence_encode_uper; +per_type_decoder_f ivim_ts_TimeConfidence_decode_aper; +per_type_encoder_f ivim_ts_TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TimeConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeIntervalConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeIntervalConfidence.h new file mode 100644 index 000000000..c01daeda2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeIntervalConfidence.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TimeIntervalConfidence_H_ +#define _ivim_ts_TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TimeIntervalConfidence */ +typedef long ivim_ts_TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeIntervalConfidence; +asn_struct_free_f ivim_ts_TimeIntervalConfidence_free; +asn_struct_print_f ivim_ts_TimeIntervalConfidence_print; +asn_constr_check_f ivim_ts_TimeIntervalConfidence_constraint; +per_type_decoder_f ivim_ts_TimeIntervalConfidence_decode_uper; +per_type_encoder_f ivim_ts_TimeIntervalConfidence_encode_uper; +per_type_decoder_f ivim_ts_TimeIntervalConfidence_decode_aper; +per_type_encoder_f ivim_ts_TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TimeIntervalConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeMark.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeMark.h new file mode 100644 index 000000000..7d9b14936 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeMark.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TimeMark_H_ +#define _ivim_ts_TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TimeMark */ +typedef long ivim_ts_TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeMark; +asn_struct_free_f ivim_ts_TimeMark_free; +asn_struct_print_f ivim_ts_TimeMark_print; +asn_constr_check_f ivim_ts_TimeMark_constraint; +per_type_decoder_f ivim_ts_TimeMark_decode_uper; +per_type_encoder_f ivim_ts_TimeMark_encode_uper; +per_type_decoder_f ivim_ts_TimeMark_decode_aper; +per_type_encoder_f ivim_ts_TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TimeMark_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeReference.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeReference.h new file mode 100644 index 000000000..27c99253d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimeReference.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TimeReference_H_ +#define _ivim_ts_TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TimeReference { + ivim_ts_TimeReference_oneMilliSec = 1 +} e_ivim_ts_TimeReference; + +/* ivim_ts_TimeReference */ +typedef long ivim_ts_TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeReference; +asn_struct_free_f ivim_ts_TimeReference_free; +asn_struct_print_f ivim_ts_TimeReference_print; +asn_constr_check_f ivim_ts_TimeReference_constraint; +per_type_decoder_f ivim_ts_TimeReference_decode_uper; +per_type_encoder_f ivim_ts_TimeReference_encode_uper; +per_type_decoder_f ivim_ts_TimeReference_decode_aper; +per_type_encoder_f ivim_ts_TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TimeReference_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimestampIts.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimestampIts.h new file mode 100644 index 000000000..0e486e3df --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TimestampIts.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TimestampIts_H_ +#define _ivim_ts_TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TimestampIts { + ivim_ts_TimestampIts_utcStartOf2004 = 0, + ivim_ts_TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_ivim_ts_TimestampIts; + +/* ivim_ts_TimestampIts */ +typedef INTEGER_t ivim_ts_TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimestampIts; +asn_struct_free_f ivim_ts_TimestampIts_free; +asn_struct_print_f ivim_ts_TimestampIts_print; +asn_constr_check_f ivim_ts_TimestampIts_constraint; +per_type_decoder_f ivim_ts_TimestampIts_decode_uper; +per_type_encoder_f ivim_ts_TimestampIts_encode_uper; +per_type_decoder_f ivim_ts_TimestampIts_decode_aper; +per_type_encoder_f ivim_ts_TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TimestampIts_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Traces.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Traces.h new file mode 100644 index 000000000..60ca44e62 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Traces.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Traces_H_ +#define _ivim_ts_Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_PathHistory; + +/* ivim_ts_Traces */ +typedef struct ivim_ts_Traces { + A_SEQUENCE_OF(struct ivim_ts_PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Traces; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_PathHistory.h" + +#endif /* _ivim_ts_Traces_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TractorAxles.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TractorAxles.h new file mode 100644 index 000000000..203f332ae --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TractorAxles.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TractorAxles_H_ +#define _ivim_ts_TractorAxles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TractorAxles */ +typedef long ivim_ts_TractorAxles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TractorAxles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TractorAxles; +asn_struct_free_f ivim_ts_TractorAxles_free; +asn_struct_print_f ivim_ts_TractorAxles_print; +asn_constr_check_f ivim_ts_TractorAxles_constraint; +per_type_decoder_f ivim_ts_TractorAxles_decode_uper; +per_type_encoder_f ivim_ts_TractorAxles_encode_uper; +per_type_decoder_f ivim_ts_TractorAxles_decode_aper; +per_type_encoder_f ivim_ts_TractorAxles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TractorAxles_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TractorCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TractorCharacteristics.h new file mode 100644 index 000000000..a683205fb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TractorCharacteristics.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TractorCharacteristics_H_ +#define _ivim_ts_TractorCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_VehicleCharacteristicsFixValuesList; +struct ivim_ts_VehicleCharacteristicsRangesList; + +/* ivim_ts_TractorCharacteristics */ +typedef struct ivim_ts_TractorCharacteristics { + struct ivim_ts_VehicleCharacteristicsFixValuesList *equalTo; /* OPTIONAL */ + struct ivim_ts_VehicleCharacteristicsFixValuesList *notEqualTo; /* OPTIONAL */ + struct ivim_ts_VehicleCharacteristicsRangesList *ranges; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TractorCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TractorCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TractorCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TractorCharacteristics_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValuesList.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRangesList.h" + +#endif /* _ivim_ts_TractorCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrafficConditionSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrafficConditionSubCauseCode.h new file mode 100644 index 000000000..12125bc1a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrafficConditionSubCauseCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrafficConditionSubCauseCode_H_ +#define _ivim_ts_TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TrafficConditionSubCauseCode { + ivim_ts_TrafficConditionSubCauseCode_unavailable = 0, + ivim_ts_TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + ivim_ts_TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + ivim_ts_TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + ivim_ts_TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + ivim_ts_TrafficConditionSubCauseCode_trafficStationary = 5, + ivim_ts_TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + ivim_ts_TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + ivim_ts_TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_ivim_ts_TrafficConditionSubCauseCode; + +/* ivim_ts_TrafficConditionSubCauseCode */ +typedef long ivim_ts_TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrafficConditionSubCauseCode; +asn_struct_free_f ivim_ts_TrafficConditionSubCauseCode_free; +asn_struct_print_f ivim_ts_TrafficConditionSubCauseCode_print; +asn_constr_check_f ivim_ts_TrafficConditionSubCauseCode_constraint; +per_type_decoder_f ivim_ts_TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TrafficConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrafficRule.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrafficRule.h new file mode 100644 index 000000000..680fa8788 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrafficRule.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrafficRule_H_ +#define _ivim_ts_TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TrafficRule { + ivim_ts_TrafficRule_noPassing = 0, + ivim_ts_TrafficRule_noPassingForTrucks = 1, + ivim_ts_TrafficRule_passToRight = 2, + ivim_ts_TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_ivim_ts_TrafficRule; + +/* ivim_ts_TrafficRule */ +typedef long ivim_ts_TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrafficRule; +asn_struct_free_f ivim_ts_TrafficRule_free; +asn_struct_print_f ivim_ts_TrafficRule_print; +asn_constr_check_f ivim_ts_TrafficRule_constraint; +per_type_decoder_f ivim_ts_TrafficRule_decode_uper; +per_type_encoder_f ivim_ts_TrafficRule_encode_uper; +per_type_decoder_f ivim_ts_TrafficRule_decode_aper; +per_type_encoder_f ivim_ts_TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TrafficRule_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerAxles.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerAxles.h new file mode 100644 index 000000000..05ba199cf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerAxles.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrailerAxles_H_ +#define _ivim_ts_TrailerAxles_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TrailerAxles */ +typedef long ivim_ts_TrailerAxles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TrailerAxles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerAxles; +asn_struct_free_f ivim_ts_TrailerAxles_free; +asn_struct_print_f ivim_ts_TrailerAxles_print; +asn_constr_check_f ivim_ts_TrailerAxles_constraint; +per_type_decoder_f ivim_ts_TrailerAxles_decode_uper; +per_type_encoder_f ivim_ts_TrailerAxles_encode_uper; +per_type_decoder_f ivim_ts_TrailerAxles_decode_aper; +per_type_encoder_f ivim_ts_TrailerAxles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TrailerAxles_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsFixValuesList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsFixValuesList.h new file mode 100644 index 000000000..4e17bcd27 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsFixValuesList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrailerCharacteristicsFixValuesList_H_ +#define _ivim_ts_TrailerCharacteristicsFixValuesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_VehicleCharacteristicsFixValues; + +/* ivim_ts_TrailerCharacteristicsFixValuesList */ +typedef struct ivim_ts_TrailerCharacteristicsFixValuesList { + A_SEQUENCE_OF(struct ivim_ts_VehicleCharacteristicsFixValues) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TrailerCharacteristicsFixValuesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_TrailerCharacteristicsFixValuesList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TrailerCharacteristicsFixValuesList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_TrailerCharacteristicsFixValuesList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValues.h" + +#endif /* _ivim_ts_TrailerCharacteristicsFixValuesList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsList.h new file mode 100644 index 000000000..ce79a7b54 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrailerCharacteristicsList_H_ +#define _ivim_ts_TrailerCharacteristicsList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_TrailerCharacteristics; + +/* ivim_ts_TrailerCharacteristicsList */ +typedef struct ivim_ts_TrailerCharacteristicsList { + A_SEQUENCE_OF(struct ivim_ts_TrailerCharacteristics) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TrailerCharacteristicsList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerCharacteristicsList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_TrailerCharacteristicsList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TrailerCharacteristicsList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_TrailerCharacteristicsList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_IVI_TrailerCharacteristics.h" + +#endif /* _ivim_ts_TrailerCharacteristicsList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsRangesList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsRangesList.h new file mode 100644 index 000000000..f7e55efd6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsRangesList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrailerCharacteristicsRangesList_H_ +#define _ivim_ts_TrailerCharacteristicsRangesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_VehicleCharacteristicsRanges; + +/* ivim_ts_TrailerCharacteristicsRangesList */ +typedef struct ivim_ts_TrailerCharacteristicsRangesList { + A_SEQUENCE_OF(struct ivim_ts_VehicleCharacteristicsRanges) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TrailerCharacteristicsRangesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerCharacteristicsRangesList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_TrailerCharacteristicsRangesList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TrailerCharacteristicsRangesList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_TrailerCharacteristicsRangesList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRanges.h" + +#endif /* _ivim_ts_TrailerCharacteristicsRangesList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerDetails.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerDetails.h new file mode 100644 index 000000000..d7b2cbb2c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerDetails.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrailerDetails_H_ +#define _ivim_ts_TrailerDetails_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerAxles.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TrailerDetails__trailerType { + ivim_ts_TrailerDetails__trailerType_notPresent = 0, + ivim_ts_TrailerDetails__trailerType_trailer = 1, + ivim_ts_TrailerDetails__trailerType_semitrailer = 2 +} e_ivim_ts_TrailerDetails__trailerType; + +/* ivim_ts_TrailerDetails */ +typedef struct ivim_ts_TrailerDetails { + long trailerType; + ivim_ts_TrailerAxles_t trailerAxles; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TrailerDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TrailerDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TrailerDetails_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TrailerDetails_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerLicencePlateNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerLicencePlateNumber.h new file mode 100644 index 000000000..198bc5b56 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrailerLicencePlateNumber.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrailerLicencePlateNumber_H_ +#define _ivim_ts_TrailerLicencePlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LPN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TrailerLicencePlateNumber */ +typedef ivim_ts_LPN_t ivim_ts_TrailerLicencePlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerLicencePlateNumber; +asn_struct_free_f ivim_ts_TrailerLicencePlateNumber_free; +asn_struct_print_f ivim_ts_TrailerLicencePlateNumber_print; +asn_constr_check_f ivim_ts_TrailerLicencePlateNumber_constraint; +per_type_decoder_f ivim_ts_TrailerLicencePlateNumber_decode_uper; +per_type_encoder_f ivim_ts_TrailerLicencePlateNumber_encode_uper; +per_type_decoder_f ivim_ts_TrailerLicencePlateNumber_decode_aper; +per_type_encoder_f ivim_ts_TrailerLicencePlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TrailerLicencePlateNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrainCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrainCharacteristics.h new file mode 100644 index 000000000..62f6285c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TrainCharacteristics.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TrainCharacteristics_H_ +#define _ivim_ts_TrainCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TractorCharacteristics.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TrainCharacteristics */ +typedef ivim_ts_TractorCharacteristics_t ivim_ts_TrainCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrainCharacteristics; +asn_struct_free_f ivim_ts_TrainCharacteristics_free; +asn_struct_print_f ivim_ts_TrainCharacteristics_print; +asn_constr_check_f ivim_ts_TrainCharacteristics_constraint; +per_type_decoder_f ivim_ts_TrainCharacteristics_decode_uper; +per_type_encoder_f ivim_ts_TrainCharacteristics_encode_uper; +per_type_decoder_f ivim_ts_TrainCharacteristics_decode_aper; +per_type_encoder_f ivim_ts_TrainCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TrainCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleOccupancy.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleOccupancy.h new file mode 100644 index 000000000..e0d785938 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleOccupancy.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TransitVehicleOccupancy_H_ +#define _ivim_ts_TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TransitVehicleOccupancy { + ivim_ts_TransitVehicleOccupancy_occupancyUnknown = 0, + ivim_ts_TransitVehicleOccupancy_occupancyEmpty = 1, + ivim_ts_TransitVehicleOccupancy_occupancyVeryLow = 2, + ivim_ts_TransitVehicleOccupancy_occupancyLow = 3, + ivim_ts_TransitVehicleOccupancy_occupancyMed = 4, + ivim_ts_TransitVehicleOccupancy_occupancyHigh = 5, + ivim_ts_TransitVehicleOccupancy_occupancyNearlyFull = 6, + ivim_ts_TransitVehicleOccupancy_occupancyFull = 7 +} e_ivim_ts_TransitVehicleOccupancy; + +/* ivim_ts_TransitVehicleOccupancy */ +typedef long ivim_ts_TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_TransitVehicleOccupancy_specs_1; +asn_struct_free_f ivim_ts_TransitVehicleOccupancy_free; +asn_struct_print_f ivim_ts_TransitVehicleOccupancy_print; +asn_constr_check_f ivim_ts_TransitVehicleOccupancy_constraint; +per_type_decoder_f ivim_ts_TransitVehicleOccupancy_decode_uper; +per_type_encoder_f ivim_ts_TransitVehicleOccupancy_encode_uper; +per_type_decoder_f ivim_ts_TransitVehicleOccupancy_decode_aper; +per_type_encoder_f ivim_ts_TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TransitVehicleOccupancy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleStatus.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleStatus.h new file mode 100644 index 000000000..4be793621 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleStatus.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TransitVehicleStatus_H_ +#define _ivim_ts_TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TransitVehicleStatus { + ivim_ts_TransitVehicleStatus_loading = 0, + ivim_ts_TransitVehicleStatus_anADAuse = 1, + ivim_ts_TransitVehicleStatus_aBikeLoad = 2, + ivim_ts_TransitVehicleStatus_doorOpen = 3, + ivim_ts_TransitVehicleStatus_charging = 4, + ivim_ts_TransitVehicleStatus_atStopLine = 5 +} e_ivim_ts_TransitVehicleStatus; + +/* ivim_ts_TransitVehicleStatus */ +typedef BIT_STRING_t ivim_ts_TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransitVehicleStatus; +asn_struct_free_f ivim_ts_TransitVehicleStatus_free; +asn_struct_print_f ivim_ts_TransitVehicleStatus_print; +asn_constr_check_f ivim_ts_TransitVehicleStatus_constraint; +per_type_decoder_f ivim_ts_TransitVehicleStatus_decode_uper; +per_type_encoder_f ivim_ts_TransitVehicleStatus_encode_uper; +per_type_decoder_f ivim_ts_TransitVehicleStatus_decode_aper; +per_type_encoder_f ivim_ts_TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TransitVehicleStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionAndSpeed.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionAndSpeed.h new file mode 100644 index 000000000..2e3043492 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionAndSpeed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TransmissionAndSpeed_H_ +#define _ivim_ts_TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TransmissionState.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_TransmissionAndSpeed */ +typedef struct ivim_ts_TransmissionAndSpeed { + ivim_ts_TransmissionState_t transmisson; + ivim_ts_Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TransmissionAndSpeed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionInterval.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionInterval.h new file mode 100644 index 000000000..0e30a1e71 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionInterval.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TransmissionInterval_H_ +#define _ivim_ts_TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TransmissionInterval { + ivim_ts_TransmissionInterval_oneMilliSecond = 1, + ivim_ts_TransmissionInterval_tenSeconds = 10000 +} e_ivim_ts_TransmissionInterval; + +/* ivim_ts_TransmissionInterval */ +typedef long ivim_ts_TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransmissionInterval; +asn_struct_free_f ivim_ts_TransmissionInterval_free; +asn_struct_print_f ivim_ts_TransmissionInterval_print; +asn_constr_check_f ivim_ts_TransmissionInterval_constraint; +per_type_decoder_f ivim_ts_TransmissionInterval_decode_uper; +per_type_encoder_f ivim_ts_TransmissionInterval_encode_uper; +per_type_decoder_f ivim_ts_TransmissionInterval_decode_aper; +per_type_encoder_f ivim_ts_TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TransmissionInterval_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionState.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionState.h new file mode 100644 index 000000000..8436675b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TransmissionState.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TransmissionState_H_ +#define _ivim_ts_TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TransmissionState { + ivim_ts_TransmissionState_neutral = 0, + ivim_ts_TransmissionState_park = 1, + ivim_ts_TransmissionState_forwardGears = 2, + ivim_ts_TransmissionState_reverseGears = 3, + ivim_ts_TransmissionState_reserved1 = 4, + ivim_ts_TransmissionState_reserved2 = 5, + ivim_ts_TransmissionState_reserved3 = 6, + ivim_ts_TransmissionState_unavailable = 7 +} e_ivim_ts_TransmissionState; + +/* ivim_ts_TransmissionState */ +typedef long ivim_ts_TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_TransmissionState_specs_1; +asn_struct_free_f ivim_ts_TransmissionState_free; +asn_struct_print_f ivim_ts_TransmissionState_print; +asn_constr_check_f ivim_ts_TransmissionState_constraint; +per_type_decoder_f ivim_ts_TransmissionState_decode_uper; +per_type_encoder_f ivim_ts_TransmissionState_encode_uper; +per_type_decoder_f ivim_ts_TransmissionState_decode_aper; +per_type_encoder_f ivim_ts_TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TransmissionState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TreatmentType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TreatmentType.h new file mode 100644 index 000000000..7f99dc999 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TreatmentType.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TreatmentType_H_ +#define _ivim_ts_TreatmentType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TreatmentType { + ivim_ts_TreatmentType_no = 0, + ivim_ts_TreatmentType_antiskid = 1, + ivim_ts_TreatmentType_anti_icing = 2, + ivim_ts_TreatmentType_de_icing = 3, + ivim_ts_TreatmentType_unavailable = 7 +} e_ivim_ts_TreatmentType; + +/* ivim_ts_TreatmentType */ +typedef long ivim_ts_TreatmentType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_TreatmentType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TreatmentType; +asn_struct_free_f ivim_ts_TreatmentType_free; +asn_struct_print_f ivim_ts_TreatmentType_print; +asn_constr_check_f ivim_ts_TreatmentType_constraint; +per_type_decoder_f ivim_ts_TreatmentType_decode_uper; +per_type_encoder_f ivim_ts_TreatmentType_encode_uper; +per_type_decoder_f ivim_ts_TreatmentType_decode_aper; +per_type_encoder_f ivim_ts_TreatmentType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TreatmentType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TurningRadius.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TurningRadius.h new file mode 100644 index 000000000..020b5c9c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_TurningRadius.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_TurningRadius_H_ +#define _ivim_ts_TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_TurningRadius { + ivim_ts_TurningRadius_point4Meters = 1, + ivim_ts_TurningRadius_unavailable = 255 +} e_ivim_ts_TurningRadius; + +/* ivim_ts_TurningRadius */ +typedef long ivim_ts_TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_TurningRadius; +asn_struct_free_f ivim_ts_TurningRadius_free; +asn_struct_print_f ivim_ts_TurningRadius_print; +asn_constr_check_f ivim_ts_TurningRadius_constraint; +per_type_decoder_f ivim_ts_TurningRadius_decode_uper; +per_type_encoder_f ivim_ts_TurningRadius_encode_uper; +per_type_decoder_f ivim_ts_TurningRadius_decode_aper; +per_type_encoder_f ivim_ts_TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_TurningRadius_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_UnitType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_UnitType.h new file mode 100644 index 000000000..27da34525 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_UnitType.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_UnitType_H_ +#define _ivim_ts_UnitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_UnitType { + ivim_ts_UnitType_mg_km = 0, + ivim_ts_UnitType_mg_kWh = 1 +} e_ivim_ts_UnitType; + +/* ivim_ts_UnitType */ +typedef long ivim_ts_UnitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_UnitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_UnitType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_UnitType_specs_1; +asn_struct_free_f ivim_ts_UnitType_free; +asn_struct_print_f ivim_ts_UnitType_print; +asn_constr_check_f ivim_ts_UnitType_constraint; +per_type_decoder_f ivim_ts_UnitType_decode_uper; +per_type_encoder_f ivim_ts_UnitType_encode_uper; +per_type_decoder_f ivim_ts_UnitType_decode_aper; +per_type_encoder_f ivim_ts_UnitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_UnitType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VDS.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VDS.h new file mode 100644 index 000000000..8d345a1c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VDS.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VDS_H_ +#define _ivim_ts_VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VDS */ +typedef IA5String_t ivim_ts_VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VDS; +asn_struct_free_f ivim_ts_VDS_free; +asn_struct_print_f ivim_ts_VDS_print; +asn_constr_check_f ivim_ts_VDS_constraint; +per_type_decoder_f ivim_ts_VDS_decode_uper; +per_type_encoder_f ivim_ts_VDS_encode_uper; +per_type_decoder_f ivim_ts_VDS_decode_aper; +per_type_encoder_f ivim_ts_VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VDS_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityDuration.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityDuration.h new file mode 100644 index 000000000..23c4e808e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityDuration.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ValidityDuration_H_ +#define _ivim_ts_ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_ValidityDuration { + ivim_ts_ValidityDuration_timeOfDetection = 0, + ivim_ts_ValidityDuration_oneSecondAfterDetection = 1 +} e_ivim_ts_ValidityDuration; + +/* ivim_ts_ValidityDuration */ +typedef long ivim_ts_ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ValidityDuration; +asn_struct_free_f ivim_ts_ValidityDuration_free; +asn_struct_print_f ivim_ts_ValidityDuration_print; +asn_constr_check_f ivim_ts_ValidityDuration_constraint; +per_type_decoder_f ivim_ts_ValidityDuration_decode_uper; +per_type_encoder_f ivim_ts_ValidityDuration_encode_uper; +per_type_decoder_f ivim_ts_ValidityDuration_decode_aper; +per_type_encoder_f ivim_ts_ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ValidityDuration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityOfContract.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityOfContract.h new file mode 100644 index 000000000..8e187bca1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityOfContract.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ValidityOfContract_H_ +#define _ivim_ts_ValidityOfContract_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_DateCompact.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ValidityOfContract */ +typedef struct ivim_ts_ValidityOfContract { + OCTET_STRING_t issuerRestrictions; + ivim_ts_DateCompact_t contractExpiryDate; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ValidityOfContract_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ValidityOfContract; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ValidityOfContract_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityPeriods.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityPeriods.h new file mode 100644 index 000000000..95ddb638f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ValidityPeriods.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ValidityPeriods_H_ +#define _ivim_ts_ValidityPeriods_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_InternationalSign_applicablePeriod; + +/* ivim_ts_ValidityPeriods */ +typedef struct ivim_ts_ValidityPeriods { + A_SEQUENCE_OF(struct ivim_ts_InternationalSign_applicablePeriod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ValidityPeriods_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ValidityPeriods; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ValidityPeriods_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ValidityPeriods_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ValidityPeriods_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h" + +#endif /* _ivim_ts_ValidityPeriods_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber.h new file mode 100644 index 000000000..35d656426 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VarLengthNumber_H_ +#define _ivim_ts_VarLengthNumber_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Ext1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VarLengthNumber_PR { + ivim_ts_VarLengthNumber_PR_NOTHING, /* No components present */ + ivim_ts_VarLengthNumber_PR_content, + ivim_ts_VarLengthNumber_PR_extension +} ivim_ts_VarLengthNumber_PR; + +/* ivim_ts_VarLengthNumber */ +typedef struct ivim_ts_VarLengthNumber { + ivim_ts_VarLengthNumber_PR present; + union ivim_ts_VarLengthNumber_u { + long content; + ivim_ts_Ext1_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VarLengthNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VarLengthNumber; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_VarLengthNumber_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VarLengthNumber_1[2]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_VarLengthNumber_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VarLengthNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber2.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber2.h new file mode 100644 index 000000000..546dd223b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber2.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VarLengthNumber2_H_ +#define _ivim_ts_VarLengthNumber2_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VarLengthNumber2_PR { + ivim_ts_VarLengthNumber2_PR_NOTHING, /* No components present */ + ivim_ts_VarLengthNumber2_PR_shortNo, + ivim_ts_VarLengthNumber2_PR_longNo +} ivim_ts_VarLengthNumber2_PR; + +/* ivim_ts_VarLengthNumber2 */ +typedef struct ivim_ts_VarLengthNumber2 { + ivim_ts_VarLengthNumber2_PR present; + union ivim_ts_VarLengthNumber2_u { + long shortNo; + long longNo; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VarLengthNumber2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VarLengthNumber2; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VarLengthNumber2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcClass.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcClass.h new file mode 100644 index 000000000..a86ef3e37 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcClass.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VcClass_H_ +#define _ivim_ts_VcClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VcClass { + ivim_ts_VcClass_classA = 0, + ivim_ts_VcClass_classB = 1, + ivim_ts_VcClass_classC = 2, + ivim_ts_VcClass_classD = 3, + ivim_ts_VcClass_classE = 4, + ivim_ts_VcClass_classF = 5, + ivim_ts_VcClass_classG = 6, + ivim_ts_VcClass_classH = 7 +} e_ivim_ts_VcClass; + +/* ivim_ts_VcClass */ +typedef long ivim_ts_VcClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VcClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VcClass; +asn_struct_free_f ivim_ts_VcClass_free; +asn_struct_print_f ivim_ts_VcClass_print; +asn_constr_check_f ivim_ts_VcClass_constraint; +per_type_decoder_f ivim_ts_VcClass_decode_uper; +per_type_encoder_f ivim_ts_VcClass_encode_uper; +per_type_decoder_f ivim_ts_VcClass_decode_aper; +per_type_encoder_f ivim_ts_VcClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VcClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcCode.h new file mode 100644 index 000000000..b5a71d9a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VcCode_H_ +#define _ivim_ts_VcCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VcClass.h" +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_VcOption.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_RSCUnit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_ValidityPeriods; + +/* ivim_ts_VcCode */ +typedef struct ivim_ts_VcCode { + ivim_ts_VcClass_t roadSignClass; + long roadSignCode; + ivim_ts_VcOption_t vcOption; + struct ivim_ts_ValidityPeriods *validity; /* OPTIONAL */ + long *value; /* OPTIONAL */ + ivim_ts_RSCUnit_t *unit; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VcCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VcCode; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VcCode_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VcCode_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ValidityPeriods.h" + +#endif /* _ivim_ts_VcCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcOption.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcOption.h new file mode 100644 index 000000000..8cfdc6e78 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VcOption.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VcOption_H_ +#define _ivim_ts_VcOption_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VcOption { + ivim_ts_VcOption_none = 0, + ivim_ts_VcOption_a = 1, + ivim_ts_VcOption_b = 2, + ivim_ts_VcOption_c = 3, + ivim_ts_VcOption_d = 4, + ivim_ts_VcOption_e = 5, + ivim_ts_VcOption_f = 6, + ivim_ts_VcOption_g = 7 +} e_ivim_ts_VcOption; + +/* ivim_ts_VcOption */ +typedef long ivim_ts_VcOption_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VcOption_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VcOption; +asn_struct_free_f ivim_ts_VcOption_free; +asn_struct_print_f ivim_ts_VcOption_print; +asn_constr_check_f ivim_ts_VcOption_constraint; +per_type_decoder_f ivim_ts_VcOption_decode_uper; +per_type_encoder_f ivim_ts_VcOption_encode_uper; +per_type_decoder_f ivim_ts_VcOption_decode_aper; +per_type_encoder_f ivim_ts_VcOption_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VcOption_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleAuthenticator.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleAuthenticator.h new file mode 100644 index 000000000..c996b1f3d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleAuthenticator.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleAuthenticator_H_ +#define _ivim_ts_VehicleAuthenticator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleAuthenticator */ +typedef OCTET_STRING_t ivim_ts_VehicleAuthenticator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleAuthenticator; +asn_struct_free_f ivim_ts_VehicleAuthenticator_free; +asn_struct_print_f ivim_ts_VehicleAuthenticator_print; +asn_constr_check_f ivim_ts_VehicleAuthenticator_constraint; +per_type_decoder_f ivim_ts_VehicleAuthenticator_decode_uper; +per_type_encoder_f ivim_ts_VehicleAuthenticator_encode_uper; +per_type_decoder_f ivim_ts_VehicleAuthenticator_decode_aper; +per_type_encoder_f ivim_ts_VehicleAuthenticator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleAuthenticator_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleAxles.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleAxles.h new file mode 100644 index 000000000..975e4cae2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleAxles.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleAxles_H_ +#define _ivim_ts_VehicleAxles_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerAxles.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_TractorAxles.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleAxles__vehicleAxlesNumber__tyreType { + ivim_ts_VehicleAxles__vehicleAxlesNumber__tyreType_notSpecified = 0, + ivim_ts_VehicleAxles__vehicleAxlesNumber__tyreType_singleTyre = 1, + ivim_ts_VehicleAxles__vehicleAxlesNumber__tyreType_dualTyres = 2, + ivim_ts_VehicleAxles__vehicleAxlesNumber__tyreType_reservedForUse = 3 +} e_ivim_ts_VehicleAxles__vehicleAxlesNumber__tyreType; + +/* ivim_ts_VehicleAxles */ +typedef struct ivim_ts_VehicleAxles { + ivim_ts_Int1_t vehicleFirstAxleHeight; + struct ivim_ts_VehicleAxles__vehicleAxlesNumber { + long tyreType; + struct ivim_ts_VehicleAxles__vehicleAxlesNumber__numberOfAxles { + ivim_ts_TrailerAxles_t trailerAxles; + ivim_ts_TractorAxles_t tractorAxles; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } numberOfAxles; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } vehicleAxlesNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleAxles_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_tyreType_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleAxles; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleAxles_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleBreakdownSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleBreakdownSubCauseCode.h new file mode 100644 index 000000000..20226d731 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleBreakdownSubCauseCode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleBreakdownSubCauseCode_H_ +#define _ivim_ts_VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleBreakdownSubCauseCode { + ivim_ts_VehicleBreakdownSubCauseCode_unavailable = 0, + ivim_ts_VehicleBreakdownSubCauseCode_lackOfFuel = 1, + ivim_ts_VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + ivim_ts_VehicleBreakdownSubCauseCode_engineProblem = 3, + ivim_ts_VehicleBreakdownSubCauseCode_transmissionProblem = 4, + ivim_ts_VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + ivim_ts_VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + ivim_ts_VehicleBreakdownSubCauseCode_steeringProblem = 7, + ivim_ts_VehicleBreakdownSubCauseCode_tyrePuncture = 8, + ivim_ts_VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_ivim_ts_VehicleBreakdownSubCauseCode; + +/* ivim_ts_VehicleBreakdownSubCauseCode */ +typedef long ivim_ts_VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleBreakdownSubCauseCode; +asn_struct_free_f ivim_ts_VehicleBreakdownSubCauseCode_free; +asn_struct_print_f ivim_ts_VehicleBreakdownSubCauseCode_print; +asn_constr_check_f ivim_ts_VehicleBreakdownSubCauseCode_constraint; +per_type_decoder_f ivim_ts_VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValues.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValues.h new file mode 100644 index 000000000..341004cc0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValues.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleCharacteristicsFixValues_H_ +#define _ivim_ts_VehicleCharacteristicsFixValues_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_StationType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryCode.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_Iso3833VehicleType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_EnvironmentalCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_EngineCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_LoadType.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleCharacteristicsFixValues_PR { + ivim_ts_VehicleCharacteristicsFixValues_PR_NOTHING, /* No components present */ + ivim_ts_VehicleCharacteristicsFixValues_PR_simpleVehicleType, + ivim_ts_VehicleCharacteristicsFixValues_PR_euVehicleCategoryCode, + ivim_ts_VehicleCharacteristicsFixValues_PR_iso3833VehicleType, + ivim_ts_VehicleCharacteristicsFixValues_PR_euroAndCo2value, + ivim_ts_VehicleCharacteristicsFixValues_PR_engineCharacteristics, + ivim_ts_VehicleCharacteristicsFixValues_PR_loadType, + ivim_ts_VehicleCharacteristicsFixValues_PR_usage + /* Extensions may appear below */ + +} ivim_ts_VehicleCharacteristicsFixValues_PR; + +/* ivim_ts_VehicleCharacteristicsFixValues */ +typedef struct ivim_ts_VehicleCharacteristicsFixValues { + ivim_ts_VehicleCharacteristicsFixValues_PR present; + union ivim_ts_VehicleCharacteristicsFixValues_u { + ivim_ts_ITS_Container_StationType_t simpleVehicleType; + ivim_ts_EuVehicleCategoryCode_t euVehicleCategoryCode; + ivim_ts_Iso3833VehicleType_t iso3833VehicleType; + ivim_ts_EnvironmentalCharacteristics_t euroAndCo2value; + ivim_ts_EngineCharacteristics_t engineCharacteristics; + ivim_ts_LoadType_t loadType; + ivim_ts_VehicleRole_t usage; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleCharacteristicsFixValues_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsFixValues; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsFixValues_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VehicleCharacteristicsFixValues_1[7]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleCharacteristicsFixValues_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleCharacteristicsFixValues_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValuesList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValuesList.h new file mode 100644 index 000000000..c19ff4588 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValuesList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleCharacteristicsFixValuesList_H_ +#define _ivim_ts_VehicleCharacteristicsFixValuesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_VehicleCharacteristicsFixValues; + +/* ivim_ts_VehicleCharacteristicsFixValuesList */ +typedef struct ivim_ts_VehicleCharacteristicsFixValuesList { + A_SEQUENCE_OF(struct ivim_ts_VehicleCharacteristicsFixValues) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleCharacteristicsFixValuesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsFixValuesList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VehicleCharacteristicsFixValuesList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleCharacteristicsFixValuesList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValues.h" + +#endif /* _ivim_ts_VehicleCharacteristicsFixValuesList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsList.h new file mode 100644 index 000000000..b78c588c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleCharacteristicsList_H_ +#define _ivim_ts_VehicleCharacteristicsList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_CompleteVehicleCharacteristics; + +/* ivim_ts_VehicleCharacteristicsList */ +typedef struct ivim_ts_VehicleCharacteristicsList { + A_SEQUENCE_OF(struct ivim_ts_CompleteVehicleCharacteristics) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleCharacteristicsList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VehicleCharacteristicsList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleCharacteristicsList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_CompleteVehicleCharacteristics.h" + +#endif /* _ivim_ts_VehicleCharacteristicsList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRanges.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRanges.h new file mode 100644 index 000000000..1abffd956 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRanges.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleCharacteristicsRanges_H_ +#define _ivim_ts_VehicleCharacteristicsRanges_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_ComparisonOperator.h" +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleDimensions.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLimits.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AxleWeightLimits.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PassengerCapacity.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ExhaustEmissionValues.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DieselEmissionValues.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_SoundLevel.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleCharacteristicsRanges__limits_PR { + ivim_ts_VehicleCharacteristicsRanges__limits_PR_NOTHING, /* No components present */ + ivim_ts_VehicleCharacteristicsRanges__limits_PR_numberOfAxles, + ivim_ts_VehicleCharacteristicsRanges__limits_PR_vehicleDimensions, + ivim_ts_VehicleCharacteristicsRanges__limits_PR_vehicleWeightLimits, + ivim_ts_VehicleCharacteristicsRanges__limits_PR_axleWeightLimits, + ivim_ts_VehicleCharacteristicsRanges__limits_PR_passengerCapacity, + ivim_ts_VehicleCharacteristicsRanges__limits_PR_exhaustEmissionValues, + ivim_ts_VehicleCharacteristicsRanges__limits_PR_dieselEmissionValues, + ivim_ts_VehicleCharacteristicsRanges__limits_PR_soundLevel + /* Extensions may appear below */ + +} ivim_ts_VehicleCharacteristicsRanges__limits_PR; + +/* ivim_ts_VehicleCharacteristicsRanges */ +typedef struct ivim_ts_VehicleCharacteristicsRanges { + ivim_ts_ComparisonOperator_t comparisonOperator; + struct ivim_ts_VehicleCharacteristicsRanges__limits { + ivim_ts_VehicleCharacteristicsRanges__limits_PR present; + union ivim_ts_VehicleCharacteristicsRanges__ivim_ts_limits_u { + long numberOfAxles; + ivim_ts_VehicleDimensions_t vehicleDimensions; + ivim_ts_VehicleWeightLimits_t vehicleWeightLimits; + ivim_ts_AxleWeightLimits_t axleWeightLimits; + ivim_ts_PassengerCapacity_t passengerCapacity; + ivim_ts_ExhaustEmissionValues_t exhaustEmissionValues; + ivim_ts_DieselEmissionValues_t dieselEmissionValues; + ivim_ts_SoundLevel_t soundLevel; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } limits; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleCharacteristicsRanges_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsRanges; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsRanges_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VehicleCharacteristicsRanges_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleCharacteristicsRanges_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRangesList.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRangesList.h new file mode 100644 index 000000000..1eb19ab06 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRangesList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleCharacteristicsRangesList_H_ +#define _ivim_ts_VehicleCharacteristicsRangesList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ivim_ts_VehicleCharacteristicsRanges; + +/* ivim_ts_VehicleCharacteristicsRangesList */ +typedef struct ivim_ts_VehicleCharacteristicsRangesList { + A_SEQUENCE_OF(struct ivim_ts_VehicleCharacteristicsRanges) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleCharacteristicsRangesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsRangesList; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsRangesList_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VehicleCharacteristicsRangesList_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleCharacteristicsRangesList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRanges.h" + +#endif /* _ivim_ts_VehicleCharacteristicsRangesList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleClass.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleClass.h new file mode 100644 index 000000000..93e992ad7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleClass.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleClass_H_ +#define _ivim_ts_VehicleClass_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleClass */ +typedef ivim_ts_Int1_t ivim_ts_VehicleClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleClass; +asn_struct_free_f ivim_ts_VehicleClass_free; +asn_struct_print_f ivim_ts_VehicleClass_print; +asn_constr_check_f ivim_ts_VehicleClass_constraint; +per_type_decoder_f ivim_ts_VehicleClass_decode_uper; +per_type_encoder_f ivim_ts_VehicleClass_encode_uper; +per_type_decoder_f ivim_ts_VehicleClass_decode_aper; +per_type_encoder_f ivim_ts_VehicleClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCurrentMaxTrainWeight.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCurrentMaxTrainWeight.h new file mode 100644 index 000000000..7cb564f64 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleCurrentMaxTrainWeight.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleCurrentMaxTrainWeight_H_ +#define _ivim_ts_VehicleCurrentMaxTrainWeight_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleCurrentMaxTrainWeight */ +typedef ivim_ts_Int2_t ivim_ts_VehicleCurrentMaxTrainWeight_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCurrentMaxTrainWeight; +asn_struct_free_f ivim_ts_VehicleCurrentMaxTrainWeight_free; +asn_struct_print_f ivim_ts_VehicleCurrentMaxTrainWeight_print; +asn_constr_check_f ivim_ts_VehicleCurrentMaxTrainWeight_constraint; +per_type_decoder_f ivim_ts_VehicleCurrentMaxTrainWeight_decode_uper; +per_type_encoder_f ivim_ts_VehicleCurrentMaxTrainWeight_encode_uper; +per_type_decoder_f ivim_ts_VehicleCurrentMaxTrainWeight_decode_aper; +per_type_encoder_f ivim_ts_VehicleCurrentMaxTrainWeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleCurrentMaxTrainWeight_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleDimensions.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleDimensions.h new file mode 100644 index 000000000..a1affa880 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleDimensions.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleDimensions_H_ +#define _ivim_ts_VehicleDimensions_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleDimensions */ +typedef struct ivim_ts_VehicleDimensions { + ivim_ts_Int1_t vehicleLengthOverall; + ivim_ts_Int1_t vehicleHeigthOverall; + ivim_ts_Int1_t vehicleWidthOverall; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleDimensions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleDimensions; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleDimensions_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VehicleDimensions_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleDimensions_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleHeight.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleHeight.h new file mode 100644 index 000000000..20e1447ff --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleHeight.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleHeight_H_ +#define _ivim_ts_VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleHeight */ +typedef long ivim_ts_VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleHeight; +asn_struct_free_f ivim_ts_VehicleHeight_free; +asn_struct_print_f ivim_ts_VehicleHeight_print; +asn_constr_check_f ivim_ts_VehicleHeight_constraint; +per_type_decoder_f ivim_ts_VehicleHeight_decode_uper; +per_type_encoder_f ivim_ts_VehicleHeight_encode_uper; +per_type_decoder_f ivim_ts_VehicleHeight_decode_aper; +per_type_encoder_f ivim_ts_VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleHeight_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleID.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleID.h new file mode 100644 index 000000000..ab5e34243 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleID_H_ +#define _ivim_ts_VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_TemporaryID.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleID_PR { + ivim_ts_VehicleID_PR_NOTHING, /* No components present */ + ivim_ts_VehicleID_PR_entityID, + ivim_ts_VehicleID_PR_stationID +} ivim_ts_VehicleID_PR; + +/* ivim_ts_VehicleID */ +typedef struct ivim_ts_VehicleID { + ivim_ts_VehicleID_PR present; + union ivim_ts_VehicleID_u { + ivim_ts_TemporaryID_t entityID; + ivim_ts_StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleIdentification.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleIdentification.h new file mode 100644 index 000000000..551b30947 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleIdentification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleIdentification_H_ +#define _ivim_ts_VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_WMInumber.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleIdentification */ +typedef struct ivim_ts_VehicleIdentification { + ivim_ts_WMInumber_t *wMInumber; /* OPTIONAL */ + ivim_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; +} ivim_ts_VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleIdentification_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleIdentificationNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleIdentificationNumber.h new file mode 100644 index 000000000..22d4093ab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleIdentificationNumber.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleIdentificationNumber_H_ +#define _ivim_ts_VehicleIdentificationNumber_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_CS5.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleIdentificationNumber */ +typedef ivim_ts_CS5_t ivim_ts_VehicleIdentificationNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleIdentificationNumber; +asn_struct_free_f ivim_ts_VehicleIdentificationNumber_free; +asn_struct_print_f ivim_ts_VehicleIdentificationNumber_print; +asn_constr_check_f ivim_ts_VehicleIdentificationNumber_constraint; +per_type_decoder_f ivim_ts_VehicleIdentificationNumber_decode_uper; +per_type_encoder_f ivim_ts_VehicleIdentificationNumber_encode_uper; +per_type_decoder_f ivim_ts_VehicleIdentificationNumber_decode_aper; +per_type_encoder_f ivim_ts_VehicleIdentificationNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleIdentificationNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLength.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLength.h new file mode 100644 index 000000000..35154838d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleLength_H_ +#define _ivim_ts_VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleLength */ +typedef struct ivim_ts_VehicleLength { + ivim_ts_VehicleLengthValue_t vehicleLengthValue; + ivim_ts_VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthConfidenceIndication.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthConfidenceIndication.h new file mode 100644 index 000000000..3b23b504f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthConfidenceIndication.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleLengthConfidenceIndication_H_ +#define _ivim_ts_VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleLengthConfidenceIndication { + ivim_ts_VehicleLengthConfidenceIndication_noTrailerPresent = 0, + ivim_ts_VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + ivim_ts_VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + ivim_ts_VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + ivim_ts_VehicleLengthConfidenceIndication_unavailable = 4 +} e_ivim_ts_VehicleLengthConfidenceIndication; + +/* ivim_ts_VehicleLengthConfidenceIndication */ +typedef long ivim_ts_VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f ivim_ts_VehicleLengthConfidenceIndication_free; +asn_struct_print_f ivim_ts_VehicleLengthConfidenceIndication_print; +asn_constr_check_f ivim_ts_VehicleLengthConfidenceIndication_constraint; +per_type_decoder_f ivim_ts_VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f ivim_ts_VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f ivim_ts_VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f ivim_ts_VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthValue.h new file mode 100644 index 000000000..f27c63e0e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleLengthValue_H_ +#define _ivim_ts_VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleLengthValue { + ivim_ts_VehicleLengthValue_tenCentimeters = 1, + ivim_ts_VehicleLengthValue_outOfRange = 1022, + ivim_ts_VehicleLengthValue_unavailable = 1023 +} e_ivim_ts_VehicleLengthValue; + +/* ivim_ts_VehicleLengthValue */ +typedef long ivim_ts_VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleLengthValue; +asn_struct_free_f ivim_ts_VehicleLengthValue_free; +asn_struct_print_f ivim_ts_VehicleLengthValue_print; +asn_constr_check_f ivim_ts_VehicleLengthValue_constraint; +per_type_decoder_f ivim_ts_VehicleLengthValue_decode_uper; +per_type_encoder_f ivim_ts_VehicleLengthValue_encode_uper; +per_type_decoder_f ivim_ts_VehicleLengthValue_decode_aper; +per_type_encoder_f ivim_ts_VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleLengthValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLicencePlateNumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLicencePlateNumber.h new file mode 100644 index 000000000..c7dc4a8c7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleLicencePlateNumber.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleLicencePlateNumber_H_ +#define _ivim_ts_VehicleLicencePlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_LPN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleLicencePlateNumber */ +typedef ivim_ts_LPN_t ivim_ts_VehicleLicencePlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleLicencePlateNumber; +asn_struct_free_f ivim_ts_VehicleLicencePlateNumber_free; +asn_struct_print_f ivim_ts_VehicleLicencePlateNumber_print; +asn_constr_check_f ivim_ts_VehicleLicencePlateNumber_constraint; +per_type_decoder_f ivim_ts_VehicleLicencePlateNumber_decode_uper; +per_type_encoder_f ivim_ts_VehicleLicencePlateNumber_encode_uper; +per_type_decoder_f ivim_ts_VehicleLicencePlateNumber_decode_aper; +per_type_encoder_f ivim_ts_VehicleLicencePlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleLicencePlateNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleMass.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleMass.h new file mode 100644 index 000000000..0c9ee1e68 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleMass.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleMass_H_ +#define _ivim_ts_VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleMass { + ivim_ts_VehicleMass_hundredKg = 1, + ivim_ts_VehicleMass_unavailable = 1024 +} e_ivim_ts_VehicleMass; + +/* ivim_ts_VehicleMass */ +typedef long ivim_ts_VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleMass; +asn_struct_free_f ivim_ts_VehicleMass_free; +asn_struct_print_f ivim_ts_VehicleMass_print; +asn_constr_check_f ivim_ts_VehicleMass_constraint; +per_type_decoder_f ivim_ts_VehicleMass_decode_uper; +per_type_encoder_f ivim_ts_VehicleMass_encode_uper; +per_type_decoder_f ivim_ts_VehicleMass_decode_aper; +per_type_encoder_f ivim_ts_VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleMass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleRole.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleRole.h new file mode 100644 index 000000000..d90d7c104 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleRole.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleRole_H_ +#define _ivim_ts_VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleRole { + ivim_ts_VehicleRole_default = 0, + ivim_ts_VehicleRole_publicTransport = 1, + ivim_ts_VehicleRole_specialTransport = 2, + ivim_ts_VehicleRole_dangerousGoods = 3, + ivim_ts_VehicleRole_roadWork = 4, + ivim_ts_VehicleRole_rescue = 5, + ivim_ts_VehicleRole_emergency = 6, + ivim_ts_VehicleRole_safetyCar = 7, + ivim_ts_VehicleRole_agriculture = 8, + ivim_ts_VehicleRole_commercial = 9, + ivim_ts_VehicleRole_military = 10, + ivim_ts_VehicleRole_roadOperator = 11, + ivim_ts_VehicleRole_taxi = 12, + ivim_ts_VehicleRole_reserved1 = 13, + ivim_ts_VehicleRole_reserved2 = 14, + ivim_ts_VehicleRole_reserved3 = 15 +} e_ivim_ts_VehicleRole; + +/* ivim_ts_VehicleRole */ +typedef long ivim_ts_VehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_VehicleRole_specs_1; +asn_struct_free_f ivim_ts_VehicleRole_free; +asn_struct_print_f ivim_ts_VehicleRole_print; +asn_constr_check_f ivim_ts_VehicleRole_constraint; +per_type_decoder_f ivim_ts_VehicleRole_decode_uper; +per_type_encoder_f ivim_ts_VehicleRole_encode_uper; +per_type_decoder_f ivim_ts_VehicleRole_decode_aper; +per_type_encoder_f ivim_ts_VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleSpecificCharacteristics.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleSpecificCharacteristics.h new file mode 100644 index 000000000..23d1f5468 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleSpecificCharacteristics.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleSpecificCharacteristics_H_ +#define _ivim_ts_VehicleSpecificCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_EnvironmentalCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_EngineCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveCharacteristics.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_FutureCharacteristics.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleSpecificCharacteristics */ +typedef struct ivim_ts_VehicleSpecificCharacteristics { + ivim_ts_EnvironmentalCharacteristics_t environmentalCharacteristics; + ivim_ts_EngineCharacteristics_t engineCharacteristics; + ivim_ts_DescriptiveCharacteristics_t descriptiveCharacteristics; + ivim_ts_FutureCharacteristics_t futureCharacteristics; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleSpecificCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleSpecificCharacteristics; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleSpecificCharacteristics_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleTotalDistance.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleTotalDistance.h new file mode 100644 index 000000000..3a28d683d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleTotalDistance.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleTotalDistance_H_ +#define _ivim_ts_VehicleTotalDistance_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int4.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleTotalDistance */ +typedef ivim_ts_Int4_t ivim_ts_VehicleTotalDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleTotalDistance; +asn_struct_free_f ivim_ts_VehicleTotalDistance_free; +asn_struct_print_f ivim_ts_VehicleTotalDistance_print; +asn_constr_check_f ivim_ts_VehicleTotalDistance_constraint; +per_type_decoder_f ivim_ts_VehicleTotalDistance_decode_uper; +per_type_encoder_f ivim_ts_VehicleTotalDistance_encode_uper; +per_type_decoder_f ivim_ts_VehicleTotalDistance_decode_aper; +per_type_encoder_f ivim_ts_VehicleTotalDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleTotalDistance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleType.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleType.h new file mode 100644 index 000000000..38dcbbd56 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleType.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleType_H_ +#define _ivim_ts_VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleType { + ivim_ts_VehicleType_none = 0, + ivim_ts_VehicleType_unknown = 1, + ivim_ts_VehicleType_special = 2, + ivim_ts_VehicleType_moto = 3, + ivim_ts_VehicleType_car = 4, + ivim_ts_VehicleType_carOther = 5, + ivim_ts_VehicleType_bus = 6, + ivim_ts_VehicleType_axleCnt2 = 7, + ivim_ts_VehicleType_axleCnt3 = 8, + ivim_ts_VehicleType_axleCnt4 = 9, + ivim_ts_VehicleType_axleCnt4Trailer = 10, + ivim_ts_VehicleType_axleCnt5Trailer = 11, + ivim_ts_VehicleType_axleCnt6Trailer = 12, + ivim_ts_VehicleType_axleCnt5MultiTrailer = 13, + ivim_ts_VehicleType_axleCnt6MultiTrailer = 14, + ivim_ts_VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_ivim_ts_VehicleType; + +/* ivim_ts_VehicleType */ +typedef long ivim_ts_VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_VehicleType_specs_1; +asn_struct_free_f ivim_ts_VehicleType_free; +asn_struct_print_f ivim_ts_VehicleType_print; +asn_constr_check_f ivim_ts_VehicleType_constraint; +per_type_decoder_f ivim_ts_VehicleType_decode_uper; +per_type_encoder_f ivim_ts_VehicleType_encode_uper; +per_type_decoder_f ivim_ts_VehicleType_decode_aper; +per_type_encoder_f ivim_ts_VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLaden.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLaden.h new file mode 100644 index 000000000..d9cff6dc6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLaden.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleWeightLaden_H_ +#define _ivim_ts_VehicleWeightLaden_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleWeightLaden */ +typedef ivim_ts_Int2_t ivim_ts_VehicleWeightLaden_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleWeightLaden; +asn_struct_free_f ivim_ts_VehicleWeightLaden_free; +asn_struct_print_f ivim_ts_VehicleWeightLaden_print; +asn_constr_check_f ivim_ts_VehicleWeightLaden_constraint; +per_type_decoder_f ivim_ts_VehicleWeightLaden_decode_uper; +per_type_encoder_f ivim_ts_VehicleWeightLaden_encode_uper; +per_type_decoder_f ivim_ts_VehicleWeightLaden_decode_aper; +per_type_encoder_f ivim_ts_VehicleWeightLaden_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleWeightLaden_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLimits.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLimits.h new file mode 100644 index 000000000..56c695500 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLimits.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleWeightLimits_H_ +#define _ivim_ts_VehicleWeightLimits_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VehicleWeightLimits */ +typedef struct ivim_ts_VehicleWeightLimits { + ivim_ts_Int2_t vehicleMaxLadenWeight; + ivim_ts_Int2_t vehicleTrainMaximumWeight; + ivim_ts_Int2_t vehicleWeightUnladen; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VehicleWeightLimits_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleWeightLimits; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleWeightLimits_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_VehicleWeightLimits_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleWeightLimits_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWidth.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWidth.h new file mode 100644 index 000000000..e0d900213 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VehicleWidth.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VehicleWidth_H_ +#define _ivim_ts_VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VehicleWidth { + ivim_ts_VehicleWidth_tenCentimeters = 1, + ivim_ts_VehicleWidth_outOfRange = 61, + ivim_ts_VehicleWidth_unavailable = 62 +} e_ivim_ts_VehicleWidth; + +/* ivim_ts_VehicleWidth */ +typedef long ivim_ts_VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleWidth; +asn_struct_free_f ivim_ts_VehicleWidth_free; +asn_struct_print_f ivim_ts_VehicleWidth_print; +asn_constr_check_f ivim_ts_VehicleWidth_constraint; +per_type_decoder_f ivim_ts_VehicleWidth_decode_uper; +per_type_encoder_f ivim_ts_VehicleWidth_encode_uper; +per_type_decoder_f ivim_ts_VehicleWidth_decode_aper; +per_type_encoder_f ivim_ts_VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VehicleWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Velocity.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Velocity.h new file mode 100644 index 000000000..0791b406e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Velocity.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Velocity_H_ +#define _ivim_ts_Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Velocity */ +typedef long ivim_ts_Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Velocity; +asn_struct_free_f ivim_ts_Velocity_free; +asn_struct_print_f ivim_ts_Velocity_print; +asn_constr_check_f ivim_ts_Velocity_constraint; +per_type_decoder_f ivim_ts_Velocity_decode_uper; +per_type_encoder_f ivim_ts_Velocity_encode_uper; +per_type_decoder_f ivim_ts_Velocity_decode_aper; +per_type_encoder_f ivim_ts_Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Velocity_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VerticalAcceleration.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VerticalAcceleration.h new file mode 100644 index 000000000..db90e4b45 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VerticalAcceleration_H_ +#define _ivim_ts_VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_VerticalAccelerationValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_VerticalAcceleration */ +typedef struct ivim_ts_VerticalAcceleration { + ivim_ts_VerticalAccelerationValue_t verticalAccelerationValue; + ivim_ts_AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VerticalAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VerticalAccelerationValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VerticalAccelerationValue.h new file mode 100644 index 000000000..65b271b56 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_VerticalAccelerationValue.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_VerticalAccelerationValue_H_ +#define _ivim_ts_VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_VerticalAccelerationValue { + ivim_ts_VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + ivim_ts_VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + ivim_ts_VerticalAccelerationValue_unavailable = 161 +} e_ivim_ts_VerticalAccelerationValue; + +/* ivim_ts_VerticalAccelerationValue */ +typedef long ivim_ts_VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_VerticalAccelerationValue; +asn_struct_free_f ivim_ts_VerticalAccelerationValue_free; +asn_struct_print_f ivim_ts_VerticalAccelerationValue_print; +asn_constr_check_f ivim_ts_VerticalAccelerationValue_constraint; +per_type_decoder_f ivim_ts_VerticalAccelerationValue_decode_uper; +per_type_encoder_f ivim_ts_VerticalAccelerationValue_encode_uper; +per_type_decoder_f ivim_ts_VerticalAccelerationValue_decode_aper; +per_type_encoder_f ivim_ts_VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_VerticalAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WMInumber.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WMInumber.h new file mode 100644 index 000000000..d27f8ec92 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WMInumber.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_WMInumber_H_ +#define _ivim_ts_WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_WMInumber */ +typedef IA5String_t ivim_ts_WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_WMInumber; +asn_struct_free_f ivim_ts_WMInumber_free; +asn_struct_print_f ivim_ts_WMInumber_print; +asn_constr_check_f ivim_ts_WMInumber_constraint; +per_type_decoder_f ivim_ts_WMInumber_decode_uper; +per_type_encoder_f ivim_ts_WMInumber_encode_uper; +per_type_decoder_f ivim_ts_WMInumber_decode_aper; +per_type_encoder_f ivim_ts_WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_WMInumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WaitOnStopline.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WaitOnStopline.h new file mode 100644 index 000000000..7410baef9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WaitOnStopline.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_WaitOnStopline_H_ +#define _ivim_ts_WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_WaitOnStopline */ +typedef BOOLEAN_t ivim_ts_WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_WaitOnStopline; +asn_struct_free_f ivim_ts_WaitOnStopline_free; +asn_struct_print_f ivim_ts_WaitOnStopline_print; +asn_constr_check_f ivim_ts_WaitOnStopline_constraint; +per_type_decoder_f ivim_ts_WaitOnStopline_decode_uper; +per_type_encoder_f ivim_ts_WaitOnStopline_encode_uper; +per_type_decoder_f ivim_ts_WaitOnStopline_decode_aper; +per_type_encoder_f ivim_ts_WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_WaitOnStopline_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WearLevel.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WearLevel.h new file mode 100644 index 000000000..09dc6ba3e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WearLevel.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_WearLevel_H_ +#define _ivim_ts_WearLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_WearLevel { + ivim_ts_WearLevel_new = 0, + ivim_ts_WearLevel_good = 1, + ivim_ts_WearLevel_bad = 2, + ivim_ts_WearLevel_hasPotholes = 3, + ivim_ts_WearLevel_unavailable = 7 +} e_ivim_ts_WearLevel; + +/* ivim_ts_WearLevel */ +typedef long ivim_ts_WearLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_WearLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_WearLevel; +asn_struct_free_f ivim_ts_WearLevel_free; +asn_struct_print_f ivim_ts_WearLevel_print; +asn_constr_check_f ivim_ts_WearLevel_constraint; +per_type_decoder_f ivim_ts_WearLevel_decode_uper; +per_type_encoder_f ivim_ts_WearLevel_encode_uper; +per_type_decoder_f ivim_ts_WearLevel_decode_aper; +per_type_encoder_f ivim_ts_WearLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_WearLevel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Weight.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Weight.h new file mode 100644 index 000000000..65d558c8e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Weight.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Weight_H_ +#define _ivim_ts_Weight_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_ivim_ts_coding/ivim_ts_Code-Units.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Weight */ +typedef struct ivim_ts_Weight { + long value; + ivim_ts_Code_Units_t unit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Weight_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Weight; +extern asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Weight_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Weight_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Weight_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WheelBaseVehicle.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WheelBaseVehicle.h new file mode 100644 index 000000000..8d1860b38 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WheelBaseVehicle.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_WheelBaseVehicle_H_ +#define _ivim_ts_WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_WheelBaseVehicle { + ivim_ts_WheelBaseVehicle_tenCentimeters = 1, + ivim_ts_WheelBaseVehicle_unavailable = 127 +} e_ivim_ts_WheelBaseVehicle; + +/* ivim_ts_WheelBaseVehicle */ +typedef long ivim_ts_WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_WheelBaseVehicle; +asn_struct_free_f ivim_ts_WheelBaseVehicle_free; +asn_struct_print_f ivim_ts_WheelBaseVehicle_print; +asn_constr_check_f ivim_ts_WheelBaseVehicle_constraint; +per_type_decoder_f ivim_ts_WheelBaseVehicle_decode_uper; +per_type_encoder_f ivim_ts_WheelBaseVehicle_encode_uper; +per_type_decoder_f ivim_ts_WheelBaseVehicle_decode_aper; +per_type_encoder_f ivim_ts_WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_WheelBaseVehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WrongWayDrivingSubCauseCode.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WrongWayDrivingSubCauseCode.h new file mode 100644 index 000000000..07b4a69ac --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_WrongWayDrivingSubCauseCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_WrongWayDrivingSubCauseCode_H_ +#define _ivim_ts_WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_WrongWayDrivingSubCauseCode { + ivim_ts_WrongWayDrivingSubCauseCode_unavailable = 0, + ivim_ts_WrongWayDrivingSubCauseCode_wrongLane = 1, + ivim_ts_WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_ivim_ts_WrongWayDrivingSubCauseCode; + +/* ivim_ts_WrongWayDrivingSubCauseCode */ +typedef long ivim_ts_WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_WrongWayDrivingSubCauseCode; +asn_struct_free_f ivim_ts_WrongWayDrivingSubCauseCode_free; +asn_struct_print_f ivim_ts_WrongWayDrivingSubCauseCode_print; +asn_constr_check_f ivim_ts_WrongWayDrivingSubCauseCode_constraint; +per_type_decoder_f ivim_ts_WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f ivim_ts_WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f ivim_ts_WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f ivim_ts_WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRate.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRate.h new file mode 100644 index 000000000..5f1b4b7df --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRate.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_YawRate_H_ +#define _ivim_ts_YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_YawRateValue.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_YawRate */ +typedef struct ivim_ts_YawRate { + ivim_ts_YawRateValue_t yawRateValue; + ivim_ts_YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_YawRate_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRateConfidence.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRateConfidence.h new file mode 100644 index 000000000..15e7b3a5a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRateConfidence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_YawRateConfidence_H_ +#define _ivim_ts_YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_YawRateConfidence { + ivim_ts_YawRateConfidence_degSec_000_01 = 0, + ivim_ts_YawRateConfidence_degSec_000_05 = 1, + ivim_ts_YawRateConfidence_degSec_000_10 = 2, + ivim_ts_YawRateConfidence_degSec_001_00 = 3, + ivim_ts_YawRateConfidence_degSec_005_00 = 4, + ivim_ts_YawRateConfidence_degSec_010_00 = 5, + ivim_ts_YawRateConfidence_degSec_100_00 = 6, + ivim_ts_YawRateConfidence_outOfRange = 7, + ivim_ts_YawRateConfidence_unavailable = 8 +} e_ivim_ts_YawRateConfidence; + +/* ivim_ts_YawRateConfidence */ +typedef long ivim_ts_YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_ivim_ts_YawRateConfidence_specs_1; +asn_struct_free_f ivim_ts_YawRateConfidence_free; +asn_struct_print_f ivim_ts_YawRateConfidence_print; +asn_constr_check_f ivim_ts_YawRateConfidence_constraint; +per_type_decoder_f ivim_ts_YawRateConfidence_decode_uper; +per_type_encoder_f ivim_ts_YawRateConfidence_encode_uper; +per_type_decoder_f ivim_ts_YawRateConfidence_decode_aper; +per_type_encoder_f ivim_ts_YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_YawRateConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRateValue.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRateValue.h new file mode 100644 index 000000000..5385c1a2f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_YawRateValue.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_YawRateValue_H_ +#define _ivim_ts_YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_YawRateValue { + ivim_ts_YawRateValue_straight = 0, + ivim_ts_YawRateValue_degSec_000_01ToRight = -1, + ivim_ts_YawRateValue_degSec_000_01ToLeft = 1, + ivim_ts_YawRateValue_unavailable = 32767 +} e_ivim_ts_YawRateValue; + +/* ivim_ts_YawRateValue */ +typedef long ivim_ts_YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_YawRateValue; +asn_struct_free_f ivim_ts_YawRateValue_free; +asn_struct_print_f ivim_ts_YawRateValue_print; +asn_constr_check_f ivim_ts_YawRateValue_constraint; +per_type_decoder_f ivim_ts_YawRateValue_decode_uper; +per_type_encoder_f ivim_ts_YawRateValue_encode_uper; +per_type_decoder_f ivim_ts_YawRateValue_decode_aper; +per_type_encoder_f ivim_ts_YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_YawRateValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Zid.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Zid.h new file mode 100644 index 000000000..3de056c4c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Zid.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Zid_H_ +#define _ivim_ts_Zid_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_Zid */ +typedef long ivim_ts_Zid_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_Zid_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Zid; +asn_struct_free_f ivim_ts_Zid_free; +asn_struct_print_f ivim_ts_Zid_print; +asn_constr_check_f ivim_ts_Zid_constraint; +per_type_decoder_f ivim_ts_Zid_decode_uper; +per_type_encoder_f ivim_ts_Zid_encode_uper; +per_type_decoder_f ivim_ts_Zid_decode_aper; +per_type_encoder_f ivim_ts_Zid_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Zid_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Zone.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Zone.h new file mode 100644 index 000000000..b3d68d2dd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_Zone.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_Zone_H_ +#define _ivim_ts_Zone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Segment.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_PolygonalLine.h" +#include "etsi_its_ivim_ts_coding/ivim_ts_ComputedSegment.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ivim_ts_Zone_PR { + ivim_ts_Zone_PR_NOTHING, /* No components present */ + ivim_ts_Zone_PR_segment, + ivim_ts_Zone_PR_area, + ivim_ts_Zone_PR_computedSegment + /* Extensions may appear below */ + +} ivim_ts_Zone_PR; + +/* ivim_ts_Zone */ +typedef struct ivim_ts_Zone { + ivim_ts_Zone_PR present; + union ivim_ts_Zone_u { + ivim_ts_Segment_t segment; + ivim_ts_PolygonalLine_t area; + ivim_ts_ComputedSegment_t computedSegment; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_Zone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_Zone; +extern asn_CHOICE_specifics_t asn_SPC_ivim_ts_Zone_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_Zone_1[3]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_Zone_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_Zone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h new file mode 100644 index 000000000..28a0bf424 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ZoneIds_H_ +#define _ivim_ts_ZoneIds_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_ivim_ts_coding/ivim_ts_Zid.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ZoneIds */ +typedef struct ivim_ts_ZoneIds { + A_SEQUENCE_OF(ivim_ts_Zid_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ivim_ts_ZoneIds_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ZoneIds; +extern asn_SET_OF_specifics_t asn_SPC_ivim_ts_ZoneIds_specs_1; +extern asn_TYPE_member_t asn_MBR_ivim_ts_ZoneIds_1[1]; +extern asn_per_constraints_t asn_PER_type_ivim_ts_ZoneIds_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ZoneIds_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ZoneLength.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ZoneLength.h new file mode 100644 index 000000000..4c13cbda9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_ZoneLength.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _ivim_ts_ZoneLength_H_ +#define _ivim_ts_ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ivim_ts_ZoneLength */ +typedef long ivim_ts_ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ivim_ts_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ivim_ts_ZoneLength; +asn_struct_free_f ivim_ts_ZoneLength_free; +asn_struct_print_f ivim_ts_ZoneLength_print; +asn_constr_check_f ivim_ts_ZoneLength_constraint; +per_type_decoder_f ivim_ts_ZoneLength_decode_uper; +per_type_encoder_f ivim_ts_ZoneLength_encode_uper; +per_type_decoder_f ivim_ts_ZoneLength_decode_aper; +per_type_encoder_f ivim_ts_ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ZoneLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_asn_constant.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_asn_constant.h new file mode 100644 index 000000000..3ccc826aa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/ivim_ts_asn_constant.h @@ -0,0 +1,340 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ivim_ts_ASN_CONSTANT_H +#define _ivim_ts_ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_ivim_ts_TimeReference (0) +#define max_val_ivim_ts_TimeReference (60000) +#define min_val_ivim_ts_TimeMark (0) +#define max_val_ivim_ts_TimeMark (36001) +#define min_val_ivim_ts_Angle (0) +#define max_val_ivim_ts_Angle (28800) +#define min_val_ivim_ts_ApproachID (0) +#define max_val_ivim_ts_ApproachID (15) +#define min_val_ivim_ts_DDay (0) +#define max_val_ivim_ts_DDay (31) +#define min_val_ivim_ts_DeltaAngle (-150) +#define max_val_ivim_ts_DeltaAngle (150) +#define min_val_ivim_ts_DeltaTime (-122) +#define max_val_ivim_ts_DeltaTime (121) +#define min_val_ivim_ts_DHour (0) +#define max_val_ivim_ts_DHour (31) +#define min_val_ivim_ts_DMinute (0) +#define max_val_ivim_ts_DMinute (60) +#define min_val_ivim_ts_DMonth (0) +#define max_val_ivim_ts_DMonth (12) +#define min_val_ivim_ts_DOffset (-840) +#define max_val_ivim_ts_DOffset (840) +#define min_val_ivim_ts_DrivenLineOffsetLg (-32767) +#define max_val_ivim_ts_DrivenLineOffsetLg (32767) +#define min_val_ivim_ts_DrivenLineOffsetSm (-2047) +#define max_val_ivim_ts_DrivenLineOffsetSm (2047) +#define min_val_ivim_ts_DSecond (0) +#define max_val_ivim_ts_DSecond (65535) +#define min_val_ivim_ts_DSRCmsgID (0) +#define max_val_ivim_ts_DSRCmsgID (32767) +#define min_val_ivim_ts_DYear (0) +#define max_val_ivim_ts_DYear (4095) +#define min_val_ivim_ts_Elevation (-4096) +#define max_val_ivim_ts_Elevation (61439) +#define min_val_ivim_ts_FuelType (0) +#define max_val_ivim_ts_FuelType (15) +#define min_val_ivim_ts_HeadingDSRC (0) +#define max_val_ivim_ts_HeadingDSRC (28800) +#define min_val_ivim_ts_IntersectionID (0) +#define max_val_ivim_ts_IntersectionID (65535) +#define min_val_ivim_ts_LaneConnectionID (0) +#define max_val_ivim_ts_LaneConnectionID (255) +#define min_val_ivim_ts_LaneID (0) +#define max_val_ivim_ts_LaneID (255) +#define min_val_ivim_ts_LayerID (0) +#define max_val_ivim_ts_LayerID (100) +#define min_val_ivim_ts_LaneWidth (0) +#define max_val_ivim_ts_LaneWidth (32767) +#define min_val_ivim_ts_MergeDivergeNodeAngle (-180) +#define max_val_ivim_ts_MergeDivergeNodeAngle (180) +#define min_val_ivim_ts_MinuteOfTheYear (0) +#define max_val_ivim_ts_MinuteOfTheYear (527040) +#define min_val_ivim_ts_MsgCount (0) +#define max_val_ivim_ts_MsgCount (127) +#define min_val_ivim_ts_Offset_B09 (-256) +#define max_val_ivim_ts_Offset_B09 (255) +#define min_val_ivim_ts_Offset_B10 (-512) +#define max_val_ivim_ts_Offset_B10 (511) +#define min_val_ivim_ts_Offset_B11 (-1024) +#define max_val_ivim_ts_Offset_B11 (1023) +#define min_val_ivim_ts_Offset_B12 (-2048) +#define max_val_ivim_ts_Offset_B12 (2047) +#define min_val_ivim_ts_Offset_B13 (-4096) +#define max_val_ivim_ts_Offset_B13 (4095) +#define min_val_ivim_ts_Offset_B14 (-8192) +#define max_val_ivim_ts_Offset_B14 (8191) +#define min_val_ivim_ts_Offset_B16 (-32768) +#define max_val_ivim_ts_Offset_B16 (32767) +#define min_val_ivim_ts_RegionId (0) +#define max_val_ivim_ts_RegionId (255) +#define min_val_ivim_ts_RequestID (0) +#define max_val_ivim_ts_RequestID (255) +#define min_val_ivim_ts_RestrictionClassID (0) +#define max_val_ivim_ts_RestrictionClassID (255) +#define min_val_ivim_ts_RoadRegulatorID (0) +#define max_val_ivim_ts_RoadRegulatorID (65535) +#define min_val_ivim_ts_RoadSegmentID (0) +#define max_val_ivim_ts_RoadSegmentID (65535) +#define min_val_ivim_ts_RoadwayCrownAngle (-128) +#define max_val_ivim_ts_RoadwayCrownAngle (127) +#define min_val_ivim_ts_Scale_B12 (-2048) +#define max_val_ivim_ts_Scale_B12 (2047) +#define min_val_ivim_ts_SignalGroupID (0) +#define max_val_ivim_ts_SignalGroupID (255) +#define min_val_ivim_ts_SemiMajorAxisAccuracy (0) +#define max_val_ivim_ts_SemiMajorAxisAccuracy (255) +#define min_val_ivim_ts_SemiMajorAxisOrientation (0) +#define max_val_ivim_ts_SemiMajorAxisOrientation (65535) +#define min_val_ivim_ts_SemiMinorAxisAccuracy (0) +#define max_val_ivim_ts_SemiMinorAxisAccuracy (255) +#define min_val_ivim_ts_SpeedAdvice (0) +#define max_val_ivim_ts_SpeedAdvice (500) +#define min_val_ivim_ts_TimeIntervalConfidence (0) +#define max_val_ivim_ts_TimeIntervalConfidence (15) +#define min_val_ivim_ts_VehicleHeight (0) +#define max_val_ivim_ts_VehicleHeight (127) +#define min_val_ivim_ts_Velocity (0) +#define max_val_ivim_ts_Velocity (8191) +#define min_val_ivim_ts_ZoneLength (0) +#define max_val_ivim_ts_ZoneLength (10000) +#define min_val_ivim_ts_IssuerIdentifier (0) +#define max_val_ivim_ts_IssuerIdentifier (16383) +#define min_val_ivim_ts_ManufacturerIdentifier (0) +#define max_val_ivim_ts_ManufacturerIdentifier (65535) +#define min_val_ivim_ts_AlphabetIndicator (0) +#define max_val_ivim_ts_AlphabetIndicator (63) +#define ivim_ts_AVIAEINumberingAndDataStructures_version (1) +#define min_val_ivim_ts_InternationalSign_directionalFlowOfLane (1) +#define max_val_ivim_ts_InternationalSign_directionalFlowOfLane (8) +#define min_val_ivim_ts_InternationalSign_rateOfIncline (1) +#define max_val_ivim_ts_InternationalSign_rateOfIncline (32) +#define min_val_ivim_ts_InternationalSign_numberOfLane (0) +#define max_val_ivim_ts_InternationalSign_numberOfLane (99) +#define min_val_ivim_ts_Code_Units (0) +#define max_val_ivim_ts_Code_Units (15) +#define min_val_ivim_ts_ChannelId (0) +#define max_val_ivim_ts_ChannelId (255) +#define min_val_ivim_ts_SetMMIRq (0) +#define max_val_ivim_ts_SetMMIRq (255) +#define min_val_ivim_ts_DescriptiveCharacteristics (0) +#define max_val_ivim_ts_DescriptiveCharacteristics (255) +#define min_val_ivim_ts_EngineCharacteristics (0) +#define max_val_ivim_ts_EngineCharacteristics (255) +#define min_val_ivim_ts_FutureCharacteristics (0) +#define max_val_ivim_ts_FutureCharacteristics (255) +#define min_val_ivim_ts_Int1 (0) +#define max_val_ivim_ts_Int1 (255) +#define min_val_ivim_ts_Int2 (0) +#define max_val_ivim_ts_Int2 (65535) +#define min_val_ivim_ts_Int3 (0) +#define max_val_ivim_ts_Int3 (16777215) +#define min_val_ivim_ts_Int4 (0) +#define max_val_ivim_ts_Int4 (4294967295) +#define min_val_ivim_ts_ResultOp (0) +#define max_val_ivim_ts_ResultOp (255) +#define min_val_ivim_ts_TrailerAxles (0) +#define max_val_ivim_ts_TrailerAxles (7) +#define min_val_ivim_ts_TractorAxles (0) +#define max_val_ivim_ts_TractorAxles (7) +#define min_val_ivim_ts_BankingAngle (-20) +#define max_val_ivim_ts_BankingAngle (21) +#define min_val_ivim_ts_ComparisonOperator (0) +#define max_val_ivim_ts_ComparisonOperator (3) +#define min_val_ivim_ts_Depth (0) +#define max_val_ivim_ts_Depth (255) +#define min_val_ivim_ts_Direction (0) +#define max_val_ivim_ts_Direction (3) +#define min_val_ivim_ts_IVI_DriverCharacteristics (0) +#define max_val_ivim_ts_IVI_DriverCharacteristics (3) +#define min_val_ivim_ts_FrictionCoefficient (0) +#define max_val_ivim_ts_FrictionCoefficient (101) +#define min_val_ivim_ts_GapBetweenVehicles (0) +#define max_val_ivim_ts_GapBetweenVehicles (255) +#define min_val_ivim_ts_IviLaneWidth (0) +#define max_val_ivim_ts_IviLaneWidth (1023) +#define min_val_ivim_ts_IviPurpose (0) +#define max_val_ivim_ts_IviPurpose (3) +#define min_val_ivim_ts_IviStatus (0) +#define max_val_ivim_ts_IviStatus (7) +#define min_val_ivim_ts_IviType (0) +#define max_val_ivim_ts_IviType (7) +#define min_val_ivim_ts_LaneType (0) +#define max_val_ivim_ts_LaneType (31) +#define min_val_ivim_ts_MaxLenghtOfPlatoon (1) +#define max_val_ivim_ts_MaxLenghtOfPlatoon (64) +#define min_val_ivim_ts_MaxNoOfVehicles (2) +#define max_val_ivim_ts_MaxNoOfVehicles (64) +#define min_val_ivim_ts_PriorityLevel (0) +#define max_val_ivim_ts_PriorityLevel (2) +#define min_val_ivim_ts_RSCUnit (0) +#define max_val_ivim_ts_RSCUnit (15) +#define min_val_ivim_ts_SaeAutomationLevel (0) +#define max_val_ivim_ts_SaeAutomationLevel (5) +#define min_val_ivim_ts_IVI_Temperature (-100) +#define max_val_ivim_ts_IVI_Temperature (151) +#define min_val_ivim_ts_TreatmentType (0) +#define max_val_ivim_ts_TreatmentType (7) +#define min_val_ivim_ts_VcClass (0) +#define max_val_ivim_ts_VcClass (7) +#define min_val_ivim_ts_VcOption (0) +#define max_val_ivim_ts_VcOption (7) +#define min_val_ivim_ts_Iso3833VehicleType (0) +#define max_val_ivim_ts_Iso3833VehicleType (255) +#define min_val_ivim_ts_StationID (0) +#define max_val_ivim_ts_StationID (4294967295) +#define min_val_ivim_ts_Longitude (-1800000000) +#define max_val_ivim_ts_Longitude (1800000001) +#define min_val_ivim_ts_Latitude (-900000000) +#define max_val_ivim_ts_Latitude (900000001) +#define min_val_ivim_ts_AltitudeValue (-100000) +#define max_val_ivim_ts_AltitudeValue (800001) +#define min_val_ivim_ts_DeltaLongitude (-131071) +#define max_val_ivim_ts_DeltaLongitude (131072) +#define min_val_ivim_ts_DeltaLatitude (-131071) +#define max_val_ivim_ts_DeltaLatitude (131072) +#define min_val_ivim_ts_DeltaAltitude (-12700) +#define max_val_ivim_ts_DeltaAltitude (12800) +#define min_val_ivim_ts_PtActivationType (0) +#define max_val_ivim_ts_PtActivationType (255) +#define min_val_ivim_ts_SemiAxisLength (0) +#define max_val_ivim_ts_SemiAxisLength (4095) +#define min_val_ivim_ts_CauseCodeType (0) +#define max_val_ivim_ts_CauseCodeType (255) +#define min_val_ivim_ts_SubCauseCodeType (0) +#define max_val_ivim_ts_SubCauseCodeType (255) +#define min_val_ivim_ts_TrafficConditionSubCauseCode (0) +#define max_val_ivim_ts_TrafficConditionSubCauseCode (255) +#define min_val_ivim_ts_AccidentSubCauseCode (0) +#define max_val_ivim_ts_AccidentSubCauseCode (255) +#define min_val_ivim_ts_RoadworksSubCauseCode (0) +#define max_val_ivim_ts_RoadworksSubCauseCode (255) +#define min_val_ivim_ts_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_ivim_ts_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_ivim_ts_WrongWayDrivingSubCauseCode (0) +#define max_val_ivim_ts_WrongWayDrivingSubCauseCode (255) +#define min_val_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_ivim_ts_SlowVehicleSubCauseCode (0) +#define max_val_ivim_ts_SlowVehicleSubCauseCode (255) +#define min_val_ivim_ts_StationaryVehicleSubCauseCode (0) +#define max_val_ivim_ts_StationaryVehicleSubCauseCode (255) +#define min_val_ivim_ts_HumanProblemSubCauseCode (0) +#define max_val_ivim_ts_HumanProblemSubCauseCode (255) +#define min_val_ivim_ts_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_ivim_ts_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_ivim_ts_CollisionRiskSubCauseCode (0) +#define max_val_ivim_ts_CollisionRiskSubCauseCode (255) +#define min_val_ivim_ts_SignalViolationSubCauseCode (0) +#define max_val_ivim_ts_SignalViolationSubCauseCode (255) +#define min_val_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_ivim_ts_DangerousEndOfQueueSubCauseCode (0) +#define max_val_ivim_ts_DangerousEndOfQueueSubCauseCode (255) +#define min_val_ivim_ts_DangerousSituationSubCauseCode (0) +#define max_val_ivim_ts_DangerousSituationSubCauseCode (255) +#define min_val_ivim_ts_VehicleBreakdownSubCauseCode (0) +#define max_val_ivim_ts_VehicleBreakdownSubCauseCode (255) +#define min_val_ivim_ts_PostCrashSubCauseCode (0) +#define max_val_ivim_ts_PostCrashSubCauseCode (255) +#define min_val_ivim_ts_CurvatureValue (-1023) +#define max_val_ivim_ts_CurvatureValue (1023) +#define min_val_ivim_ts_HeadingValue (0) +#define max_val_ivim_ts_HeadingValue (3601) +#define min_val_ivim_ts_HeadingConfidence (1) +#define max_val_ivim_ts_HeadingConfidence (127) +#define min_val_ivim_ts_LanePosition (-1) +#define max_val_ivim_ts_LanePosition (14) +#define min_val_ivim_ts_PerformanceClass (0) +#define max_val_ivim_ts_PerformanceClass (7) +#define min_val_ivim_ts_SpeedValue (0) +#define max_val_ivim_ts_SpeedValue (16383) +#define min_val_ivim_ts_SpeedConfidence (1) +#define max_val_ivim_ts_SpeedConfidence (127) +#define min_val_ivim_ts_VehicleMass (1) +#define max_val_ivim_ts_VehicleMass (1024) +#define min_val_ivim_ts_LongitudinalAccelerationValue (-160) +#define max_val_ivim_ts_LongitudinalAccelerationValue (161) +#define min_val_ivim_ts_AccelerationConfidence (0) +#define max_val_ivim_ts_AccelerationConfidence (102) +#define min_val_ivim_ts_LateralAccelerationValue (-160) +#define max_val_ivim_ts_LateralAccelerationValue (161) +#define min_val_ivim_ts_VerticalAccelerationValue (-160) +#define max_val_ivim_ts_VerticalAccelerationValue (161) +#define min_val_ivim_ts_ITS_Container_StationType (0) +#define max_val_ivim_ts_ITS_Container_StationType (255) +#define min_val_ivim_ts_HeightLonCarr (1) +#define max_val_ivim_ts_HeightLonCarr (100) +#define min_val_ivim_ts_PosLonCarr (1) +#define max_val_ivim_ts_PosLonCarr (127) +#define min_val_ivim_ts_PosPillar (1) +#define max_val_ivim_ts_PosPillar (30) +#define min_val_ivim_ts_PosCentMass (1) +#define max_val_ivim_ts_PosCentMass (63) +#define min_val_ivim_ts_SpeedLimit (1) +#define max_val_ivim_ts_SpeedLimit (255) +#define min_val_ivim_ts_ITS_Container_Temperature (-60) +#define max_val_ivim_ts_ITS_Container_Temperature (67) +#define min_val_ivim_ts_WheelBaseVehicle (1) +#define max_val_ivim_ts_WheelBaseVehicle (127) +#define min_val_ivim_ts_TurningRadius (1) +#define max_val_ivim_ts_TurningRadius (255) +#define min_val_ivim_ts_PosFrontAx (1) +#define max_val_ivim_ts_PosFrontAx (20) +#define min_val_ivim_ts_VehicleLengthValue (1) +#define max_val_ivim_ts_VehicleLengthValue (1023) +#define min_val_ivim_ts_VehicleWidth (1) +#define max_val_ivim_ts_VehicleWidth (62) +#define min_val_ivim_ts_InformationQuality (0) +#define max_val_ivim_ts_InformationQuality (7) +#define min_val_ivim_ts_SteeringWheelAngleValue (-511) +#define max_val_ivim_ts_SteeringWheelAngleValue (512) +#define min_val_ivim_ts_SteeringWheelAngleConfidence (1) +#define max_val_ivim_ts_SteeringWheelAngleConfidence (127) +#define min_val_ivim_ts_TimestampIts (0) +#define max_val_ivim_ts_TimestampIts (4398046511103) +#define min_val_ivim_ts_YawRateValue (-32766) +#define max_val_ivim_ts_YawRateValue (32767) +#define min_val_ivim_ts_TransmissionInterval (1) +#define max_val_ivim_ts_TransmissionInterval (10000) +#define min_val_ivim_ts_ValidityDuration (0) +#define max_val_ivim_ts_ValidityDuration (86400) +#define min_val_ivim_ts_NumberOfOccupants (0) +#define max_val_ivim_ts_NumberOfOccupants (127) +#define min_val_ivim_ts_SequenceNumber (0) +#define max_val_ivim_ts_SequenceNumber (65535) +#define min_val_ivim_ts_ProtectedZoneID (0) +#define max_val_ivim_ts_ProtectedZoneID (134217727) +#define ivim_ts_CITSapplMgmtIDs_version (1) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ivim_ts_ASN_CONSTANT_H */ diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/per_decoder.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/per_decoder.h new file mode 100644 index 000000000..2960e35e2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/per_encoder.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/per_encoder.h new file mode 100644 index 000000000..844153641 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/per_opentype.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/per_opentype.h new file mode 100644 index 000000000..e72548299 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/per_support.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/per_support.h new file mode 100644 index 000000000..d42b54c22 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/uper_decoder.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/uper_decoder.h new file mode 100644 index 000000000..e41049b49 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/uper_encoder.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/uper_encoder.h new file mode 100644 index 000000000..afe3e28e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/uper_opentype.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/uper_opentype.h new file mode 100644 index 000000000..e9765f1e1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/include/etsi_its_ivim_ts_coding/uper_support.h b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_ts_coding/uper_support.h new file mode 100644 index 000000000..7f26d09ad --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/include/etsi_its_ivim_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_ivim_ts_coding/package.xml b/etsi_its_coding/etsi_its_ivim_ts_coding/package.xml new file mode 100644 index 000000000..438927904 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/package.xml @@ -0,0 +1,28 @@ + + + + etsi_its_ivim_ts_coding + 2.1.0 + C++ compatible C source code for ETSI ITS IVIMs 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_ivim_ts_coding/src/ANY.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ANY.c new file mode 100644 index 000000000..eaf7ae51e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ANY_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ANY_aper.c new file mode 100644 index 000000000..569996682 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ANY_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ANY_uper.c new file mode 100644 index 000000000..20460a35b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BIT_STRING.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BIT_STRING.c new file mode 100644 index 000000000..a0bcc72c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BIT_STRING_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BIT_STRING_print.c new file mode 100644 index 000000000..89e325364 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BIT_STRING_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BIT_STRING_rfill.c new file mode 100644 index 000000000..94bba41e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BIT_STRING_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BIT_STRING_uper.c new file mode 100644 index 000000000..3ee5640c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BOOLEAN.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BOOLEAN.c new file mode 100644 index 000000000..b2b5e082d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BOOLEAN_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BOOLEAN_aper.c new file mode 100644 index 000000000..8cd05bcc4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BOOLEAN_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BOOLEAN_print.c new file mode 100644 index 000000000..b3c0a3fec --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BOOLEAN_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BOOLEAN_rfill.c new file mode 100644 index 000000000..1ca0b7fcc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/BOOLEAN_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/BOOLEAN_uper.c new file mode 100644 index 000000000..ee6dce452 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ENUMERATED.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ENUMERATED.c new file mode 100644 index 000000000..6eaf05384 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ENUMERATED_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ENUMERATED_aper.c new file mode 100644 index 000000000..cd24a615b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ENUMERATED_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ENUMERATED_uper.c new file mode 100644 index 000000000..25ca1f1a1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/GraphicString.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/GraphicString.c new file mode 100644 index 000000000..541ffa46e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/IA5String.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/IA5String.c new file mode 100644 index 000000000..a00d8e73d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/INTEGER.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/INTEGER.c new file mode 100644 index 000000000..2da4ed80d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/INTEGER_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/INTEGER_aper.c new file mode 100644 index 000000000..9c9660f9b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/INTEGER_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/INTEGER_print.c new file mode 100644 index 000000000..5ea6ec870 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/INTEGER_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/INTEGER_rfill.c new file mode 100644 index 000000000..16519b0c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/INTEGER_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/INTEGER_uper.c new file mode 100644 index 000000000..689f16130 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NULL.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NULL.c new file mode 100644 index 000000000..dc4ae8ccd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NULL_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NULL_aper.c new file mode 100644 index 000000000..7172c3876 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NULL_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NULL_print.c new file mode 100644 index 000000000..66c13fe00 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NULL_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NULL_rfill.c new file mode 100644 index 000000000..aa63eb4dd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NULL_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NULL_uper.c new file mode 100644 index 000000000..4307e8e4e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NativeEnumerated.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NativeEnumerated.c new file mode 100644 index 000000000..a707cb1e4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NativeEnumerated_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NativeEnumerated_aper.c new file mode 100644 index 000000000..4558e449f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NativeEnumerated_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NativeEnumerated_uper.c new file mode 100644 index 000000000..6bd08eb75 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NativeInteger.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NativeInteger.c new file mode 100644 index 000000000..38ebe061b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NativeInteger_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NativeInteger_aper.c new file mode 100644 index 000000000..c15738a21 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NativeInteger_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NativeInteger_print.c new file mode 100644 index 000000000..d0776da9c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NativeInteger_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NativeInteger_rfill.c new file mode 100644 index 000000000..7a47c68d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NativeInteger_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NativeInteger_uper.c new file mode 100644 index 000000000..7d941fa92 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/NumericString.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/NumericString.c new file mode 100644 index 000000000..b14008638 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OBJECT_IDENTIFIER.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OBJECT_IDENTIFIER.c new file mode 100644 index 000000000..f141e86b7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OBJECT_IDENTIFIER_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OBJECT_IDENTIFIER_print.c new file mode 100644 index 000000000..127520a9f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OBJECT_IDENTIFIER_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OBJECT_IDENTIFIER_rfill.c new file mode 100644 index 000000000..5b592288f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OCTET_STRING.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OCTET_STRING.c new file mode 100644 index 000000000..824f72a69 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OCTET_STRING_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OCTET_STRING_aper.c new file mode 100644 index 000000000..907f290b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OCTET_STRING_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OCTET_STRING_print.c new file mode 100644 index 000000000..a5a029098 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OCTET_STRING_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OCTET_STRING_rfill.c new file mode 100644 index 000000000..c4cf853cc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OCTET_STRING_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OCTET_STRING_uper.c new file mode 100644 index 000000000..7b0e3122f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OPEN_TYPE.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OPEN_TYPE.c new file mode 100644 index 000000000..facb41125 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OPEN_TYPE_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OPEN_TYPE_aper.c new file mode 100644 index 000000000..34bfb2f8f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/OPEN_TYPE_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/OPEN_TYPE_uper.c new file mode 100644 index 000000000..d5491c4ca --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ObjectDescriptor.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ObjectDescriptor.c new file mode 100644 index 000000000..3bff4d63b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/UTF8String.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/UTF8String.c new file mode 100644 index 000000000..7676802b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/UTF8String_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/UTF8String_print.c new file mode 100644 index 000000000..2e95eff11 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/UTF8String_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/UTF8String_rfill.c new file mode 100644 index 000000000..668fffe60 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/VisibleString.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/VisibleString.c new file mode 100644 index 000000000..20535f5b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/VisibleString.c @@ -0,0 +1,141 @@ +/*- + * Copyright (c) 2003, 2006 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * VisibleString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_VisibleString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] 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_VisibleString_constraints = { + { APC_CONSTRAINED, 7, 7, 0x20, 0x7e }, /* 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_VisibleString = { + 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_VisibleString = { + "VisibleString", + "VisibleString", + &asn_OP_VisibleString, + asn_DEF_VisibleString_tags, + sizeof(asn_DEF_VisibleString_tags) + / sizeof(asn_DEF_VisibleString_tags[0]) - 1, + asn_DEF_VisibleString_tags, + sizeof(asn_DEF_VisibleString_tags) + / sizeof(asn_DEF_VisibleString_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_VisibleString_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) */ + VisibleString_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +VisibleString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const VisibleString_t *st = (const VisibleString_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + + /* + * Check the alphabet of the VisibleString. + * ISO646, ISOReg#6 + * The alphabet is a subset of ASCII between the space + * and "~" (tilde). + */ + for(; buf < end; buf++) { + if(*buf < 0x20 || *buf > 0x7e) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld (%d) " + "not in VisibleString 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_ivim_ts_coding/src/aper_decoder.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/aper_decoder.c new file mode 100644 index 000000000..648434eee --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/aper_encoder.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/aper_encoder.c new file mode 100644 index 000000000..41fbd25a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/aper_opentype.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/aper_opentype.c new file mode 100644 index 000000000..e266b9396 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/aper_support.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/aper_support.c new file mode 100644 index 000000000..83bd49d10 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/asn_SEQUENCE_OF.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/asn_SEQUENCE_OF.c new file mode 100644 index 000000000..a6956cdce --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/asn_SET_OF.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/asn_SET_OF.c new file mode 100644 index 000000000..882b92253 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/asn_application.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/asn_application.c new file mode 100644 index 000000000..03e0783b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/asn_bit_data.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/asn_bit_data.c new file mode 100644 index 000000000..ea578d06d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/asn_codecs_prim.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/asn_codecs_prim.c new file mode 100644 index 000000000..f77af2436 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/asn_internal.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/asn_internal.c new file mode 100644 index 000000000..461349f2e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/asn_random_fill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/asn_random_fill.c new file mode 100644 index 000000000..e3ce93bce --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ber_tlv_length.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ber_tlv_length.c new file mode 100644 index 000000000..d695beb09 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ber_tlv_tag.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ber_tlv_tag.c new file mode 100644 index 000000000..abd03f600 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_CHOICE.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_CHOICE.c new file mode 100644 index 000000000..a77384ba6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_CHOICE_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_CHOICE_aper.c new file mode 100644 index 000000000..a708537bd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_CHOICE_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_CHOICE_print.c new file mode 100644 index 000000000..86c495d5e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_CHOICE_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_CHOICE_rfill.c new file mode 100644 index 000000000..d16394f1e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_CHOICE_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_CHOICE_uper.c new file mode 100644 index 000000000..2fd307072 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SEQUENCE.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SEQUENCE.c new file mode 100644 index 000000000..05d5182df --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SEQUENCE_OF.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SEQUENCE_OF.c new file mode 100644 index 000000000..2147ec1f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SEQUENCE_OF_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SEQUENCE_OF_aper.c new file mode 100644 index 000000000..7cb8ee970 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SEQUENCE_OF_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SEQUENCE_OF_uper.c new file mode 100644 index 000000000..3abaa9aa9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SEQUENCE_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SEQUENCE_aper.c new file mode 100644 index 000000000..1f3b50389 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SEQUENCE_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SEQUENCE_print.c new file mode 100644 index 000000000..f7f903f69 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SEQUENCE_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SEQUENCE_rfill.c new file mode 100644 index 000000000..cd89cd27b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SEQUENCE_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SEQUENCE_uper.c new file mode 100644 index 000000000..7a0cfc89a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SET_OF.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SET_OF.c new file mode 100644 index 000000000..4286553a1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SET_OF_aper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SET_OF_aper.c new file mode 100644 index 000000000..41c87bc74 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SET_OF_print.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SET_OF_print.c new file mode 100644 index 000000000..8f127a41d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SET_OF_rfill.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SET_OF_rfill.c new file mode 100644 index 000000000..470ac5b2d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_SET_OF_uper.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_SET_OF_uper.c new file mode 100644 index 000000000..c4e822eab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constr_TYPE.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constr_TYPE.c new file mode 100644 index 000000000..1b42b8fb7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/constraints.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/constraints.c new file mode 100644 index 000000000..e6bf7b1ed --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/ivim_ts_AbsolutePosition.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePosition.c new file mode 100644 index 000000000..939e80f02 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePosition.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AbsolutePosition.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_AbsolutePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AbsolutePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_AbsolutePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AbsolutePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AbsolutePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AbsolutePosition_specs_1 = { + sizeof(struct ivim_ts_AbsolutePosition), + offsetof(struct ivim_ts_AbsolutePosition, _asn_ctx), + asn_MAP_ivim_ts_AbsolutePosition_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AbsolutePosition = { + "AbsolutePosition", + "AbsolutePosition", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AbsolutePosition_tags_1, + sizeof(asn_DEF_ivim_ts_AbsolutePosition_tags_1) + /sizeof(asn_DEF_ivim_ts_AbsolutePosition_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AbsolutePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AbsolutePosition_tags_1) + /sizeof(asn_DEF_ivim_ts_AbsolutePosition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ivim_ts_AbsolutePosition_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_AbsolutePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositionWAltitude.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositionWAltitude.c new file mode 100644 index 000000000..465b8c5bc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositionWAltitude.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionWAltitude.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_AbsolutePositionWAltitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AbsolutePositionWAltitude, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_AbsolutePositionWAltitude, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_AbsolutePositionWAltitude, altitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_AbsolutePositionWAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AbsolutePositionWAltitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* longitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AbsolutePositionWAltitude_specs_1 = { + sizeof(struct ivim_ts_AbsolutePositionWAltitude), + offsetof(struct ivim_ts_AbsolutePositionWAltitude, _asn_ctx), + asn_MAP_ivim_ts_AbsolutePositionWAltitude_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AbsolutePositionWAltitude = { + "AbsolutePositionWAltitude", + "AbsolutePositionWAltitude", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AbsolutePositionWAltitude_tags_1, + sizeof(asn_DEF_ivim_ts_AbsolutePositionWAltitude_tags_1) + /sizeof(asn_DEF_ivim_ts_AbsolutePositionWAltitude_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AbsolutePositionWAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AbsolutePositionWAltitude_tags_1) + /sizeof(asn_DEF_ivim_ts_AbsolutePositionWAltitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ivim_ts_AbsolutePositionWAltitude_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_AbsolutePositionWAltitude_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositions.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositions.c new file mode 100644 index 000000000..7b8ac6999 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositions.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositions.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AbsolutePositions_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_AbsolutePositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_AbsolutePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AbsolutePositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_AbsolutePositions_specs_1 = { + sizeof(struct ivim_ts_AbsolutePositions), + offsetof(struct ivim_ts_AbsolutePositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AbsolutePositions = { + "AbsolutePositions", + "AbsolutePositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_AbsolutePositions_tags_1, + sizeof(asn_DEF_ivim_ts_AbsolutePositions_tags_1) + /sizeof(asn_DEF_ivim_ts_AbsolutePositions_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AbsolutePositions_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AbsolutePositions_tags_1) + /sizeof(asn_DEF_ivim_ts_AbsolutePositions_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AbsolutePositions_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_AbsolutePositions_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_AbsolutePositions_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositionsWAltitude.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositionsWAltitude.c new file mode 100644 index 000000000..adfdd6ad8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AbsolutePositionsWAltitude.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AbsolutePositionsWAltitude.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AbsolutePositionsWAltitude_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_AbsolutePositionsWAltitude_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_AbsolutePositionWAltitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AbsolutePositionsWAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_AbsolutePositionsWAltitude_specs_1 = { + sizeof(struct ivim_ts_AbsolutePositionsWAltitude), + offsetof(struct ivim_ts_AbsolutePositionsWAltitude, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AbsolutePositionsWAltitude = { + "AbsolutePositionsWAltitude", + "AbsolutePositionsWAltitude", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_AbsolutePositionsWAltitude_tags_1, + sizeof(asn_DEF_ivim_ts_AbsolutePositionsWAltitude_tags_1) + /sizeof(asn_DEF_ivim_ts_AbsolutePositionsWAltitude_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AbsolutePositionsWAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AbsolutePositionsWAltitude_tags_1) + /sizeof(asn_DEF_ivim_ts_AbsolutePositionsWAltitude_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AbsolutePositionsWAltitude_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_AbsolutePositionsWAltitude_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_AbsolutePositionsWAltitude_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccelerationConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccelerationConfidence.c new file mode 100644 index 000000000..7dd940295 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccelerationConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AccelerationConfidence.h" + +int +ivim_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_ivim_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_ivim_ts_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_AccelerationConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_AccelerationConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccelerationControl.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccelerationControl.c new file mode 100644 index 000000000..840c2135f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccelerationControl.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AccelerationControl.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_AccelerationControl_tags_1, + sizeof(asn_DEF_ivim_ts_AccelerationControl_tags_1) + /sizeof(asn_DEF_ivim_ts_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AccelerationControl_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_AccelerationControl_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccidentSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccidentSubCauseCode.c new file mode 100644 index 000000000..0e0187bc4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AccidentSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AccidentSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_AccidentSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ActionID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ActionID.c new file mode 100644 index 000000000..bd0a83bb9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ActionID.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ActionID.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_ActionID_specs_1 = { + sizeof(struct ivim_ts_ActionID), + offsetof(struct ivim_ts_ActionID, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ActionID_tags_1, + sizeof(asn_DEF_ivim_ts_ActionID_tags_1) + /sizeof(asn_DEF_ivim_ts_ActionID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ActionID_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_ActionID_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ActualNumberOfPassengers.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ActualNumberOfPassengers.c new file mode 100644 index 000000000..d88690e99 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ActualNumberOfPassengers.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ActualNumberOfPassengers.h" + +int +ivim_ts_ActualNumberOfPassengers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using ivim_ts_Int1, + * 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_ivim_ts_ActualNumberOfPassengers_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ActualNumberOfPassengers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ActualNumberOfPassengers = { + "ActualNumberOfPassengers", + "ActualNumberOfPassengers", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ActualNumberOfPassengers_tags_1, + sizeof(asn_DEF_ivim_ts_ActualNumberOfPassengers_tags_1) + /sizeof(asn_DEF_ivim_ts_ActualNumberOfPassengers_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ActualNumberOfPassengers_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ActualNumberOfPassengers_tags_1) + /sizeof(asn_DEF_ivim_ts_ActualNumberOfPassengers_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ActualNumberOfPassengers_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ActualNumberOfPassengers_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AddRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AddRq.c new file mode 100644 index 000000000..b56c18c5c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AddRq.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AddRq.h" + +static int +memb_ivim_ts_attributeId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_attributeId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_AddRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AddRq, attributeId), + (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_ivim_ts_attributeId_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_attributeId_constraint_1 + }, + 0, 0, /* No default value */ + "attributeId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AddRq, value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AddRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AddRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* attributeId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* value */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AddRq_specs_1 = { + sizeof(struct ivim_ts_AddRq), + offsetof(struct ivim_ts_AddRq, _asn_ctx), + asn_MAP_ivim_ts_AddRq_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AddRq = { + "AddRq", + "AddRq", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AddRq_tags_1, + sizeof(asn_DEF_ivim_ts_AddRq_tags_1) + /sizeof(asn_DEF_ivim_ts_AddRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AddRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AddRq_tags_1) + /sizeof(asn_DEF_ivim_ts_AddRq_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ivim_ts_AddRq_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_AddRq_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 000000000..6d589ac8f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 000000000..2b61de9f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 000000000..6de375986 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 000000000..bf92b6d62 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeed.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeed.c new file mode 100644 index 000000000..dedde5e0d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeed.c @@ -0,0 +1,278 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeed.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_AdvisorySpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_7 = { + sizeof(struct ivim_ts_AdvisorySpeed__regional), + offsetof(struct ivim_ts_AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_7, + sizeof(asn_DEF_ivim_ts_regional_tags_7) + /sizeof(asn_DEF_ivim_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_7) + /sizeof(asn_DEF_ivim_ts_regional_tags_7[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_ivim_ts_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_7, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AdvisorySpeedType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SpeedAdvice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SpeedConfidenceDSRC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distance" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RestrictionClassID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "class" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ivim_ts_regional_7, + 0, + { +#if !defined(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_ivim_ts_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AdvisorySpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* class */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AdvisorySpeed_specs_1 = { + sizeof(struct ivim_ts_AdvisorySpeed), + offsetof(struct ivim_ts_AdvisorySpeed, _asn_ctx), + asn_MAP_ivim_ts_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AdvisorySpeed_tags_1, + sizeof(asn_DEF_ivim_ts_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_ivim_ts_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_ivim_ts_AdvisorySpeed_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ivim_ts_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeedList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeedList.c new file mode 100644 index 000000000..ec267c93d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeedList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AdvisorySpeedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_AdvisorySpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_AdvisorySpeedList_specs_1 = { + sizeof(struct ivim_ts_AdvisorySpeedList), + offsetof(struct ivim_ts_AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_ivim_ts_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_ivim_ts_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_ivim_ts_AdvisorySpeedList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AdvisorySpeedList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeedType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeedType.c new file mode 100644 index 000000000..8c41feaeb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AdvisorySpeedType.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AdvisorySpeedType.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_ivim_ts_AdvisorySpeedType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 3 } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const asn_INTEGER_enum_map_t asn_MAP_ivim_ts_AdvisorySpeedType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 9, "greenwave" }, + { 2, 8, "ecoDrive" }, + { 3, 7, "transit" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_AdvisorySpeedType_enum2value_1[] = { + 2, /* ecoDrive(2) */ + 1, /* greenwave(1) */ + 0, /* none(0) */ + 3 /* transit(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_AdvisorySpeedType_specs_1 = { + asn_MAP_ivim_ts_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_AdvisorySpeedType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_ivim_ts_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_ivim_ts_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_ivim_ts_AdvisorySpeedType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AdvisorySpeedType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ivim_ts_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AllowedManeuvers.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AllowedManeuvers.c new file mode 100644 index 000000000..44e28ca74 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AllowedManeuvers.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AllowedManeuvers.h" + +int +ivim_ts_AllowedManeuvers_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 12UL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AllowedManeuvers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_AllowedManeuvers_tags_1, + sizeof(asn_DEF_ivim_ts_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_ivim_ts_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_ivim_ts_AllowedManeuvers_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AllowedManeuvers_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_AllowedManeuvers_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AlphabetIndicator.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AlphabetIndicator.c new file mode 100644 index 000000000..223630dfc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AlphabetIndicator.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AlphabetIndicator.h" + +int +ivim_ts_AlphabetIndicator_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 63L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AlphabetIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_AlphabetIndicator_tags_1, + sizeof(asn_DEF_ivim_ts_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_ivim_ts_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_ivim_ts_AlphabetIndicator_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AlphabetIndicator_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_AlphabetIndicator_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Altitude.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Altitude.c new file mode 100644 index 000000000..b0f7c821f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Altitude.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Altitude.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_Altitude_specs_1 = { + sizeof(struct ivim_ts_Altitude), + offsetof(struct ivim_ts_Altitude, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Altitude_tags_1, + sizeof(asn_DEF_ivim_ts_Altitude_tags_1) + /sizeof(asn_DEF_ivim_ts_Altitude_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Altitude_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_Altitude_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AltitudeConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AltitudeConfidence.c new file mode 100644 index 000000000..8a300e38c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AltitudeConfidence.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_AltitudeConfidence_specs_1 = { + asn_MAP_ivim_ts_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_AltitudeConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AltitudeValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AltitudeValue.c new file mode 100644 index 000000000..4bc8a4947 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AltitudeValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AltitudeValue.h" + +int +ivim_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_ivim_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_ivim_ts_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_AltitudeValue_tags_1, + sizeof(asn_DEF_ivim_ts_AltitudeValue_tags_1) + /sizeof(asn_DEF_ivim_ts_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AltitudeValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_AltitudeValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Angle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Angle.c new file mode 100644 index 000000000..31870a01c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Angle.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Angle.h" + +int +ivim_ts_Angle_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 28800L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_Angle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Angle_tags_1, + sizeof(asn_DEF_ivim_ts_Angle_tags_1) + /sizeof(asn_DEF_ivim_ts_Angle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Angle_tags_1) + /sizeof(asn_DEF_ivim_ts_Angle_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Angle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Angle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AntennaOffsetSet.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AntennaOffsetSet.c new file mode 100644 index 000000000..f3305a278 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AntennaOffsetSet.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "antOffsetX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B09, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "antOffsetY" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "antOffsetZ" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AntennaOffsetSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* antOffsetX */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* antOffsetY */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* antOffsetZ */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AntennaOffsetSet_specs_1 = { + sizeof(struct ivim_ts_AntennaOffsetSet), + offsetof(struct ivim_ts_AntennaOffsetSet, _asn_ctx), + asn_MAP_ivim_ts_AntennaOffsetSet_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_ivim_ts_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_ivim_ts_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_ivim_ts_AntennaOffsetSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ivim_ts_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AnyCatalogue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AnyCatalogue.c new file mode 100644 index 000000000..9f9f0932a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AnyCatalogue.c @@ -0,0 +1,275 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AnyCatalogue.h" + +static int +memb_ivim_ts_version_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_pictogramCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_version_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_pictogramCode_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_value_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_AnyCatalogue_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AnyCatalogue, owner), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "owner" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AnyCatalogue, version), + (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_ivim_ts_version_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_version_constraint_1 + }, + 0, 0, /* No default value */ + "version" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AnyCatalogue, pictogramCode), + (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_ivim_ts_pictogramCode_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_pictogramCode_constraint_1 + }, + 0, 0, /* No default value */ + "pictogramCode" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_AnyCatalogue, value), + (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_ivim_ts_value_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_AnyCatalogue, unit), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RSCUnit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "unit" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_AnyCatalogue, attributes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ISO14823Attributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_ivim_ts_AnyCatalogue_oms_1[] = { 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AnyCatalogue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AnyCatalogue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* owner */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* version */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pictogramCode */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* unit */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AnyCatalogue_specs_1 = { + sizeof(struct ivim_ts_AnyCatalogue), + offsetof(struct ivim_ts_AnyCatalogue, _asn_ctx), + asn_MAP_ivim_ts_AnyCatalogue_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_AnyCatalogue_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AnyCatalogue = { + "AnyCatalogue", + "AnyCatalogue", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AnyCatalogue_tags_1, + sizeof(asn_DEF_ivim_ts_AnyCatalogue_tags_1) + /sizeof(asn_DEF_ivim_ts_AnyCatalogue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AnyCatalogue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AnyCatalogue_tags_1) + /sizeof(asn_DEF_ivim_ts_AnyCatalogue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_ivim_ts_AnyCatalogue_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_AnyCatalogue_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ApproachID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ApproachID.c new file mode 100644 index 000000000..0d71f0371 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ApproachID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ApproachID.h" + +int +ivim_ts_ApproachID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 15L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ApproachID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ApproachID_tags_1, + sizeof(asn_DEF_ivim_ts_ApproachID_tags_1) + /sizeof(asn_DEF_ivim_ts_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ApproachID_tags_1) + /sizeof(asn_DEF_ivim_ts_ApproachID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ApproachID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ApproachID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AttributeIdList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AttributeIdList.c new file mode 100644 index 000000000..674defb56 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AttributeIdList.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/input/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AttributeIdList.h" + +static int +memb_NativeInteger_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_ivim_ts_Member_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AttributeIdList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (SIZE(0..127,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_AttributeIdList_1[] = { + { ATF_POINTER, 0, 0, + (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) + &asn_PER_memb_ivim_ts_Member_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_NativeInteger_constraint_1 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AttributeIdList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_AttributeIdList_specs_1 = { + sizeof(struct ivim_ts_AttributeIdList), + offsetof(struct ivim_ts_AttributeIdList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AttributeIdList = { + "AttributeIdList", + "AttributeIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_AttributeIdList_tags_1, + sizeof(asn_DEF_ivim_ts_AttributeIdList_tags_1) + /sizeof(asn_DEF_ivim_ts_AttributeIdList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AttributeIdList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AttributeIdList_tags_1) + /sizeof(asn_DEF_ivim_ts_AttributeIdList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AttributeIdList_constr_1, +#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_ivim_ts_AttributeIdList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_AttributeIdList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AttributeList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AttributeList.c new file mode 100644 index 000000000..cfd24f5cf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AttributeList.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/input/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AttributeList.h" + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Attributes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Attributes.c new file mode 100644 index 000000000..3d7491382 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Attributes.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcGeneric" + * found in "/input/ISO14906(2018)EfcDsrcGenericv7-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Attributes.h" + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleContainer.c new file mode 100644 index 000000000..4113350c5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleContainer.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AutomatedVehicleContainer_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_ivim_ts_AutomatedVehicleContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_AvcPart, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_AutomatedVehicleContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_AutomatedVehicleContainer_specs_1 = { + sizeof(struct ivim_ts_AutomatedVehicleContainer), + offsetof(struct ivim_ts_AutomatedVehicleContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AutomatedVehicleContainer = { + "AutomatedVehicleContainer", + "AutomatedVehicleContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_AutomatedVehicleContainer_tags_1, + sizeof(asn_DEF_ivim_ts_AutomatedVehicleContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_AutomatedVehicleContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AutomatedVehicleContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AutomatedVehicleContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_AutomatedVehicleContainer_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AutomatedVehicleContainer_constr_1, +#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_ivim_ts_AutomatedVehicleContainer_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_AutomatedVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleRule.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleRule.c new file mode 100644 index 000000000..da48b4b14 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleRule.c @@ -0,0 +1,242 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRule.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_AutomatedVehicleRule_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AutomatedVehicleRule, priority), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PriorityLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AutomatedVehicleRule, allowedSaeAutomationLevels), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SaeAutomationLevels, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "allowedSaeAutomationLevels" + }, + { ATF_POINTER, 7, offsetof(struct ivim_ts_AutomatedVehicleRule, minGapBetweenVehicles), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GapBetweenVehicles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minGapBetweenVehicles" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_AutomatedVehicleRule, recGapBetweenVehicles), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GapBetweenVehicles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "recGapBetweenVehicles" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_AutomatedVehicleRule, automatedVehicleMaxSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "automatedVehicleMaxSpeedLimit" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_AutomatedVehicleRule, automatedVehicleMinSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "automatedVehicleMinSpeedLimit" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_AutomatedVehicleRule, automatedVehicleSpeedRecommendation), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "automatedVehicleSpeedRecommendation" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_AutomatedVehicleRule, roadSignCodes), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSignCodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSignCodes" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_AutomatedVehicleRule, extraText), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ConstraintTextLines2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extraText" + }, +}; +static const int asn_MAP_ivim_ts_AutomatedVehicleRule_oms_1[] = { 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AutomatedVehicleRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AutomatedVehicleRule_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priority */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allowedSaeAutomationLevels */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* minGapBetweenVehicles */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* recGapBetweenVehicles */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* automatedVehicleMaxSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* automatedVehicleMinSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* automatedVehicleSpeedRecommendation */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* roadSignCodes */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* extraText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AutomatedVehicleRule_specs_1 = { + sizeof(struct ivim_ts_AutomatedVehicleRule), + offsetof(struct ivim_ts_AutomatedVehicleRule, _asn_ctx), + asn_MAP_ivim_ts_AutomatedVehicleRule_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ivim_ts_AutomatedVehicleRule_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AutomatedVehicleRule = { + "AutomatedVehicleRule", + "AutomatedVehicleRule", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AutomatedVehicleRule_tags_1, + sizeof(asn_DEF_ivim_ts_AutomatedVehicleRule_tags_1) + /sizeof(asn_DEF_ivim_ts_AutomatedVehicleRule_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AutomatedVehicleRule_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AutomatedVehicleRule_tags_1) + /sizeof(asn_DEF_ivim_ts_AutomatedVehicleRule_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_AutomatedVehicleRule_1, + 9, /* Elements count */ + &asn_SPC_ivim_ts_AutomatedVehicleRule_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleRules.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleRules.c new file mode 100644 index 000000000..8e6841b9e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AutomatedVehicleRules.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AutomatedVehicleRules.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AutomatedVehicleRules_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_AutomatedVehicleRules_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_AutomatedVehicleRule, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_AutomatedVehicleRules_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_AutomatedVehicleRules_specs_1 = { + sizeof(struct ivim_ts_AutomatedVehicleRules), + offsetof(struct ivim_ts_AutomatedVehicleRules, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AutomatedVehicleRules = { + "AutomatedVehicleRules", + "AutomatedVehicleRules", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_AutomatedVehicleRules_tags_1, + sizeof(asn_DEF_ivim_ts_AutomatedVehicleRules_tags_1) + /sizeof(asn_DEF_ivim_ts_AutomatedVehicleRules_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AutomatedVehicleRules_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AutomatedVehicleRules_tags_1) + /sizeof(asn_DEF_ivim_ts_AutomatedVehicleRules_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AutomatedVehicleRules_constr_1, +#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_ivim_ts_AutomatedVehicleRules_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_AutomatedVehicleRules_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AvcPart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AvcPart.c new file mode 100644 index 000000000..4bb9f643e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AvcPart.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AvcPart.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_AvcPart_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_ivim_ts_AvcPart_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_AvcPart, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AvcPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_AvcPart, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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, 4, offsetof(struct ivim_ts_AvcPart, applicableLanes), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LanePositions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "applicableLanes" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_AvcPart, vehicleCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleCharacteristicsList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleCharacteristics" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_AvcPart, automatedVehicleRules), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AutomatedVehicleRules, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "automatedVehicleRules" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_AvcPart, platooningRules), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PlatooningRules, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "platooningRules" + }, +}; +static const int asn_MAP_ivim_ts_AvcPart_oms_1[] = { 0, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AvcPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AvcPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* applicableLanes */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* automatedVehicleRules */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* platooningRules */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AvcPart_specs_1 = { + sizeof(struct ivim_ts_AvcPart), + offsetof(struct ivim_ts_AvcPart, _asn_ctx), + asn_MAP_ivim_ts_AvcPart_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ivim_ts_AvcPart_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AvcPart = { + "AvcPart", + "AvcPart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AvcPart_tags_1, + sizeof(asn_DEF_ivim_ts_AvcPart_tags_1) + /sizeof(asn_DEF_ivim_ts_AvcPart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AvcPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AvcPart_tags_1) + /sizeof(asn_DEF_ivim_ts_AvcPart_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AvcPart_constr_1, +#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_ivim_ts_AvcPart_1, + 7, /* Elements count */ + &asn_SPC_ivim_ts_AvcPart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AviEriDateTime.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AviEriDateTime.c new file mode 100644 index 000000000..29f7797d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AviEriDateTime.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AviEriDateTime.h" + +int +ivim_ts_AviEriDateTime_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 == 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 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_ivim_ts_AviEriDateTime_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_ivim_ts_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_AviEriDateTime_tags_1, + sizeof(asn_DEF_ivim_ts_AviEriDateTime_tags_1) + /sizeof(asn_DEF_ivim_ts_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AviEriDateTime_tags_1) + /sizeof(asn_DEF_ivim_ts_AviEriDateTime_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_AviEriDateTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_AviEriDateTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AxleWeightLimits.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AxleWeightLimits.c new file mode 100644 index 000000000..ff3eff662 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_AxleWeightLimits.c @@ -0,0 +1,156 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_AxleWeightLimits.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_AxleWeightLimits_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AxleWeightLimits, maxLadenweightOnAxle1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AxleWeightLimits, maxLadenweightOnAxle2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AxleWeightLimits, maxLadenweightOnAxle3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AxleWeightLimits, maxLadenweightOnAxle4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_AxleWeightLimits, maxLadenweightOnAxle5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxLadenweightOnAxle5" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_AxleWeightLimits_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_AxleWeightLimits_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxLadenweightOnAxle1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxLadenweightOnAxle2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxLadenweightOnAxle3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxLadenweightOnAxle4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* maxLadenweightOnAxle5 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_AxleWeightLimits_specs_1 = { + sizeof(struct ivim_ts_AxleWeightLimits), + offsetof(struct ivim_ts_AxleWeightLimits, _asn_ctx), + asn_MAP_ivim_ts_AxleWeightLimits_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_AxleWeightLimits = { + "AxleWeightLimits", + "AxleWeightLimits", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_AxleWeightLimits_tags_1, + sizeof(asn_DEF_ivim_ts_AxleWeightLimits_tags_1) + /sizeof(asn_DEF_ivim_ts_AxleWeightLimits_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_AxleWeightLimits_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_AxleWeightLimits_tags_1) + /sizeof(asn_DEF_ivim_ts_AxleWeightLimits_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_AxleWeightLimits_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_AxleWeightLimits_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BankingAngle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BankingAngle.c new file mode 100644 index 000000000..972979c86 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BankingAngle.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_BankingAngle.h" + +int +ivim_ts_BankingAngle_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 >= -20L && value <= 21L)) { + /* 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_ivim_ts_BankingAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -20, 21 } /* (-20..21) */, + { 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_ivim_ts_BankingAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_BankingAngle = { + "BankingAngle", + "BankingAngle", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_BankingAngle_tags_1, + sizeof(asn_DEF_ivim_ts_BankingAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_BankingAngle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_BankingAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_BankingAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_BankingAngle_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_BankingAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_BankingAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BasicVehicleRole.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BasicVehicleRole.c new file mode 100644 index 000000000..b7d1e3f0c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BasicVehicleRole.c @@ -0,0 +1,110 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_BasicVehicleRole.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_ivim_ts_BasicVehicleRole_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { 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_ivim_ts_BasicVehicleRole_value2enum_1[] = { + { 0, 12, "basicVehicle" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 10, "roadRescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 12, "none-unknown" }, + { 9, 5, "truck" }, + { 10, 10, "motorcycle" }, + { 11, 14, "roadSideSource" }, + { 12, 6, "police" }, + { 13, 4, "fire" }, + { 14, 9, "ambulance" }, + { 15, 3, "dot" }, + { 16, 7, "transit" }, + { 17, 10, "slowMoving" }, + { 18, 7, "stopNgo" }, + { 19, 7, "cyclist" }, + { 20, 10, "pedestrian" }, + { 21, 12, "nonMotorized" }, + { 22, 8, "military" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_BasicVehicleRole_enum2value_1[] = { + 14, /* ambulance(14) */ + 0, /* basicVehicle(0) */ + 19, /* cyclist(19) */ + 3, /* dangerousGoods(3) */ + 15, /* dot(15) */ + 6, /* emergency(6) */ + 13, /* fire(13) */ + 22, /* military(22) */ + 10, /* motorcycle(10) */ + 21, /* nonMotorized(21) */ + 8, /* none-unknown(8) */ + 20, /* pedestrian(20) */ + 12, /* police(12) */ + 1, /* publicTransport(1) */ + 5, /* roadRescue(5) */ + 11, /* roadSideSource(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 17, /* slowMoving(17) */ + 2, /* specialTransport(2) */ + 18, /* stopNgo(18) */ + 16, /* transit(16) */ + 9 /* truck(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_BasicVehicleRole_specs_1 = { + asn_MAP_ivim_ts_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_BasicVehicleRole_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_BasicVehicleRole_tags_1, + sizeof(asn_DEF_ivim_ts_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_ivim_ts_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_ivim_ts_BasicVehicleRole_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_BasicVehicleRole_constr_1, +#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_ivim_ts_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BatteryStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BatteryStatus.c new file mode 100644 index 000000000..94fed7784 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_BatteryStatus.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_BatteryStatus.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_ivim_ts_BatteryStatus_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_ivim_ts_BatteryStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "critical" }, + { 2, 3, "low" }, + { 3, 4, "good" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_BatteryStatus_enum2value_1[] = { + 1, /* critical(1) */ + 3, /* good(3) */ + 2, /* low(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_BatteryStatus_specs_1 = { + asn_MAP_ivim_ts_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_BatteryStatus_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_ivim_ts_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_BatteryStatus_tags_1, + sizeof(asn_DEF_ivim_ts_BatteryStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_BatteryStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_BatteryStatus_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_BatteryStatus_constr_1, +#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_ivim_ts_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CO2EmissionValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CO2EmissionValue.c new file mode 100644 index 000000000..f8e338e19 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CO2EmissionValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CO2EmissionValue.h" + +int +ivim_ts_CO2EmissionValue_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 ivim_ts_Int2, + * 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_ivim_ts_CO2EmissionValue_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_ivim_ts_CO2EmissionValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CO2EmissionValue = { + "CO2EmissionValue", + "CO2EmissionValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_CO2EmissionValue_tags_1, + sizeof(asn_DEF_ivim_ts_CO2EmissionValue_tags_1) + /sizeof(asn_DEF_ivim_ts_CO2EmissionValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CO2EmissionValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CO2EmissionValue_tags_1) + /sizeof(asn_DEF_ivim_ts_CO2EmissionValue_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_CO2EmissionValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_CO2EmissionValue_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS1.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS1.c new file mode 100644 index 000000000..4f6097660 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS1.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CS1.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "issuerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ServiceNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* issuerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CS1_specs_1 = { + sizeof(struct ivim_ts_CS1), + offsetof(struct ivim_ts_CS1, _asn_ctx), + asn_MAP_ivim_ts_CS1_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_ivim_ts_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CS1_tags_1, + sizeof(asn_DEF_ivim_ts_CS1_tags_1) + /sizeof(asn_DEF_ivim_ts_CS1_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CS1_tags_1) + /sizeof(asn_DEF_ivim_ts_CS1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CS1_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_CS1_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS2.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS2.c new file mode 100644 index 000000000..0fc5a1419 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS2.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CS2.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ManufacturerIdentifier, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "manufacturerIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ServiceNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "serviceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CS2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* manufacturerIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serviceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CS2_specs_1 = { + sizeof(struct ivim_ts_CS2), + offsetof(struct ivim_ts_CS2, _asn_ctx), + asn_MAP_ivim_ts_CS2_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_ivim_ts_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CS2_tags_1, + sizeof(asn_DEF_ivim_ts_CS2_tags_1) + /sizeof(asn_DEF_ivim_ts_CS2_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CS2_tags_1) + /sizeof(asn_DEF_ivim_ts_CS2_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CS2_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_CS2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS3.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS3.c new file mode 100644 index 000000000..0f4f5491d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS3.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CS3.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_StartTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_StopTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stopTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GeoGraphicalLimit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "geographLimit" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ServiceApplicationLimit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "serviceAppLimit" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CS3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stopTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* geographLimit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* serviceAppLimit */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CS3_specs_1 = { + sizeof(struct ivim_ts_CS3), + offsetof(struct ivim_ts_CS3, _asn_ctx), + asn_MAP_ivim_ts_CS3_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_ivim_ts_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CS3_tags_1, + sizeof(asn_DEF_ivim_ts_CS3_tags_1) + /sizeof(asn_DEF_ivim_ts_CS3_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CS3_tags_1) + /sizeof(asn_DEF_ivim_ts_CS3_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CS3_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_CS3_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS4.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS4.c new file mode 100644 index 000000000..1488c173b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS4.c @@ -0,0 +1,121 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CS4.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_CS4_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 asn_TYPE_member_t asn_MBR_ivim_ts_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AlphabetIndicator, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LicPlateNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "licPlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CS4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licPlateNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CS4_specs_1 = { + sizeof(struct ivim_ts_CS4), + offsetof(struct ivim_ts_CS4, _asn_ctx), + asn_MAP_ivim_ts_CS4_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_ivim_ts_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CS4_tags_1, + sizeof(asn_DEF_ivim_ts_CS4_tags_1) + /sizeof(asn_DEF_ivim_ts_CS4_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CS4_tags_1) + /sizeof(asn_DEF_ivim_ts_CS4_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_CS4_constr_1, +#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_ivim_ts_CS4_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_CS4_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS5.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS5.c new file mode 100644 index 000000000..0f944ae2e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS5.c @@ -0,0 +1,131 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CS5.h" + +static int +memb_ivim_ts_fill_constraint_1(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 == 9UL)) { + /* 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_ivim_ts_fill_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS5, vin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VisibleString, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vin" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS5, fill), + (ASN_TAG_CLASS_CONTEXT | (1 << 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) + &asn_PER_memb_ivim_ts_fill_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_ivim_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CS5_specs_1 = { + sizeof(struct ivim_ts_CS5), + offsetof(struct ivim_ts_CS5, _asn_ctx), + asn_MAP_ivim_ts_CS5_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_ivim_ts_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CS5_tags_1, + sizeof(asn_DEF_ivim_ts_CS5_tags_1) + /sizeof(asn_DEF_ivim_ts_CS5_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CS5_tags_1) + /sizeof(asn_DEF_ivim_ts_CS5_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CS5_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_CS5_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS7.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS7.c new file mode 100644 index 000000000..fdd595f9b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS7.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CS7.h" + +/* + * This type is implemented using ivim_ts_FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CS7_tags_1, + sizeof(asn_DEF_ivim_ts_CS7_tags_1) + /sizeof(asn_DEF_ivim_ts_CS7_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CS7_tags_1) + /sizeof(asn_DEF_ivim_ts_CS7_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_ivim_ts_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS8.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS8.c new file mode 100644 index 000000000..0112afbdc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CS8.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CS8.h" + +static int +memb_ivim_ts_fill_constraint_1(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 == 6UL)) { + /* 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_ivim_ts_fill_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS8, fill), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_ivim_ts_fill_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_ivim_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TaxCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "taxCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CS8_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fill */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* taxCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CS8_specs_1 = { + sizeof(struct ivim_ts_CS8), + offsetof(struct ivim_ts_CS8, _asn_ctx), + asn_MAP_ivim_ts_CS8_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_ivim_ts_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CS8_tags_1, + sizeof(asn_DEF_ivim_ts_CS8_tags_1) + /sizeof(asn_DEF_ivim_ts_CS8_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CS8_tags_1) + /sizeof(asn_DEF_ivim_ts_CS8_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CS8_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_CS8_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CauseCode.c new file mode 100644 index 000000000..5bd654e16 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CauseCode.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CauseCode.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_CauseCode_specs_1 = { + sizeof(struct ivim_ts_CauseCode), + offsetof(struct ivim_ts_CauseCode, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_CauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CauseCodeType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CauseCodeType.c new file mode 100644 index 000000000..bf0873e5b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CauseCodeType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CauseCodeType.h" + +int +ivim_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_ivim_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_ivim_ts_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_CauseCodeType_tags_1, + sizeof(asn_DEF_ivim_ts_CauseCodeType_tags_1) + /sizeof(asn_DEF_ivim_ts_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CauseCodeType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_CauseCodeType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CenDsrcTollingZone.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CenDsrcTollingZone.c new file mode 100644 index 000000000..7a7f360b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CenDsrcTollingZone.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_CenDsrcTollingZoneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CenDsrcTollingZone_specs_1 = { + sizeof(struct ivim_ts_CenDsrcTollingZone), + offsetof(struct ivim_ts_CenDsrcTollingZone, _asn_ctx), + asn_MAP_ivim_ts_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_ivim_ts_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_ivim_ts_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CenDsrcTollingZoneID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CenDsrcTollingZoneID.c new file mode 100644 index 000000000..44db3ae0f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CenDsrcTollingZoneID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CenDsrcTollingZoneID.h" + +int +ivim_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 ivim_ts_ProtectedZoneID, + * 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_ivim_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_ivim_ts_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_ivim_ts_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_ivim_ts_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_CenDsrcTollingZoneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelId.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelId.c new file mode 100644 index 000000000..2b4d9a51f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelId.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ChannelId.h" + +int +ivim_ts_ChannelId_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_ivim_ts_ChannelId_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_ivim_ts_ChannelId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ChannelId = { + "ChannelId", + "ChannelId", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ChannelId_tags_1, + sizeof(asn_DEF_ivim_ts_ChannelId_tags_1) + /sizeof(asn_DEF_ivim_ts_ChannelId_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ChannelId_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ChannelId_tags_1) + /sizeof(asn_DEF_ivim_ts_ChannelId_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ChannelId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ChannelId_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelRq.c new file mode 100644 index 000000000..94be93032 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelRq.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ChannelRq.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_ChannelRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ChannelRq, channelId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ChannelId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "channelId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ChannelRq, apdu), + (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 */ + "apdu" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ChannelRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ChannelRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* channelId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* apdu */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ChannelRq_specs_1 = { + sizeof(struct ivim_ts_ChannelRq), + offsetof(struct ivim_ts_ChannelRq, _asn_ctx), + asn_MAP_ivim_ts_ChannelRq_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_ivim_ts_ChannelRq = { + "ChannelRq", + "ChannelRq", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ChannelRq_tags_1, + sizeof(asn_DEF_ivim_ts_ChannelRq_tags_1) + /sizeof(asn_DEF_ivim_ts_ChannelRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ChannelRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ChannelRq_tags_1) + /sizeof(asn_DEF_ivim_ts_ChannelRq_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ChannelRq_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_ChannelRq_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelRs.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelRs.c new file mode 100644 index 000000000..98491c6a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ChannelRs.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ChannelRs.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_ChannelRs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ChannelRs, channelId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ChannelId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "channelId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ChannelRs, apdu), + (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 */ + "apdu" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ChannelRs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ChannelRs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* channelId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* apdu */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ChannelRs_specs_1 = { + sizeof(struct ivim_ts_ChannelRs), + offsetof(struct ivim_ts_ChannelRs, _asn_ctx), + asn_MAP_ivim_ts_ChannelRs_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_ivim_ts_ChannelRs = { + "ChannelRs", + "ChannelRs", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ChannelRs_tags_1, + sizeof(asn_DEF_ivim_ts_ChannelRs_tags_1) + /sizeof(asn_DEF_ivim_ts_ChannelRs_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ChannelRs_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ChannelRs_tags_1) + /sizeof(asn_DEF_ivim_ts_ChannelRs_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ChannelRs_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_ChannelRs_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ClosedLanes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ClosedLanes.c new file mode 100644 index 000000000..89fa178c6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ClosedLanes.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct ivim_ts_ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ClosedLanes_specs_1 = { + sizeof(struct ivim_ts_ClosedLanes), + offsetof(struct ivim_ts_ClosedLanes, _asn_ctx), + asn_MAP_ivim_ts_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ClosedLanes_tags_1, + sizeof(asn_DEF_ivim_ts_ClosedLanes_tags_1) + /sizeof(asn_DEF_ivim_ts_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ClosedLanes_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Code-Units.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Code-Units.c new file mode 100644 index 000000000..702f784d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Code-Units.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Code-Units.h" + +int +ivim_ts_Code_Units_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_ivim_ts_Code_Units_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_ivim_ts_Code_Units_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Code_Units = { + "Code-Units", + "Code-Units", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Code_Units_tags_1, + sizeof(asn_DEF_ivim_ts_Code_Units_tags_1) + /sizeof(asn_DEF_ivim_ts_Code_Units_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Code_Units_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Code_Units_tags_1) + /sizeof(asn_DEF_ivim_ts_Code_Units_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Code_Units_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Code_Units_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CollisionRiskSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CollisionRiskSubCauseCode.c new file mode 100644 index 000000000..130389bb7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CollisionRiskSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CollisionRiskSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_CollisionRiskSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComparisonOperator.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComparisonOperator.c new file mode 100644 index 000000000..f83a10e02 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComparisonOperator.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ComparisonOperator.h" + +int +ivim_ts_ComparisonOperator_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_ivim_ts_ComparisonOperator_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_ivim_ts_ComparisonOperator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ComparisonOperator = { + "ComparisonOperator", + "ComparisonOperator", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ComparisonOperator_tags_1, + sizeof(asn_DEF_ivim_ts_ComparisonOperator_tags_1) + /sizeof(asn_DEF_ivim_ts_ComparisonOperator_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ComparisonOperator_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ComparisonOperator_tags_1) + /sizeof(asn_DEF_ivim_ts_ComparisonOperator_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ComparisonOperator_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ComparisonOperator_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CompleteVehicleCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CompleteVehicleCharacteristics.c new file mode 100644 index 000000000..fdafb2773 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CompleteVehicleCharacteristics.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CompleteVehicleCharacteristics.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_CompleteVehicleCharacteristics_1[] = { + { ATF_POINTER, 3, offsetof(struct ivim_ts_CompleteVehicleCharacteristics, tractor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TractorCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "tractor" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_CompleteVehicleCharacteristics, trailer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TrailerCharacteristicsList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailer" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_CompleteVehicleCharacteristics, train), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TrainCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "train" + }, +}; +static const int asn_MAP_ivim_ts_CompleteVehicleCharacteristics_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CompleteVehicleCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CompleteVehicleCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tractor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trailer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* train */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CompleteVehicleCharacteristics_specs_1 = { + sizeof(struct ivim_ts_CompleteVehicleCharacteristics), + offsetof(struct ivim_ts_CompleteVehicleCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_CompleteVehicleCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_CompleteVehicleCharacteristics_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CompleteVehicleCharacteristics = { + "CompleteVehicleCharacteristics", + "CompleteVehicleCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CompleteVehicleCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_CompleteVehicleCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_CompleteVehicleCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CompleteVehicleCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CompleteVehicleCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_CompleteVehicleCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CompleteVehicleCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_CompleteVehicleCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComputedLane.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComputedLane.c new file mode 100644 index 000000000..315d2d390 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComputedLane.c @@ -0,0 +1,477 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ComputedLane.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_offsetXaxis_constr_3 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_offsetYaxis_constr_6 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_12 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_ivim_ts_regional_constr_12 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_ivim_ts_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DrivenLineOffsetSm, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DrivenLineOffsetLg, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_offsetXaxis_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_offsetXaxis_specs_3 = { + sizeof(struct ivim_ts_ComputedLane__offsetXaxis), + offsetof(struct ivim_ts_ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct ivim_ts_ComputedLane__offsetXaxis, present), + sizeof(((struct ivim_ts_ComputedLane__offsetXaxis *)0)->present), + asn_MAP_ivim_ts_offsetXaxis_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_offsetXaxis_3 = { + "offsetXaxis", + "offsetXaxis", + &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_ivim_ts_offsetXaxis_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) */ + CHOICE_constraint + }, + asn_MBR_ivim_ts_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_ivim_ts_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DrivenLineOffsetSm, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "small" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DrivenLineOffsetLg, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "large" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_offsetYaxis_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* small */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* large */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_offsetYaxis_specs_6 = { + sizeof(struct ivim_ts_ComputedLane__offsetYaxis), + offsetof(struct ivim_ts_ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct ivim_ts_ComputedLane__offsetYaxis, present), + sizeof(((struct ivim_ts_ComputedLane__offsetYaxis *)0)->present), + asn_MAP_ivim_ts_offsetYaxis_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_offsetYaxis_6 = { + "offsetYaxis", + "offsetYaxis", + &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_ivim_ts_offsetYaxis_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) */ + CHOICE_constraint + }, + asn_MBR_ivim_ts_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_ivim_ts_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_ComputedLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_12 = { + sizeof(struct ivim_ts_ComputedLane__regional), + offsetof(struct ivim_ts_ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_12, + sizeof(asn_DEF_ivim_ts_regional_tags_12) + /sizeof(asn_DEF_ivim_ts_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_12) + /sizeof(asn_DEF_ivim_ts_regional_tags_12[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_ivim_ts_regional_constr_12, +#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_ivim_ts_regional_12, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "referenceLaneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_offsetXaxis_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offsetXaxis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_offsetYaxis_6, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offsetYaxis" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rotateXY" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Scale_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "scaleXaxis" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Scale_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "scaleYaxis" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ivim_ts_regional_12, + 0, + { +#if !defined(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_ivim_ts_regional_constr_12, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ComputedLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLaneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* offsetYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rotateXY */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scaleXaxis */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* scaleYaxis */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ComputedLane_specs_1 = { + sizeof(struct ivim_ts_ComputedLane), + offsetof(struct ivim_ts_ComputedLane, _asn_ctx), + asn_MAP_ivim_ts_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ivim_ts_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ComputedLane_tags_1, + sizeof(asn_DEF_ivim_ts_ComputedLane_tags_1) + /sizeof(asn_DEF_ivim_ts_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ComputedLane_tags_1) + /sizeof(asn_DEF_ivim_ts_ComputedLane_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_ivim_ts_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComputedSegment.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComputedSegment.c new file mode 100644 index 000000000..dfb602d41 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ComputedSegment.c @@ -0,0 +1,190 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ComputedSegment.h" + +static int +memb_ivim_ts_offsetDistance_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 >= -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; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_offsetDistance_constr_5 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_ComputedSegment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedSegment, zoneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Zid, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zoneId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ComputedSegment, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ComputedSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviLaneWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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 ivim_ts_ComputedSegment, offsetDistance), + (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_ivim_ts_offsetDistance_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_ivim_ts_offsetDistance_constraint_1 + }, + 0, 0, /* No default value */ + "offsetDistance" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_ComputedSegment, offsetPosition), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "offsetPosition" + }, +}; +static const int asn_MAP_ivim_ts_ComputedSegment_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ComputedSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ComputedSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* offsetDistance */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* offsetPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ComputedSegment_specs_1 = { + sizeof(struct ivim_ts_ComputedSegment), + offsetof(struct ivim_ts_ComputedSegment, _asn_ctx), + asn_MAP_ivim_ts_ComputedSegment_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_ComputedSegment_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ComputedSegment = { + "ComputedSegment", + "ComputedSegment", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ComputedSegment_tags_1, + sizeof(asn_DEF_ivim_ts_ComputedSegment_tags_1) + /sizeof(asn_DEF_ivim_ts_ComputedSegment_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ComputedSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ComputedSegment_tags_1) + /sizeof(asn_DEF_ivim_ts_ComputedSegment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ComputedSegment_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_ComputedSegment_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Condition.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Condition.c new file mode 100644 index 000000000..beb5e920d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Condition.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Condition.h" + +int +ivim_ts_Condition_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_ivim_ts_Condition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_Condition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Condition = { + "Condition", + "Condition", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Condition_tags_1, + sizeof(asn_DEF_ivim_ts_Condition_tags_1) + /sizeof(asn_DEF_ivim_ts_Condition_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Condition_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Condition_tags_1) + /sizeof(asn_DEF_ivim_ts_Condition_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Condition_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Condition_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectedDenms.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectedDenms.c new file mode 100644 index 000000000..88579d2b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectedDenms.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectedDenms.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ConnectedDenms_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_ivim_ts_ConnectedDenms_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_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_ivim_ts_ConnectedDenms_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ConnectedDenms_specs_1 = { + sizeof(struct ivim_ts_ConnectedDenms), + offsetof(struct ivim_ts_ConnectedDenms, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectedDenms = { + "ConnectedDenms", + "ConnectedDenms", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ConnectedDenms_tags_1, + sizeof(asn_DEF_ivim_ts_ConnectedDenms_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectedDenms_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ConnectedDenms_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ConnectedDenms_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectedDenms_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ConnectedDenms_constr_1, +#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_ivim_ts_ConnectedDenms_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ConnectedDenms_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectingLane.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectingLane.c new file mode 100644 index 000000000..c5b3a1aa8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectingLane.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AllowedManeuvers, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maneuver" + }, +}; +static const int asn_MAP_ivim_ts_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ConnectingLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maneuver */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ConnectingLane_specs_1 = { + sizeof(struct ivim_ts_ConnectingLane), + offsetof(struct ivim_ts_ConnectingLane, _asn_ctx), + asn_MAP_ivim_ts_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ConnectingLane_tags_1, + sizeof(asn_DEF_ivim_ts_ConnectingLane_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ConnectingLane_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectingLane_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Connection.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Connection.c new file mode 100644 index 000000000..b69286cf9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Connection.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Connection.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ConnectingLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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, 4, offsetof(struct ivim_ts_Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "remoteIntersection" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalGroupID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RestrictionClassID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "userClass" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneConnectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const int asn_MAP_ivim_ts_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Connection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* remoteIntersection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* userClass */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Connection_specs_1 = { + sizeof(struct ivim_ts_Connection), + offsetof(struct ivim_ts_Connection, _asn_ctx), + asn_MAP_ivim_ts_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Connection_tags_1, + sizeof(asn_DEF_ivim_ts_Connection_tags_1) + /sizeof(asn_DEF_ivim_ts_Connection_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Connection_tags_1) + /sizeof(asn_DEF_ivim_ts_Connection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Connection_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_Connection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionManeuverAssist-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 000000000..dc9bc19cb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionManeuverAssist-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ItsStationPositionList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "itsStationPosition" + }, +}; +static const int asn_MAP_ivim_ts_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct ivim_ts_ConnectionManeuverAssist_addGrpC), + offsetof(struct ivim_ts_ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ivim_ts_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ivim_ts_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionManeuverAssist.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionManeuverAssist.c new file mode 100644 index 000000000..8b6db31f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionManeuverAssist.c @@ -0,0 +1,278 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectionManeuverAssist.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_7 = { + sizeof(struct ivim_ts_ConnectionManeuverAssist__regional), + offsetof(struct ivim_ts_ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_7, + sizeof(asn_DEF_ivim_ts_regional_tags_7) + /sizeof(asn_DEF_ivim_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_7) + /sizeof(asn_DEF_ivim_ts_regional_tags_7[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_ivim_ts_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_7, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneConnectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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, 5, offsetof(struct ivim_ts_ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "queueLength" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "availableStorageLength" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_WaitOnStopline, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "waitOnStop" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PedestrianBicycleDetect, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pedBicycleDetect" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ivim_ts_regional_7, + 0, + { +#if !defined(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_ivim_ts_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ConnectionManeuverAssist_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* queueLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* availableStorageLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* waitOnStop */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pedBicycleDetect */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ConnectionManeuverAssist_specs_1 = { + sizeof(struct ivim_ts_ConnectionManeuverAssist), + offsetof(struct ivim_ts_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ivim_ts_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_ivim_ts_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionTrajectory-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionTrajectory-addGrpC.c new file mode 100644 index 000000000..ab0b62a42 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectionTrajectory-addGrpC.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeSetXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneConnectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ConnectionTrajectory_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* connectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct ivim_ts_ConnectionTrajectory_addGrpC), + offsetof(struct ivim_ts_ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_ConnectionTrajectory_addGrpC_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_ivim_ts_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectsToList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectsToList.c new file mode 100644 index 000000000..c10b9ce30 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConnectsToList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ConnectsToList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ConnectsToList_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_ivim_ts_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Connection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ConnectsToList_specs_1 = { + sizeof(struct ivim_ts_ConnectsToList), + offsetof(struct ivim_ts_ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ConnectsToList_tags_1, + sizeof(asn_DEF_ivim_ts_ConnectsToList_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ConnectsToList_tags_1) + /sizeof(asn_DEF_ivim_ts_ConnectsToList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ConnectsToList_constr_1, +#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_ivim_ts_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConstraintTextLines1.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConstraintTextLines1.c new file mode 100644 index 000000000..e61f69d33 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConstraintTextLines1.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines1.h" + +static int +memb_ivim_ts_Text_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_ivim_ts_Member_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_ivim_ts_ConstraintTextLines1_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_ConstraintTextLines1_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Text, + 0, + { +#if !defined(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_ivim_ts_Member_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_ivim_ts_Text_constraint_1 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ConstraintTextLines1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ConstraintTextLines1_specs_1 = { + sizeof(struct ivim_ts_ConstraintTextLines1), + offsetof(struct ivim_ts_ConstraintTextLines1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConstraintTextLines1 = { + "ConstraintTextLines1", + "ConstraintTextLines1", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ConstraintTextLines1_tags_1, + sizeof(asn_DEF_ivim_ts_ConstraintTextLines1_tags_1) + /sizeof(asn_DEF_ivim_ts_ConstraintTextLines1_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ConstraintTextLines1_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ConstraintTextLines1_tags_1) + /sizeof(asn_DEF_ivim_ts_ConstraintTextLines1_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ConstraintTextLines1_constr_1, +#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_ivim_ts_ConstraintTextLines1_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ConstraintTextLines1_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConstraintTextLines2.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConstraintTextLines2.c new file mode 100644 index 000000000..e76c875ec --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ConstraintTextLines2.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ConstraintTextLines2.h" + +static int +memb_ivim_ts_Text_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_ivim_ts_Member_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_ivim_ts_ConstraintTextLines2_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_ConstraintTextLines2_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Text, + 0, + { +#if !defined(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_ivim_ts_Member_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_ivim_ts_Text_constraint_1 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ConstraintTextLines2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ConstraintTextLines2_specs_1 = { + sizeof(struct ivim_ts_ConstraintTextLines2), + offsetof(struct ivim_ts_ConstraintTextLines2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ConstraintTextLines2 = { + "ConstraintTextLines2", + "ConstraintTextLines2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ConstraintTextLines2_tags_1, + sizeof(asn_DEF_ivim_ts_ConstraintTextLines2_tags_1) + /sizeof(asn_DEF_ivim_ts_ConstraintTextLines2_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ConstraintTextLines2_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ConstraintTextLines2_tags_1) + /sizeof(asn_DEF_ivim_ts_ConstraintTextLines2_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ConstraintTextLines2_constr_1, +#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_ivim_ts_ConstraintTextLines2_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ConstraintTextLines2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractAuthenticator.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractAuthenticator.c new file mode 100644 index 000000000..ef4b59eac --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractAuthenticator.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ContractAuthenticator.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ContractAuthenticator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ContractAuthenticator = { + "ContractAuthenticator", + "ContractAuthenticator", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_ContractAuthenticator_tags_1, + sizeof(asn_DEF_ivim_ts_ContractAuthenticator_tags_1) + /sizeof(asn_DEF_ivim_ts_ContractAuthenticator_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ContractAuthenticator_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ContractAuthenticator_tags_1) + /sizeof(asn_DEF_ivim_ts_ContractAuthenticator_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractSerialNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractSerialNumber.c new file mode 100644 index 000000000..81cd7368a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractSerialNumber.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ContractSerialNumber.h" + +int +ivim_ts_ContractSerialNumber_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 ivim_ts_Int4, + * 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_ivim_ts_ContractSerialNumber_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) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ContractSerialNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ContractSerialNumber = { + "ContractSerialNumber", + "ContractSerialNumber", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ContractSerialNumber_tags_1, + sizeof(asn_DEF_ivim_ts_ContractSerialNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_ContractSerialNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ContractSerialNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ContractSerialNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_ContractSerialNumber_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ContractSerialNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ContractSerialNumber_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_Int4_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractValidity.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractValidity.c new file mode 100644 index 000000000..582ec31a5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractValidity.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ContractValidity.h" + +static int +memb_ivim_ts_contractRestrictions_constraint_1(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 == 4UL)) { + /* 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_ivim_ts_contractRestrictions_constr_2 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 asn_TYPE_member_t asn_MBR_ivim_ts_ContractValidity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ContractValidity, contractRestrictions), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_ivim_ts_contractRestrictions_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_ivim_ts_contractRestrictions_constraint_1 + }, + 0, 0, /* No default value */ + "contractRestrictions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ContractValidity, contractExpiryDate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DateCompact, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "contractExpiryDate" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ContractValidity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ContractValidity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* contractRestrictions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* contractExpiryDate */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ContractValidity_specs_1 = { + sizeof(struct ivim_ts_ContractValidity), + offsetof(struct ivim_ts_ContractValidity, _asn_ctx), + asn_MAP_ivim_ts_ContractValidity_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_ivim_ts_ContractValidity = { + "ContractValidity", + "ContractValidity", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ContractValidity_tags_1, + sizeof(asn_DEF_ivim_ts_ContractValidity_tags_1) + /sizeof(asn_DEF_ivim_ts_ContractValidity_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ContractValidity_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ContractValidity_tags_1) + /sizeof(asn_DEF_ivim_ts_ContractValidity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ContractValidity_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_ContractValidity_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractVehicle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractVehicle.c new file mode 100644 index 000000000..5b4f62458 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ContractVehicle.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ContractVehicle.h" + +/* + * This type is implemented using ivim_ts_LPN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ContractVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ContractVehicle = { + "ContractVehicle", + "ContractVehicle", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ContractVehicle_tags_1, + sizeof(asn_DEF_ivim_ts_ContractVehicle_tags_1) + /sizeof(asn_DEF_ivim_ts_ContractVehicle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ContractVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ContractVehicle_tags_1) + /sizeof(asn_DEF_ivim_ts_ContractVehicle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LPN_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_LPN_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CopValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CopValue.c new file mode 100644 index 000000000..8fb5c07d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CopValue.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CopValue.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_ivim_ts_CopValue_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_ivim_ts_CopValue_value2enum_1[] = { + { 0, 7, "noEntry" }, + { 1, 9, "co2class1" }, + { 2, 9, "co2class2" }, + { 3, 9, "co2class3" }, + { 4, 9, "co2class4" }, + { 5, 9, "co2class5" }, + { 6, 9, "co2class6" }, + { 7, 9, "co2class7" }, + { 8, 14, "reservedforUse" } +}; +static const unsigned int asn_MAP_ivim_ts_CopValue_enum2value_1[] = { + 1, /* co2class1(1) */ + 2, /* co2class2(2) */ + 3, /* co2class3(3) */ + 4, /* co2class4(4) */ + 5, /* co2class5(5) */ + 6, /* co2class6(6) */ + 7, /* co2class7(7) */ + 0, /* noEntry(0) */ + 8 /* reservedforUse(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_CopValue_specs_1 = { + asn_MAP_ivim_ts_CopValue_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_CopValue_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_ivim_ts_CopValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CopValue = { + "CopValue", + "CopValue", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_CopValue_tags_1, + sizeof(asn_DEF_ivim_ts_CopValue_tags_1) + /sizeof(asn_DEF_ivim_ts_CopValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CopValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CopValue_tags_1) + /sizeof(asn_DEF_ivim_ts_CopValue_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_CopValue_constr_1, +#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_ivim_ts_CopValue_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CopyRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CopyRq.c new file mode 100644 index 000000000..80965a572 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CopyRq.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CopyRq.h" + +static int +memb_ivim_ts_destinationEID_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_ivim_ts_destinationEID_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_CopyRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CopyRq, destinationEID), + (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_ivim_ts_destinationEID_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_ivim_ts_destinationEID_constraint_1 + }, + 0, 0, /* No default value */ + "destinationEID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CopyRq, attributeIdList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AttributeIdList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributeIdList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CopyRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CopyRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* destinationEID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributeIdList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CopyRq_specs_1 = { + sizeof(struct ivim_ts_CopyRq), + offsetof(struct ivim_ts_CopyRq, _asn_ctx), + asn_MAP_ivim_ts_CopyRq_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_ivim_ts_CopyRq = { + "CopyRq", + "CopyRq", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CopyRq_tags_1, + sizeof(asn_DEF_ivim_ts_CopyRq_tags_1) + /sizeof(asn_DEF_ivim_ts_CopyRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CopyRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CopyRq_tags_1) + /sizeof(asn_DEF_ivim_ts_CopyRq_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CopyRq_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_CopyRq_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CountryCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CountryCode.c new file mode 100644 index 000000000..09b0d5139 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CountryCode.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CountryCode.h" + +int +ivim_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_ivim_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_ivim_ts_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_CountryCode_tags_1, + sizeof(asn_DEF_ivim_ts_CountryCode_tags_1) + /sizeof(asn_DEF_ivim_ts_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CountryCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_CountryCode_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CreditRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CreditRq.c new file mode 100644 index 000000000..79a0e971b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CreditRq.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CreditRq.h" + +static int +memb_ivim_ts_key_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_key_constr_4 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 asn_TYPE_member_t asn_MBR_ivim_ts_CreditRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CreditRq, refund), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PaymentFee, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "refund" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CreditRq, nonce), + (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 */ + "nonce" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CreditRq, key), + (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_ivim_ts_key_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_ivim_ts_key_constraint_1 + }, + 0, 0, /* No default value */ + "key" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CreditRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CreditRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* refund */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nonce */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* key */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CreditRq_specs_1 = { + sizeof(struct ivim_ts_CreditRq), + offsetof(struct ivim_ts_CreditRq, _asn_ctx), + asn_MAP_ivim_ts_CreditRq_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_ivim_ts_CreditRq = { + "CreditRq", + "CreditRq", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CreditRq_tags_1, + sizeof(asn_DEF_ivim_ts_CreditRq_tags_1) + /sizeof(asn_DEF_ivim_ts_CreditRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CreditRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CreditRq_tags_1) + /sizeof(asn_DEF_ivim_ts_CreditRq_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CreditRq_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_CreditRq_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CreditRs.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CreditRs.c new file mode 100644 index 000000000..d32ab6f38 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CreditRs.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CreditRs.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_CreditRs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CreditRs, creditResult), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ResultFin, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "creditResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_CreditRs, creditAuthenticator), + (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 */ + "creditAuthenticator" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_CreditRs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_CreditRs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* creditResult */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* creditAuthenticator */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_CreditRs_specs_1 = { + sizeof(struct ivim_ts_CreditRs), + offsetof(struct ivim_ts_CreditRs, _asn_ctx), + asn_MAP_ivim_ts_CreditRs_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_ivim_ts_CreditRs = { + "CreditRs", + "CreditRs", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_CreditRs_tags_1, + sizeof(asn_DEF_ivim_ts_CreditRs_tags_1) + /sizeof(asn_DEF_ivim_ts_CreditRs_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CreditRs_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CreditRs_tags_1) + /sizeof(asn_DEF_ivim_ts_CreditRs_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CreditRs_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_CreditRs_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Curvature.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Curvature.c new file mode 100644 index 000000000..2f159f7eb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Curvature.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Curvature.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Curvature_specs_1 = { + sizeof(struct ivim_ts_Curvature), + offsetof(struct ivim_ts_Curvature, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Curvature_tags_1, + sizeof(asn_DEF_ivim_ts_Curvature_tags_1) + /sizeof(asn_DEF_ivim_ts_Curvature_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Curvature_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_Curvature_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureCalculationMode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureCalculationMode.c new file mode 100644 index 000000000..657a57644 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureCalculationMode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_CurvatureCalculationMode_specs_1 = { + asn_MAP_ivim_ts_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_ivim_ts_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_ivim_ts_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureConfidence.c new file mode 100644 index 000000000..539191cab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureConfidence.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_CurvatureConfidence_specs_1 = { + asn_MAP_ivim_ts_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_CurvatureConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureValue.c new file mode 100644 index 000000000..6cf4b5153 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_CurvatureValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_CurvatureValue.h" + +int +ivim_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_ivim_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_ivim_ts_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_CurvatureValue_tags_1, + sizeof(asn_DEF_ivim_ts_CurvatureValue_tags_1) + /sizeof(asn_DEF_ivim_ts_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_CurvatureValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_CurvatureValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDD-IO-LIST.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDD-IO-LIST.c new file mode 100644 index 000000000..12b89f834 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDD-IO-LIST.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DDD-IO-LIST.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_DDD_IO_LIST_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_ivim_ts_DDD_IO_LIST_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_DDD_IO, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_DDD_IO_LIST_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_DDD_IO_LIST_specs_1 = { + sizeof(struct ivim_ts_DDD_IO_LIST), + offsetof(struct ivim_ts_DDD_IO_LIST, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DDD_IO_LIST = { + "DDD-IO-LIST", + "DDD-IO-LIST", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_DDD_IO_LIST_tags_1, + sizeof(asn_DEF_ivim_ts_DDD_IO_LIST_tags_1) + /sizeof(asn_DEF_ivim_ts_DDD_IO_LIST_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DDD_IO_LIST_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DDD_IO_LIST_tags_1) + /sizeof(asn_DEF_ivim_ts_DDD_IO_LIST_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DDD_IO_LIST_constr_1, +#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_ivim_ts_DDD_IO_LIST_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_DDD_IO_LIST_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDD-IO.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDD-IO.c new file mode 100644 index 000000000..a599cfe1b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDD-IO.c @@ -0,0 +1,317 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DDD-IO.h" + +static int +memb_ivim_ts_arrowDirection_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 <= 7L)) { + /* 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_ivim_ts_roadNumberIdentifier_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 <= 999L)) { + /* 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_ivim_ts_streetName_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 <= 999L)) { + /* 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_ivim_ts_arrowDirection_constr_2 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_roadNumberIdentifier_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 999 } /* (1..999) */, + { 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_ivim_ts_streetName_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 999 } /* (1..999) */, + { 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_ivim_ts_DDD_IO_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DDD_IO, arrowDirection), + (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_ivim_ts_arrowDirection_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_ivim_ts_arrowDirection_constraint_1 + }, + 0, 0, /* No default value */ + "arrowDirection" + }, + { ATF_POINTER, 7, offsetof(struct ivim_ts_DDD_IO, destPlace), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DestinationPlaces, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "destPlace" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_DDD_IO, destRoad), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DestinationRoads, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "destRoad" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_DDD_IO, roadNumberIdentifier), + (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_ivim_ts_roadNumberIdentifier_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_ivim_ts_roadNumberIdentifier_constraint_1 + }, + 0, 0, /* No default value */ + "roadNumberIdentifier" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_DDD_IO, streetName), + (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_ivim_ts_streetName_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_ivim_ts_streetName_constraint_1 + }, + 0, 0, /* No default value */ + "streetName" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_DDD_IO, streetNameText), + (ASN_TAG_CLASS_CONTEXT | (5 << 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "streetNameText" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_DDD_IO, distanceToDivergingPoint), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DistanceOrDuration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distanceToDivergingPoint" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_DDD_IO, distanceToDestinationPlace), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DistanceOrDuration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distanceToDestinationPlace" + }, +}; +static const int asn_MAP_ivim_ts_DDD_IO_oms_1[] = { 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DDD_IO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DDD_IO_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* arrowDirection */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* destPlace */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* destRoad */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadNumberIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* streetName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* streetNameText */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* distanceToDivergingPoint */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* distanceToDestinationPlace */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DDD_IO_specs_1 = { + sizeof(struct ivim_ts_DDD_IO), + offsetof(struct ivim_ts_DDD_IO, _asn_ctx), + asn_MAP_ivim_ts_DDD_IO_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ivim_ts_DDD_IO_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DDD_IO = { + "DDD-IO", + "DDD-IO", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DDD_IO_tags_1, + sizeof(asn_DEF_ivim_ts_DDD_IO_tags_1) + /sizeof(asn_DEF_ivim_ts_DDD_IO_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DDD_IO_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DDD_IO_tags_1) + /sizeof(asn_DEF_ivim_ts_DDD_IO_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DDD_IO_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_DDD_IO_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDateTime.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDateTime.c new file mode 100644 index 000000000..2258f5a2f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDateTime.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DDateTime.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct ivim_ts_DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DMonth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "month" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DDay, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "day" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DHour, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hour" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DMinute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DOffset, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offset" + }, +}; +static const int asn_MAP_ivim_ts_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DDateTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* day */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hour */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DDateTime_specs_1 = { + sizeof(struct ivim_ts_DDateTime), + offsetof(struct ivim_ts_DDateTime, _asn_ctx), + asn_MAP_ivim_ts_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ivim_ts_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DDateTime_tags_1, + sizeof(asn_DEF_ivim_ts_DDateTime_tags_1) + /sizeof(asn_DEF_ivim_ts_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DDateTime_tags_1) + /sizeof(asn_DEF_ivim_ts_DDateTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_ivim_ts_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDay.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDay.c new file mode 100644 index 000000000..cb11c9cc9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DDay.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DDay.h" + +int +ivim_ts_DDay_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_ivim_ts_DDay_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_ivim_ts_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DDay_tags_1, + sizeof(asn_DEF_ivim_ts_DDay_tags_1) + /sizeof(asn_DEF_ivim_ts_DDay_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DDay_tags_1) + /sizeof(asn_DEF_ivim_ts_DDay_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DDay_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DDay_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DHour.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DHour.c new file mode 100644 index 000000000..75c3f36f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DHour.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DHour.h" + +int +ivim_ts_DHour_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_ivim_ts_DHour_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_ivim_ts_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DHour_tags_1, + sizeof(asn_DEF_ivim_ts_DHour_tags_1) + /sizeof(asn_DEF_ivim_ts_DHour_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DHour_tags_1) + /sizeof(asn_DEF_ivim_ts_DHour_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DHour_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DHour_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DMinute.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DMinute.c new file mode 100644 index 000000000..9745b630f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DMinute.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DMinute.h" + +int +ivim_ts_DMinute_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 <= 60L)) { + /* 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_ivim_ts_DMinute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 60 } /* (0..60) */, + { 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_ivim_ts_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DMinute_tags_1, + sizeof(asn_DEF_ivim_ts_DMinute_tags_1) + /sizeof(asn_DEF_ivim_ts_DMinute_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DMinute_tags_1) + /sizeof(asn_DEF_ivim_ts_DMinute_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DMinute_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DMinute_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DMonth.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DMonth.c new file mode 100644 index 000000000..b45322c2d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DMonth.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DMonth.h" + +int +ivim_ts_DMonth_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 <= 12L)) { + /* 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_ivim_ts_DMonth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { 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_ivim_ts_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DMonth_tags_1, + sizeof(asn_DEF_ivim_ts_DMonth_tags_1) + /sizeof(asn_DEF_ivim_ts_DMonth_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DMonth_tags_1) + /sizeof(asn_DEF_ivim_ts_DMonth_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DMonth_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DMonth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DOffset.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DOffset.c new file mode 100644 index 000000000..951a67dd5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DOffset.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DOffset.h" + +int +ivim_ts_DOffset_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 >= -840L && value <= 840L)) { + /* 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_ivim_ts_DOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -840, 840 } /* (-840..840) */, + { 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_ivim_ts_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DOffset_tags_1, + sizeof(asn_DEF_ivim_ts_DOffset_tags_1) + /sizeof(asn_DEF_ivim_ts_DOffset_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DOffset_tags_1) + /sizeof(asn_DEF_ivim_ts_DOffset_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DOffset_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DOffset_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DSRCmsgID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DSRCmsgID.c new file mode 100644 index 000000000..765a33868 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DSRCmsgID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DSRCmsgID.h" + +int +ivim_ts_DSRCmsgID_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_ivim_ts_DSRCmsgID_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_ivim_ts_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DSRCmsgID_tags_1, + sizeof(asn_DEF_ivim_ts_DSRCmsgID_tags_1) + /sizeof(asn_DEF_ivim_ts_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DSRCmsgID_tags_1) + /sizeof(asn_DEF_ivim_ts_DSRCmsgID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DSRCmsgID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DSRCmsgID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DSecond.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DSecond.c new file mode 100644 index 000000000..6cbe85969 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DSecond.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DSecond.h" + +int +ivim_ts_DSecond_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_ivim_ts_DSecond_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_ivim_ts_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DSecond_tags_1, + sizeof(asn_DEF_ivim_ts_DSecond_tags_1) + /sizeof(asn_DEF_ivim_ts_DSecond_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DSecond_tags_1) + /sizeof(asn_DEF_ivim_ts_DSecond_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DSecond_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DSecond_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DYear.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DYear.c new file mode 100644 index 000000000..c85ccf73e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DYear.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DYear.h" + +int +ivim_ts_DYear_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_ivim_ts_DYear_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_ivim_ts_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DYear_tags_1, + sizeof(asn_DEF_ivim_ts_DYear_tags_1) + /sizeof(asn_DEF_ivim_ts_DYear_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DYear_tags_1) + /sizeof(asn_DEF_ivim_ts_DYear_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DYear_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DYear_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousEndOfQueueSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 000000000..4d5137286 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DangerousEndOfQueueSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_DangerousEndOfQueueSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousGoodsBasic.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousGoodsBasic.c new file mode 100644 index 000000000..989561b55 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousGoodsBasic.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_DangerousGoodsBasic_specs_1 = { + asn_MAP_ivim_ts_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_ivim_ts_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_ivim_ts_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousGoodsExtended.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousGoodsExtended.c new file mode 100644 index 000000000..341196aa4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousGoodsExtended.c @@ -0,0 +1,339 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_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_ivim_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_ivim_ts_unNumber_constraint_1 + }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_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 ivim_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 ivim_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 ivim_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_ivim_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_ivim_ts_emergencyActionCode_constraint_1 + }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_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_ivim_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_ivim_ts_companyName_constraint_1 + }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_ivim_ts_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_DangerousGoodsExtended_specs_1 = { + sizeof(struct ivim_ts_DangerousGoodsExtended), + offsetof(struct ivim_ts_DangerousGoodsExtended, _asn_ctx), + asn_MAP_ivim_ts_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ivim_ts_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_ivim_ts_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_ivim_ts_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousSituationSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousSituationSubCauseCode.c new file mode 100644 index 000000000..167f1786a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DangerousSituationSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DangerousSituationSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_DangerousSituationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DataParameters.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DataParameters.c new file mode 100644 index 000000000..a5d296a41 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DataParameters.c @@ -0,0 +1,325 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DataParameters.h" + +static int check_permitted_alphabet_2(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 check_permitted_alphabet_3(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 check_permitted_alphabet_4(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 check_permitted_alphabet_5(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_ivim_ts_processMethod_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 <= 255UL) + && !check_permitted_alphabet_2(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_ivim_ts_processAgency_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 <= 255UL) + && !check_permitted_alphabet_3(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_ivim_ts_lastCheckedDate_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 <= 255UL) + && !check_permitted_alphabet_4(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_ivim_ts_geoidUsed_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 <= 255UL) + && !check_permitted_alphabet_5(st)) { + /* 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_ivim_ts_processMethod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 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_ivim_ts_processAgency_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 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_ivim_ts_lastCheckedDate_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 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_ivim_ts_geoidUsed_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER character map necessary */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct ivim_ts_DataParameters, processMethod), + (ASN_TAG_CLASS_CONTEXT | (0 << 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_ivim_ts_processMethod_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_ivim_ts_processMethod_constraint_1 + }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_DataParameters, processAgency), + (ASN_TAG_CLASS_CONTEXT | (1 << 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_ivim_ts_processAgency_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_ivim_ts_processAgency_constraint_1 + }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_DataParameters, lastCheckedDate), + (ASN_TAG_CLASS_CONTEXT | (2 << 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_ivim_ts_lastCheckedDate_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_ivim_ts_lastCheckedDate_constraint_1 + }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_DataParameters, geoidUsed), + (ASN_TAG_CLASS_CONTEXT | (3 << 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_ivim_ts_geoidUsed_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_ivim_ts_geoidUsed_constraint_1 + }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_ivim_ts_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DataParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* processMethod */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* processAgency */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lastCheckedDate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* geoidUsed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DataParameters_specs_1 = { + sizeof(struct ivim_ts_DataParameters), + offsetof(struct ivim_ts_DataParameters, _asn_ctx), + asn_MAP_ivim_ts_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DataParameters_tags_1, + sizeof(asn_DEF_ivim_ts_DataParameters_tags_1) + /sizeof(asn_DEF_ivim_ts_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DataParameters_tags_1) + /sizeof(asn_DEF_ivim_ts_DataParameters_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DateAndTime.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DateAndTime.c new file mode 100644 index 000000000..5a8580a77 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DateAndTime.c @@ -0,0 +1,296 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DateAndTime.h" + +static int +memb_ivim_ts_hours_constraint_3(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 <= 23L)) { + /* 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_ivim_ts_mins_constraint_3(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 <= 59L)) { + /* 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_ivim_ts_double_secs_constraint_3(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; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_hours_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 23 } /* (0..23) */, + { 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_ivim_ts_mins_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 59 } /* (0..59) */, + { 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_ivim_ts_double_secs_constr_6 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) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_timeCompact_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DateAndTime__timeCompact, hours), + (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_ivim_ts_hours_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_ivim_ts_hours_constraint_3 + }, + 0, 0, /* No default value */ + "hours" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DateAndTime__timeCompact, mins), + (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_ivim_ts_mins_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_ivim_ts_mins_constraint_3 + }, + 0, 0, /* No default value */ + "mins" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DateAndTime__timeCompact, double_secs), + (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_ivim_ts_double_secs_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_ivim_ts_double_secs_constraint_3 + }, + 0, 0, /* No default value */ + "double-secs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_timeCompact_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_timeCompact_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* hours */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mins */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* double-secs */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_timeCompact_specs_3 = { + sizeof(struct ivim_ts_DateAndTime__timeCompact), + offsetof(struct ivim_ts_DateAndTime__timeCompact, _asn_ctx), + asn_MAP_ivim_ts_timeCompact_tag2el_3, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_timeCompact_3 = { + "timeCompact", + "timeCompact", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_timeCompact_tags_3, + sizeof(asn_DEF_ivim_ts_timeCompact_tags_3) + /sizeof(asn_DEF_ivim_ts_timeCompact_tags_3[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_timeCompact_tags_3, /* Same as above */ + sizeof(asn_DEF_ivim_ts_timeCompact_tags_3) + /sizeof(asn_DEF_ivim_ts_timeCompact_tags_3[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_ivim_ts_timeCompact_3, + 3, /* Elements count */ + &asn_SPC_ivim_ts_timeCompact_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_DateAndTime_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DateAndTime, timeDate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DateCompact, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeDate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DateAndTime, timeCompact), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ivim_ts_timeCompact_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeCompact" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DateAndTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DateAndTime_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeDate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* timeCompact */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DateAndTime_specs_1 = { + sizeof(struct ivim_ts_DateAndTime), + offsetof(struct ivim_ts_DateAndTime, _asn_ctx), + asn_MAP_ivim_ts_DateAndTime_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_ivim_ts_DateAndTime = { + "DateAndTime", + "DateAndTime", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DateAndTime_tags_1, + sizeof(asn_DEF_ivim_ts_DateAndTime_tags_1) + /sizeof(asn_DEF_ivim_ts_DateAndTime_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DateAndTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DateAndTime_tags_1) + /sizeof(asn_DEF_ivim_ts_DateAndTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DateAndTime_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_DateAndTime_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DateCompact.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DateCompact.c new file mode 100644 index 000000000..3692b8e6c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DateCompact.c @@ -0,0 +1,210 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DateCompact.h" + +static int +memb_ivim_ts_year_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 >= 1990L && value <= 2117L)) { + /* 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_ivim_ts_month_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 <= 12L)) { + /* 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_ivim_ts_day_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 <= 31L)) { + /* 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_ivim_ts_year_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1990, 2117 } /* (1990..2117) */, + { 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_ivim_ts_month_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { 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_ivim_ts_day_constr_4 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_DateCompact_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DateCompact, year), + (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_ivim_ts_year_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_ivim_ts_year_constraint_1 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DateCompact, month), + (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_ivim_ts_month_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_ivim_ts_month_constraint_1 + }, + 0, 0, /* No default value */ + "month" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DateCompact, day), + (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_ivim_ts_day_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_ivim_ts_day_constraint_1 + }, + 0, 0, /* No default value */ + "day" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DateCompact_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DateCompact_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* day */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DateCompact_specs_1 = { + sizeof(struct ivim_ts_DateCompact), + offsetof(struct ivim_ts_DateCompact, _asn_ctx), + asn_MAP_ivim_ts_DateCompact_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_ivim_ts_DateCompact = { + "DateCompact", + "DateCompact", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DateCompact_tags_1, + sizeof(asn_DEF_ivim_ts_DateCompact_tags_1) + /sizeof(asn_DEF_ivim_ts_DateCompact_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DateCompact_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DateCompact_tags_1) + /sizeof(asn_DEF_ivim_ts_DateCompact_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DateCompact_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_DateCompact_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DayOfWeek.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DayOfWeek.c new file mode 100644 index 000000000..04339c7e1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DayOfWeek.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DayOfWeek.h" + +int +ivim_ts_DayOfWeek_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_ivim_ts_DayOfWeek_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_ivim_ts_DayOfWeek_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DayOfWeek = { + "DayOfWeek", + "DayOfWeek", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_DayOfWeek_tags_1, + sizeof(asn_DEF_ivim_ts_DayOfWeek_tags_1) + /sizeof(asn_DEF_ivim_ts_DayOfWeek_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DayOfWeek_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DayOfWeek_tags_1) + /sizeof(asn_DEF_ivim_ts_DayOfWeek_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DayOfWeek_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DayOfWeek_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DebitRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DebitRq.c new file mode 100644 index 000000000..cd32d89ef --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DebitRq.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DebitRq.h" + +static int +memb_ivim_ts_keyRef_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_keyRef_constr_4 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 asn_TYPE_member_t asn_MBR_ivim_ts_DebitRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DebitRq, debitPaymentFee), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PaymentFee, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "debitPaymentFee" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DebitRq, nonce), + (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 */ + "nonce" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DebitRq, keyRef), + (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_ivim_ts_keyRef_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_ivim_ts_keyRef_constraint_1 + }, + 0, 0, /* No default value */ + "keyRef" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DebitRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DebitRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* debitPaymentFee */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nonce */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* keyRef */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DebitRq_specs_1 = { + sizeof(struct ivim_ts_DebitRq), + offsetof(struct ivim_ts_DebitRq, _asn_ctx), + asn_MAP_ivim_ts_DebitRq_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_ivim_ts_DebitRq = { + "DebitRq", + "DebitRq", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DebitRq_tags_1, + sizeof(asn_DEF_ivim_ts_DebitRq_tags_1) + /sizeof(asn_DEF_ivim_ts_DebitRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DebitRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DebitRq_tags_1) + /sizeof(asn_DEF_ivim_ts_DebitRq_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DebitRq_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_DebitRq_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DebitRs.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DebitRs.c new file mode 100644 index 000000000..3189cb66a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DebitRs.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DebitRs.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_DebitRs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DebitRs, debitResult), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ResultFin, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "debitResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DebitRs, debitAuthenticator), + (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 */ + "debitAuthenticator" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DebitRs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DebitRs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* debitResult */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* debitAuthenticator */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DebitRs_specs_1 = { + sizeof(struct ivim_ts_DebitRs), + offsetof(struct ivim_ts_DebitRs, _asn_ctx), + asn_MAP_ivim_ts_DebitRs_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_ivim_ts_DebitRs = { + "DebitRs", + "DebitRs", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DebitRs_tags_1, + sizeof(asn_DEF_ivim_ts_DebitRs_tags_1) + /sizeof(asn_DEF_ivim_ts_DebitRs_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DebitRs_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DebitRs_tags_1) + /sizeof(asn_DEF_ivim_ts_DebitRs_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DebitRs_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_DebitRs_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DefinitionAccuracy.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DefinitionAccuracy.c new file mode 100644 index 000000000..ec43b01e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DefinitionAccuracy.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DefinitionAccuracy.h" + +int +ivim_ts_DefinitionAccuracy_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_ivim_ts_DefinitionAccuracy_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_DefinitionAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DefinitionAccuracy = { + "DefinitionAccuracy", + "DefinitionAccuracy", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DefinitionAccuracy_tags_1, + sizeof(asn_DEF_ivim_ts_DefinitionAccuracy_tags_1) + /sizeof(asn_DEF_ivim_ts_DefinitionAccuracy_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DefinitionAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DefinitionAccuracy_tags_1) + /sizeof(asn_DEF_ivim_ts_DefinitionAccuracy_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DefinitionAccuracy_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DefinitionAccuracy_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaAltitude.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaAltitude.c new file mode 100644 index 000000000..ee72e2bc7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaAltitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaAltitude.h" + +int +ivim_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_ivim_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_ivim_ts_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DeltaAltitude_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaAltitude_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaAltitude_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_DeltaAltitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaAngle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaAngle.c new file mode 100644 index 000000000..7f89b77fe --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaAngle.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaAngle.h" + +int +ivim_ts_DeltaAngle_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 >= -150L && value <= 150L)) { + /* 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_ivim_ts_DeltaAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -150, 150 } /* (-150..150) */, + { 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_ivim_ts_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DeltaAngle_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaAngle_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DeltaAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DeltaAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaLatitude.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaLatitude.c new file mode 100644 index 000000000..882fdd565 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaLatitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaLatitude.h" + +int +ivim_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_ivim_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_ivim_ts_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DeltaLatitude_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaLatitude_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaLatitude_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_DeltaLatitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaLongitude.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaLongitude.c new file mode 100644 index 000000000..8b093866c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaLongitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaLongitude.h" + +int +ivim_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_ivim_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_ivim_ts_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DeltaLongitude_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaLongitude_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaLongitude_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_DeltaLongitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaPosition.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaPosition.c new file mode 100644 index 000000000..d8c3b197b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaPosition.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaPosition.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_DeltaPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DeltaPosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_DeltaPosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DeltaPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DeltaPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* deltaLongitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DeltaPosition_specs_1 = { + sizeof(struct ivim_ts_DeltaPosition), + offsetof(struct ivim_ts_DeltaPosition, _asn_ctx), + asn_MAP_ivim_ts_DeltaPosition_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_ivim_ts_DeltaPosition = { + "DeltaPosition", + "DeltaPosition", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DeltaPosition_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaPosition_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaPosition_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaPosition_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaPosition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DeltaPosition_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_DeltaPosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaPositions.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaPositions.c new file mode 100644 index 000000000..130623968 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaPositions.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaPositions.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_DeltaPositions_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 100 } /* (SIZE(1..100,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_DeltaPositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_DeltaPosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_DeltaPositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_DeltaPositions_specs_1 = { + sizeof(struct ivim_ts_DeltaPositions), + offsetof(struct ivim_ts_DeltaPositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaPositions = { + "DeltaPositions", + "DeltaPositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_DeltaPositions_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaPositions_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaPositions_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaPositions_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaPositions_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaPositions_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DeltaPositions_constr_1, +#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_ivim_ts_DeltaPositions_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_DeltaPositions_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaReferencePosition.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaReferencePosition.c new file mode 100644 index 000000000..08b30fe20 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaReferencePosition.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_DeltaReferencePosition_specs_1 = { + sizeof(struct ivim_ts_DeltaReferencePosition), + offsetof(struct ivim_ts_DeltaReferencePosition, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaReferencePositions.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaReferencePositions.c new file mode 100644 index 000000000..75a25d2eb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaReferencePositions.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaReferencePositions.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_DeltaReferencePositions_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 100 } /* (SIZE(1..100,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_DeltaReferencePositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_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 */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DeltaReferencePositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_DeltaReferencePositions_specs_1 = { + sizeof(struct ivim_ts_DeltaReferencePositions), + offsetof(struct ivim_ts_DeltaReferencePositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaReferencePositions = { + "DeltaReferencePositions", + "DeltaReferencePositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_DeltaReferencePositions_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaReferencePositions_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaReferencePositions_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaReferencePositions_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaReferencePositions_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaReferencePositions_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DeltaReferencePositions_constr_1, +#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_ivim_ts_DeltaReferencePositions_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_DeltaReferencePositions_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaTime.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaTime.c new file mode 100644 index 000000000..53bf2dcf8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DeltaTime.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DeltaTime.h" + +int +ivim_ts_DeltaTime_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 >= -122L && value <= 121L)) { + /* 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_ivim_ts_DeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -122, 121 } /* (-122..121) */, + { 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_ivim_ts_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DeltaTime_tags_1, + sizeof(asn_DEF_ivim_ts_DeltaTime_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DeltaTime_tags_1) + /sizeof(asn_DEF_ivim_ts_DeltaTime_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DeltaTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DeltaTime_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Depth.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Depth.c new file mode 100644 index 000000000..dd8c6adfc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Depth.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Depth.h" + +int +ivim_ts_Depth_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_ivim_ts_Depth_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_ivim_ts_Depth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Depth = { + "Depth", + "Depth", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Depth_tags_1, + sizeof(asn_DEF_ivim_ts_Depth_tags_1) + /sizeof(asn_DEF_ivim_ts_Depth_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Depth_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Depth_tags_1) + /sizeof(asn_DEF_ivim_ts_Depth_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Depth_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Depth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DescriptiveCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DescriptiveCharacteristics.c new file mode 100644 index 000000000..8809c8584 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DescriptiveCharacteristics.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveCharacteristics.h" + +int +ivim_ts_DescriptiveCharacteristics_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_ivim_ts_DescriptiveCharacteristics_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_ivim_ts_DescriptiveCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DescriptiveCharacteristics = { + "DescriptiveCharacteristics", + "DescriptiveCharacteristics", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DescriptiveCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_DescriptiveCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_DescriptiveCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DescriptiveCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DescriptiveCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_DescriptiveCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DescriptiveCharacteristics_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DescriptiveCharacteristics_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DescriptiveName.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DescriptiveName.c new file mode 100644 index 000000000..3acb57233 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DescriptiveName.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DescriptiveName.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 +ivim_ts_DescriptiveName_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 <= 63UL) + && !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_ivim_ts_DescriptiveName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 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_ivim_ts_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_ivim_ts_DescriptiveName_tags_1, + sizeof(asn_DEF_ivim_ts_DescriptiveName_tags_1) + /sizeof(asn_DEF_ivim_ts_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DescriptiveName_tags_1) + /sizeof(asn_DEF_ivim_ts_DescriptiveName_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DescriptiveName_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DescriptiveName_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationPlace.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationPlace.c new file mode 100644 index 000000000..f16d896c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationPlace.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationPlace.h" + +static int +memb_ivim_ts_destRSCode_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); +} + +static int +memb_ivim_ts_placeNameIdentification_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 <= 999L)) { + /* 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_ivim_ts_destRSCode_constr_3 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_placeNameIdentification_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 999 } /* (1..999) */, + { 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_ivim_ts_DestinationPlace_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DestinationPlace, destType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DestinationType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "destType" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_DestinationPlace, destRSCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GddStructure, + 0, + { +#if !defined(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_ivim_ts_destRSCode_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_ivim_ts_destRSCode_constraint_1 + }, + 0, 0, /* No default value */ + "destRSCode" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_DestinationPlace, destBlob), + (ASN_TAG_CLASS_CONTEXT | (2 << 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 */ + "destBlob" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_DestinationPlace, placeNameIdentification), + (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_ivim_ts_placeNameIdentification_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_ivim_ts_placeNameIdentification_constraint_1 + }, + 0, 0, /* No default value */ + "placeNameIdentification" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_DestinationPlace, placeNameText), + (ASN_TAG_CLASS_CONTEXT | (4 << 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "placeNameText" + }, +}; +static const int asn_MAP_ivim_ts_DestinationPlace_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DestinationPlace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DestinationPlace_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* destType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* destRSCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* destBlob */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* placeNameIdentification */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* placeNameText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DestinationPlace_specs_1 = { + sizeof(struct ivim_ts_DestinationPlace), + offsetof(struct ivim_ts_DestinationPlace, _asn_ctx), + asn_MAP_ivim_ts_DestinationPlace_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_DestinationPlace_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationPlace = { + "DestinationPlace", + "DestinationPlace", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DestinationPlace_tags_1, + sizeof(asn_DEF_ivim_ts_DestinationPlace_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationPlace_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DestinationPlace_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DestinationPlace_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationPlace_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DestinationPlace_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_DestinationPlace_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationPlaces.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationPlaces.c new file mode 100644 index 000000000..3328ebf5d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationPlaces.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationPlaces.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_DestinationPlaces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_DestinationPlaces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_DestinationPlace, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_DestinationPlaces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_DestinationPlaces_specs_1 = { + sizeof(struct ivim_ts_DestinationPlaces), + offsetof(struct ivim_ts_DestinationPlaces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationPlaces = { + "DestinationPlaces", + "DestinationPlaces", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_DestinationPlaces_tags_1, + sizeof(asn_DEF_ivim_ts_DestinationPlaces_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationPlaces_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DestinationPlaces_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DestinationPlaces_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationPlaces_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DestinationPlaces_constr_1, +#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_ivim_ts_DestinationPlaces_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_DestinationPlaces_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoad.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoad.c new file mode 100644 index 000000000..0dd75370e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoad.c @@ -0,0 +1,148 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationRoad.h" + +static int +memb_ivim_ts_roadNumberIdentifier_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 <= 999L)) { + /* 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_ivim_ts_roadNumberIdentifier_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 999 } /* (1..999) */, + { 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_ivim_ts_DestinationRoad_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DestinationRoad, derType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DestinationRoadType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "derType" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_DestinationRoad, roadNumberIdentifier), + (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_ivim_ts_roadNumberIdentifier_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_ivim_ts_roadNumberIdentifier_constraint_1 + }, + 0, 0, /* No default value */ + "roadNumberIdentifier" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_DestinationRoad, roadNumberText), + (ASN_TAG_CLASS_CONTEXT | (2 << 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadNumberText" + }, +}; +static const int asn_MAP_ivim_ts_DestinationRoad_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DestinationRoad_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DestinationRoad_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* derType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roadNumberIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* roadNumberText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DestinationRoad_specs_1 = { + sizeof(struct ivim_ts_DestinationRoad), + offsetof(struct ivim_ts_DestinationRoad, _asn_ctx), + asn_MAP_ivim_ts_DestinationRoad_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_DestinationRoad_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationRoad = { + "DestinationRoad", + "DestinationRoad", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DestinationRoad_tags_1, + sizeof(asn_DEF_ivim_ts_DestinationRoad_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationRoad_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DestinationRoad_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DestinationRoad_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationRoad_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DestinationRoad_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_DestinationRoad_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoadType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoadType.c new file mode 100644 index 000000000..aabc4bd3c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoadType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationRoadType.h" + +int +ivim_ts_DestinationRoadType_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_ivim_ts_DestinationRoadType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_DestinationRoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationRoadType = { + "DestinationRoadType", + "DestinationRoadType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DestinationRoadType_tags_1, + sizeof(asn_DEF_ivim_ts_DestinationRoadType_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationRoadType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DestinationRoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DestinationRoadType_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationRoadType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DestinationRoadType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DestinationRoadType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoads.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoads.c new file mode 100644 index 000000000..8cf38f92a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationRoads.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationRoads.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_DestinationRoads_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_DestinationRoads_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_DestinationRoad, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_DestinationRoads_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_DestinationRoads_specs_1 = { + sizeof(struct ivim_ts_DestinationRoads), + offsetof(struct ivim_ts_DestinationRoads, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationRoads = { + "DestinationRoads", + "DestinationRoads", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_DestinationRoads_tags_1, + sizeof(asn_DEF_ivim_ts_DestinationRoads_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationRoads_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DestinationRoads_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DestinationRoads_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationRoads_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DestinationRoads_constr_1, +#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_ivim_ts_DestinationRoads_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_DestinationRoads_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationType.c new file mode 100644 index 000000000..cbd22b724 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DestinationType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DestinationType.h" + +int +ivim_ts_DestinationType_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_ivim_ts_DestinationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_DestinationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DestinationType = { + "DestinationType", + "DestinationType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DestinationType_tags_1, + sizeof(asn_DEF_ivim_ts_DestinationType_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DestinationType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DestinationType_tags_1) + /sizeof(asn_DEF_ivim_ts_DestinationType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DestinationType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DestinationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DieselEmissionValues.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DieselEmissionValues.c new file mode 100644 index 000000000..6bd262139 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DieselEmissionValues.c @@ -0,0 +1,211 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DieselEmissionValues.h" + +static int +memb_ivim_ts_value_constraint_2(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; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_value_constr_4 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 asn_TYPE_member_t asn_MBR_ivim_ts_particulate_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DieselEmissionValues__particulate, unitType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_UnitType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "unitType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DieselEmissionValues__particulate, value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_ivim_ts_value_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_ivim_ts_value_constraint_2 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_particulate_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_particulate_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* unitType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* value */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_particulate_specs_2 = { + sizeof(struct ivim_ts_DieselEmissionValues__particulate), + offsetof(struct ivim_ts_DieselEmissionValues__particulate, _asn_ctx), + asn_MAP_ivim_ts_particulate_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_particulate_2 = { + "particulate", + "particulate", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_particulate_tags_2, + sizeof(asn_DEF_ivim_ts_particulate_tags_2) + /sizeof(asn_DEF_ivim_ts_particulate_tags_2[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_particulate_tags_2, /* Same as above */ + sizeof(asn_DEF_ivim_ts_particulate_tags_2) + /sizeof(asn_DEF_ivim_ts_particulate_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) + 0, +#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_ivim_ts_particulate_2, + 2, /* Elements count */ + &asn_SPC_ivim_ts_particulate_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_DieselEmissionValues_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DieselEmissionValues, particulate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ivim_ts_particulate_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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "particulate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DieselEmissionValues, absorptionCoeff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "absorptionCoeff" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DieselEmissionValues_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DieselEmissionValues_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* particulate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* absorptionCoeff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DieselEmissionValues_specs_1 = { + sizeof(struct ivim_ts_DieselEmissionValues), + offsetof(struct ivim_ts_DieselEmissionValues, _asn_ctx), + asn_MAP_ivim_ts_DieselEmissionValues_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_ivim_ts_DieselEmissionValues = { + "DieselEmissionValues", + "DieselEmissionValues", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DieselEmissionValues_tags_1, + sizeof(asn_DEF_ivim_ts_DieselEmissionValues_tags_1) + /sizeof(asn_DEF_ivim_ts_DieselEmissionValues_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DieselEmissionValues_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DieselEmissionValues_tags_1) + /sizeof(asn_DEF_ivim_ts_DieselEmissionValues_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DieselEmissionValues_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_DieselEmissionValues_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DigitalMap.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DigitalMap.c new file mode 100644 index 000000000..595e284f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DigitalMap.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DigitalMap.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_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_ivim_ts_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_DigitalMap_specs_1 = { + sizeof(struct ivim_ts_DigitalMap), + offsetof(struct ivim_ts_DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_DigitalMap_tags_1, + sizeof(asn_DEF_ivim_ts_DigitalMap_tags_1) + /sizeof(asn_DEF_ivim_ts_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DigitalMap_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Direction.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Direction.c new file mode 100644 index 000000000..04e7a6d66 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Direction.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Direction.h" + +int +ivim_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_ivim_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_ivim_ts_Direction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Direction = { + "Direction", + "Direction", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Direction_tags_1, + sizeof(asn_DEF_ivim_ts_Direction_tags_1) + /sizeof(asn_DEF_ivim_ts_Direction_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Direction_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Direction_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_Direction_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Distance.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Distance.c new file mode 100644 index 000000000..5f4c77662 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Distance.c @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Distance.h" + +static int +memb_ivim_ts_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 16384L)) { + /* 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_ivim_ts_unit_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 >= 2L && value <= 4L) || (value >= 6L && 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; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_value_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (1..16384) */, + { 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_ivim_ts_unit_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 2, 8 } /* (2..8) */, + { 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_ivim_ts_Distance_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Distance, value), + (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_ivim_ts_value_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_ivim_ts_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Distance, unit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Code_Units, + 0, + { +#if !defined(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_ivim_ts_unit_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_ivim_ts_unit_constraint_1 + }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Distance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Distance_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Distance_specs_1 = { + sizeof(struct ivim_ts_Distance), + offsetof(struct ivim_ts_Distance, _asn_ctx), + asn_MAP_ivim_ts_Distance_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_ivim_ts_Distance = { + "Distance", + "Distance", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Distance_tags_1, + sizeof(asn_DEF_ivim_ts_Distance_tags_1) + /sizeof(asn_DEF_ivim_ts_Distance_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Distance_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Distance_tags_1) + /sizeof(asn_DEF_ivim_ts_Distance_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Distance_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Distance_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DistanceOrDuration.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DistanceOrDuration.c new file mode 100644 index 000000000..8b8c206db --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DistanceOrDuration.c @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DistanceOrDuration.h" + +static int +memb_ivim_ts_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 16384L)) { + /* 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_ivim_ts_unit_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 >= 2L && value <= 9L)) { + /* 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_ivim_ts_value_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (1..16384) */, + { 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_ivim_ts_unit_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 2, 9 } /* (2..9) */, + { 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_ivim_ts_DistanceOrDuration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DistanceOrDuration, value), + (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_ivim_ts_value_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_ivim_ts_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_DistanceOrDuration, unit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Code_Units, + 0, + { +#if !defined(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_ivim_ts_unit_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_ivim_ts_unit_constraint_1 + }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_DistanceOrDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_DistanceOrDuration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_DistanceOrDuration_specs_1 = { + sizeof(struct ivim_ts_DistanceOrDuration), + offsetof(struct ivim_ts_DistanceOrDuration, _asn_ctx), + asn_MAP_ivim_ts_DistanceOrDuration_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_ivim_ts_DistanceOrDuration = { + "DistanceOrDuration", + "DistanceOrDuration", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_DistanceOrDuration_tags_1, + sizeof(asn_DEF_ivim_ts_DistanceOrDuration_tags_1) + /sizeof(asn_DEF_ivim_ts_DistanceOrDuration_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DistanceOrDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DistanceOrDuration_tags_1) + /sizeof(asn_DEF_ivim_ts_DistanceOrDuration_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_DistanceOrDuration_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_DistanceOrDuration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DriveDirection.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DriveDirection.c new file mode 100644 index 000000000..db02f62f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DriveDirection.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_ivim_ts_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_DriveDirection_specs_1 = { + asn_MAP_ivim_ts_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_DriveDirection_tags_1, + sizeof(asn_DEF_ivim_ts_DriveDirection_tags_1) + /sizeof(asn_DEF_ivim_ts_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DriveDirection_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivenLineOffsetLg.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivenLineOffsetLg.c new file mode 100644 index 000000000..4e26ff837 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivenLineOffsetLg.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetLg.h" + +int +ivim_ts_DrivenLineOffsetLg_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 >= -32767L && 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_ivim_ts_DrivenLineOffsetLg_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32767, 32767 } /* (-32767..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_ivim_ts_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_ivim_ts_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_ivim_ts_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_ivim_ts_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DrivenLineOffsetLg_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DrivenLineOffsetLg_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivenLineOffsetSm.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivenLineOffsetSm.c new file mode 100644 index 000000000..c40667375 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivenLineOffsetSm.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DrivenLineOffsetSm.h" + +int +ivim_ts_DrivenLineOffsetSm_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 >= -2047L && 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_ivim_ts_DrivenLineOffsetSm_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..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_ivim_ts_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_ivim_ts_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_ivim_ts_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_ivim_ts_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_DrivenLineOffsetSm_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_DrivenLineOffsetSm_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivingLaneStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivingLaneStatus.c new file mode 100644 index 000000000..7d3c8011e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_DrivingLaneStatus.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_DrivingLaneStatus.h" + +int +ivim_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_ivim_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_ivim_ts_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_ivim_ts_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_DrivingLaneStatus_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EFC-ContextMark.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EFC-ContextMark.c new file mode 100644 index 000000000..49e3fc790 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EFC-ContextMark.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EFC-ContextMark.h" + +static int +memb_ivim_ts_typeOfContract_constraint_1(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 == 2UL)) { + /* 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_ivim_ts_contextVersion_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_ivim_ts_typeOfContract_constr_3 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_contextVersion_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_EFC_ContextMark_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EFC_ContextMark, contractProvider), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "contractProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EFC_ContextMark, typeOfContract), + (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) + &asn_PER_memb_ivim_ts_typeOfContract_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_ivim_ts_typeOfContract_constraint_1 + }, + 0, 0, /* No default value */ + "typeOfContract" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EFC_ContextMark, contextVersion), + (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_ivim_ts_contextVersion_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_ivim_ts_contextVersion_constraint_1 + }, + 0, 0, /* No default value */ + "contextVersion" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_EFC_ContextMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_EFC_ContextMark_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* contractProvider */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* typeOfContract */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* contextVersion */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_EFC_ContextMark_specs_1 = { + sizeof(struct ivim_ts_EFC_ContextMark), + offsetof(struct ivim_ts_EFC_ContextMark, _asn_ctx), + asn_MAP_ivim_ts_EFC_ContextMark_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_ivim_ts_EFC_ContextMark = { + "EFC-ContextMark", + "EFC-ContextMark", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_EFC_ContextMark_tags_1, + sizeof(asn_DEF_ivim_ts_EFC_ContextMark_tags_1) + /sizeof(asn_DEF_ivim_ts_EFC_ContextMark_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EFC_ContextMark_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EFC_ContextMark_tags_1) + /sizeof(asn_DEF_ivim_ts_EFC_ContextMark_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_EFC_ContextMark_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_EFC_ContextMark_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EXTERNAL.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EXTERNAL.c new file mode 100644 index 000000000..d8333d1e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_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=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EXTERNAL.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_encoding_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_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 ivim_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 ivim_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_ivim_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_ivim_ts_encoding_specs_5 = { + sizeof(struct ivim_ts_EXTERNAL__encoding), + offsetof(struct ivim_ts_EXTERNAL__encoding, _asn_ctx), + offsetof(struct ivim_ts_EXTERNAL__encoding, present), + sizeof(((struct ivim_ts_EXTERNAL__encoding *)0)->present), + asn_MAP_ivim_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_ivim_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_ivim_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_ivim_ts_encoding_5, + 3, /* Elements count */ + &asn_SPC_ivim_ts_encoding_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_EXTERNAL_1[] = { + { ATF_POINTER, 3, offsetof(struct ivim_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 ivim_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 ivim_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 ivim_ts_EXTERNAL, encoding), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ivim_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_ivim_ts_EXTERNAL_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_EXTERNAL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_EXTERNAL_specs_1 = { + sizeof(struct ivim_ts_EXTERNAL), + offsetof(struct ivim_ts_EXTERNAL, _asn_ctx), + asn_MAP_ivim_ts_EXTERNAL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_EXTERNAL_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EXTERNAL = { + "EXTERNAL", + "EXTERNAL", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_EXTERNAL_tags_1, + sizeof(asn_DEF_ivim_ts_EXTERNAL_tags_1) + /sizeof(asn_DEF_ivim_ts_EXTERNAL_tags_1[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_EXTERNAL_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EXTERNAL_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_EXTERNAL_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_EXTERNAL_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_DriverCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_DriverCharacteristics.c new file mode 100644 index 000000000..9877048b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_DriverCharacteristics.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_DriverCharacteristics.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_EfcDsrcApplication_DriverCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EfcDsrcApplication_DriverCharacteristics, driverClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driverClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EfcDsrcApplication_DriverCharacteristics, tripPurpose), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "tripPurpose" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_EfcDsrcApplication_DriverCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_EfcDsrcApplication_DriverCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* driverClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tripPurpose */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_EfcDsrcApplication_DriverCharacteristics_specs_1 = { + sizeof(struct ivim_ts_EfcDsrcApplication_DriverCharacteristics), + offsetof(struct ivim_ts_EfcDsrcApplication_DriverCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_EfcDsrcApplication_DriverCharacteristics_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_ivim_ts_EfcDsrcApplication_DriverCharacteristics = { + "DriverCharacteristics", + "DriverCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_EfcDsrcApplication_DriverCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_DriverCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_DriverCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EfcDsrcApplication_DriverCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_DriverCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_DriverCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_EfcDsrcApplication_DriverCharacteristics_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_EfcDsrcApplication_DriverCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_StationType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_StationType.c new file mode 100644 index 000000000..482a59eab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_StationType.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_StationType.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_ivim_ts_EfcDsrcApplication_StationType_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_ivim_ts_EfcDsrcApplication_StationType_value2enum_1[] = { + { 0, 11, "unspecified" }, + { 1, 22, "closedEntryWithPayment" }, + { 2, 25, "closedEntryWithoutPayment" }, + { 3, 13, "closedTransit" }, + { 4, 10, "closedExit" }, + { 5, 12, "closedCredit" }, + { 6, 5, "mixed" }, + { 7, 7, "passage" }, + { 8, 10, "checkpoint" }, + { 9, 6, "reload" }, + { 10, 24, "reservedForFutureCENUse1" }, + { 11, 24, "reservedForFutureCENUse2" }, + { 12, 24, "reservedForFutureCENUse3" }, + { 13, 24, "reservedForFutureCENUse4" }, + { 14, 11, "privateUse5" }, + { 15, 11, "privateUse6" } +}; +static const unsigned int asn_MAP_ivim_ts_EfcDsrcApplication_StationType_enum2value_1[] = { + 8, /* checkpoint(8) */ + 5, /* closedCredit(5) */ + 1, /* closedEntryWithPayment(1) */ + 2, /* closedEntryWithoutPayment(2) */ + 4, /* closedExit(4) */ + 3, /* closedTransit(3) */ + 6, /* mixed(6) */ + 7, /* passage(7) */ + 14, /* privateUse5(14) */ + 15, /* privateUse6(15) */ + 9, /* reload(9) */ + 10, /* reservedForFutureCENUse1(10) */ + 11, /* reservedForFutureCENUse2(11) */ + 12, /* reservedForFutureCENUse3(12) */ + 13, /* reservedForFutureCENUse4(13) */ + 0 /* unspecified(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EfcDsrcApplication_StationType_specs_1 = { + asn_MAP_ivim_ts_EfcDsrcApplication_StationType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_EfcDsrcApplication_StationType_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_ivim_ts_EfcDsrcApplication_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EfcDsrcApplication_StationType = { + "StationType", + "StationType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_EfcDsrcApplication_StationType_tags_1, + sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_StationType_tags_1) + /sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_StationType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EfcDsrcApplication_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_StationType_tags_1) + /sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_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_ivim_ts_EfcDsrcApplication_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) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ivim_ts_EfcDsrcApplication_StationType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_TrailerCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_TrailerCharacteristics.c new file mode 100644 index 000000000..b0097d83a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EfcDsrcApplication_TrailerCharacteristics.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EfcDsrcApplication_TrailerCharacteristics.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EfcDsrcApplication_TrailerCharacteristics, trailerDetails), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TrailerDetails, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerDetails" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EfcDsrcApplication_TrailerCharacteristics, trailerMaxLadenWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerMaxLadenWeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EfcDsrcApplication_TrailerCharacteristics, trailerWeightUnladen), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerWeightUnladen" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trailerDetails */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trailerMaxLadenWeight */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* trailerWeightUnladen */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_specs_1 = { + sizeof(struct ivim_ts_EfcDsrcApplication_TrailerCharacteristics), + offsetof(struct ivim_ts_EfcDsrcApplication_TrailerCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_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_ivim_ts_EfcDsrcApplication_TrailerCharacteristics = { + "TrailerCharacteristics", + "TrailerCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_EfcDsrcApplication_TrailerCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Elevation.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Elevation.c new file mode 100644 index 000000000..36344e267 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Elevation.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Elevation.h" + +int +ivim_ts_Elevation_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 >= -4096L && value <= 61439L)) { + /* 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_ivim_ts_Elevation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -4096, 61439 } /* (-4096..61439) */, + { 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_ivim_ts_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Elevation_tags_1, + sizeof(asn_DEF_ivim_ts_Elevation_tags_1) + /sizeof(asn_DEF_ivim_ts_Elevation_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Elevation_tags_1) + /sizeof(asn_DEF_ivim_ts_Elevation_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Elevation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Elevation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ElevationConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ElevationConfidence.c new file mode 100644 index 000000000..43b923855 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ElevationConfidence.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ElevationConfidence.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_ivim_ts_ElevationConfidence_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_ivim_ts_ElevationConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 11, "elev-500-00" }, + { 2, 11, "elev-200-00" }, + { 3, 11, "elev-100-00" }, + { 4, 11, "elev-050-00" }, + { 5, 11, "elev-020-00" }, + { 6, 11, "elev-010-00" }, + { 7, 11, "elev-005-00" }, + { 8, 11, "elev-002-00" }, + { 9, 11, "elev-001-00" }, + { 10, 11, "elev-000-50" }, + { 11, 11, "elev-000-20" }, + { 12, 11, "elev-000-10" }, + { 13, 11, "elev-000-05" }, + { 14, 11, "elev-000-02" }, + { 15, 11, "elev-000-01" } +}; +static const unsigned int asn_MAP_ivim_ts_ElevationConfidence_enum2value_1[] = { + 15, /* elev-000-01(15) */ + 14, /* elev-000-02(14) */ + 13, /* elev-000-05(13) */ + 12, /* elev-000-10(12) */ + 11, /* elev-000-20(11) */ + 10, /* elev-000-50(10) */ + 9, /* elev-001-00(9) */ + 8, /* elev-002-00(8) */ + 7, /* elev-005-00(7) */ + 6, /* elev-010-00(6) */ + 5, /* elev-020-00(5) */ + 4, /* elev-050-00(4) */ + 3, /* elev-100-00(3) */ + 2, /* elev-200-00(2) */ + 1, /* elev-500-00(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ElevationConfidence_specs_1 = { + asn_MAP_ivim_ts_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_ElevationConfidence_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_ivim_ts_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_ElevationConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ElevationConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_ElevationConfidence_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ElevationConfidence_constr_1, +#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_ivim_ts_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmbarkationStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmbarkationStatus.c new file mode 100644 index 000000000..7721b85b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmbarkationStatus.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_ivim_ts_EmbarkationStatus_tags_1, + sizeof(asn_DEF_ivim_ts_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_coding/src/ivim_ts_EmergencyPriority.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmergencyPriority.c new file mode 100644 index 000000000..2f8eacc8e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmergencyPriority.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EmergencyPriority.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_EmergencyPriority_tags_1, + sizeof(asn_DEF_ivim_ts_EmergencyPriority_tags_1) + /sizeof(asn_DEF_ivim_ts_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EmergencyPriority_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_EmergencyPriority_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmergencyVehicleApproachingSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 000000000..3d346242f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EmergencyVehicleApproachingSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_EmergencyVehicleApproachingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmissionType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmissionType.c new file mode 100644 index 000000000..77dd949bc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EmissionType.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EmissionType.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_ivim_ts_EmissionType_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_ivim_ts_EmissionType_value2enum_1[] = { + { 0, 5, "euro1" }, + { 1, 5, "euro2" }, + { 2, 5, "euro3" }, + { 3, 5, "euro4" }, + { 4, 5, "euro5" }, + { 5, 5, "euro6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_EmissionType_enum2value_1[] = { + 0, /* euro1(0) */ + 1, /* euro2(1) */ + 2, /* euro3(2) */ + 3, /* euro4(3) */ + 4, /* euro5(4) */ + 5 /* euro6(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EmissionType_specs_1 = { + asn_MAP_ivim_ts_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_EmissionType_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_ivim_ts_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_EmissionType_tags_1, + sizeof(asn_DEF_ivim_ts_EmissionType_tags_1) + /sizeof(asn_DEF_ivim_ts_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EmissionType_tags_1) + /sizeof(asn_DEF_ivim_ts_EmissionType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_EmissionType_constr_1, +#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_ivim_ts_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnabledLaneList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnabledLaneList.c new file mode 100644 index 000000000..cec97deba --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnabledLaneList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EnabledLaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_EnabledLaneList_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_ivim_ts_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_EnabledLaneList_specs_1 = { + sizeof(struct ivim_ts_EnabledLaneList), + offsetof(struct ivim_ts_EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_EnabledLaneList_tags_1, + sizeof(asn_DEF_ivim_ts_EnabledLaneList_tags_1) + /sizeof(asn_DEF_ivim_ts_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EnabledLaneList_tags_1) + /sizeof(asn_DEF_ivim_ts_EnabledLaneList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_EnabledLaneList_constr_1, +#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_ivim_ts_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnergyStorageType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnergyStorageType.c new file mode 100644 index 000000000..f3cd1c65d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnergyStorageType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EnergyStorageType.h" + +int +ivim_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_ivim_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_ivim_ts_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_EnergyStorageType_tags_1, + sizeof(asn_DEF_ivim_ts_EnergyStorageType_tags_1) + /sizeof(asn_DEF_ivim_ts_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EnergyStorageType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_EnergyStorageType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Engine.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Engine.c new file mode 100644 index 000000000..923a25bee --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Engine.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Engine.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_Engine_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Engine, engineCapacity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "engineCapacity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Engine, enginePower), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "enginePower" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Engine_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Engine_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* engineCapacity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enginePower */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Engine_specs_1 = { + sizeof(struct ivim_ts_Engine), + offsetof(struct ivim_ts_Engine, _asn_ctx), + asn_MAP_ivim_ts_Engine_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_ivim_ts_Engine = { + "Engine", + "Engine", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Engine_tags_1, + sizeof(asn_DEF_ivim_ts_Engine_tags_1) + /sizeof(asn_DEF_ivim_ts_Engine_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Engine_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Engine_tags_1) + /sizeof(asn_DEF_ivim_ts_Engine_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Engine_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Engine_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EngineCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EngineCharacteristics.c new file mode 100644 index 000000000..cd9feeb13 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EngineCharacteristics.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EngineCharacteristics.h" + +int +ivim_ts_EngineCharacteristics_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_ivim_ts_EngineCharacteristics_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_ivim_ts_EngineCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EngineCharacteristics = { + "EngineCharacteristics", + "EngineCharacteristics", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_EngineCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_EngineCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_EngineCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EngineCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EngineCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_EngineCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_EngineCharacteristics_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_EngineCharacteristics_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnvironmentalCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnvironmentalCharacteristics.c new file mode 100644 index 000000000..453323401 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EnvironmentalCharacteristics.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EnvironmentalCharacteristics.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_EnvironmentalCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EnvironmentalCharacteristics, euroValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_EuroValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euroValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EnvironmentalCharacteristics, copValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_CopValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "copValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_EnvironmentalCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_EnvironmentalCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euroValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* copValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_EnvironmentalCharacteristics_specs_1 = { + sizeof(struct ivim_ts_EnvironmentalCharacteristics), + offsetof(struct ivim_ts_EnvironmentalCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_EnvironmentalCharacteristics_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_ivim_ts_EnvironmentalCharacteristics = { + "EnvironmentalCharacteristics", + "EnvironmentalCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_EnvironmentalCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_EnvironmentalCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_EnvironmentalCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EnvironmentalCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EnvironmentalCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_EnvironmentalCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_EnvironmentalCharacteristics_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_EnvironmentalCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EquipmentOBUId.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EquipmentOBUId.c new file mode 100644 index 000000000..5d71513b9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EquipmentOBUId.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EquipmentOBUId.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_EquipmentOBUId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EquipmentOBUId = { + "EquipmentOBUId", + "EquipmentOBUId", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_EquipmentOBUId_tags_1, + sizeof(asn_DEF_ivim_ts_EquipmentOBUId_tags_1) + /sizeof(asn_DEF_ivim_ts_EquipmentOBUId_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EquipmentOBUId_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EquipmentOBUId_tags_1) + /sizeof(asn_DEF_ivim_ts_EquipmentOBUId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EquipmentStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EquipmentStatus.c new file mode 100644 index 000000000..13de385d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EquipmentStatus.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EquipmentStatus.h" + +int +ivim_ts_EquipmentStatus_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) +static asn_per_constraints_t asn_PER_type_ivim_ts_EquipmentStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_EquipmentStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EquipmentStatus = { + "EquipmentStatus", + "EquipmentStatus", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_EquipmentStatus_tags_1, + sizeof(asn_DEF_ivim_ts_EquipmentStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_EquipmentStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EquipmentStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EquipmentStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_EquipmentStatus_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_EquipmentStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_EquipmentStatus_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryCode.c new file mode 100644 index 000000000..1475c3715 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryCode.c @@ -0,0 +1,181 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EuVehicleCategoryCode.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_EuVehicleCategoryCode, choice.euVehilcleCategoryT), + (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 */ + "euVehilcleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EuVehicleCategoryCode, choice.euVehilcleCategoryG), + (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 */ + "euVehilcleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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 }, /* euVehilcleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehilcleCategoryG */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryCode_specs_1 = { + sizeof(struct ivim_ts_EuVehicleCategoryCode), + offsetof(struct ivim_ts_EuVehicleCategoryCode, _asn_ctx), + offsetof(struct ivim_ts_EuVehicleCategoryCode, present), + sizeof(((struct ivim_ts_EuVehicleCategoryCode *)0)->present), + asn_MAP_ivim_ts_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_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_ivim_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_ivim_ts_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryL.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryL.c new file mode 100644 index 000000000..26f3d4f6a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryL.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_EuVehicleCategoryL_specs_1 = { + asn_MAP_ivim_ts_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_ivim_ts_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_ivim_ts_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryM.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryM.c new file mode 100644 index 000000000..8625c2e12 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryM.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_ivim_ts_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryM_specs_1 = { + asn_MAP_ivim_ts_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_ivim_ts_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_ivim_ts_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryN.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryN.c new file mode 100644 index 000000000..1524a39be --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryN.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_ivim_ts_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryN_specs_1 = { + asn_MAP_ivim_ts_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_ivim_ts_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_ivim_ts_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryO.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryO.c new file mode 100644 index 000000000..1991ce218 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuVehicleCategoryO.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_ivim_ts_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuVehicleCategoryO_specs_1 = { + asn_MAP_ivim_ts_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_ivim_ts_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_ivim_ts_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuroValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuroValue.c new file mode 100644 index 000000000..8e04608af --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EuroValue.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EuroValue.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_ivim_ts_EuroValue_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_ivim_ts_EuroValue_value2enum_1[] = { + { 0, 7, "noEntry" }, + { 1, 6, "euro-1" }, + { 2, 6, "euro-2" }, + { 3, 6, "euro-3" }, + { 4, 6, "euro-4" }, + { 5, 6, "euro-5" }, + { 6, 6, "euro-6" }, + { 7, 15, "reservedForUse1" }, + { 8, 15, "reservedForUse2" }, + { 9, 15, "reservedForUse3" }, + { 10, 15, "reservedForUse4" }, + { 11, 15, "reservedForUse5" }, + { 12, 15, "reservedForUse6" }, + { 13, 15, "reservedForUse7" }, + { 14, 15, "reservedForUse8" }, + { 15, 3, "eev" } +}; +static const unsigned int asn_MAP_ivim_ts_EuroValue_enum2value_1[] = { + 15, /* eev(15) */ + 1, /* euro-1(1) */ + 2, /* euro-2(2) */ + 3, /* euro-3(3) */ + 4, /* euro-4(4) */ + 5, /* euro-5(5) */ + 6, /* euro-6(6) */ + 0, /* noEntry(0) */ + 7, /* reservedForUse1(7) */ + 8, /* reservedForUse2(8) */ + 9, /* reservedForUse3(9) */ + 10, /* reservedForUse4(10) */ + 11, /* reservedForUse5(11) */ + 12, /* reservedForUse6(12) */ + 13, /* reservedForUse7(13) */ + 14 /* reservedForUse8(14) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_EuroValue_specs_1 = { + asn_MAP_ivim_ts_EuroValue_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_EuroValue_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_ivim_ts_EuroValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EuroValue = { + "EuroValue", + "EuroValue", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_EuroValue_tags_1, + sizeof(asn_DEF_ivim_ts_EuroValue_tags_1) + /sizeof(asn_DEF_ivim_ts_EuroValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EuroValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EuroValue_tags_1) + /sizeof(asn_DEF_ivim_ts_EuroValue_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_EuroValue_constr_1, +#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_ivim_ts_EuroValue_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EventHistory.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EventHistory.c new file mode 100644 index 000000000..666b2087b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EventHistory.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EventHistory.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_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) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_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_ivim_ts_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_EventHistory_specs_1 = { + sizeof(struct ivim_ts_EventHistory), + offsetof(struct ivim_ts_EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_EventHistory_tags_1, + sizeof(asn_DEF_ivim_ts_EventHistory_tags_1) + /sizeof(asn_DEF_ivim_ts_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EventHistory_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_EventHistory_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EventPoint.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EventPoint.c new file mode 100644 index 000000000..f5a95e521 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_EventPoint.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_EventPoint.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_EventPoint_specs_1 = { + sizeof(struct ivim_ts_EventPoint), + offsetof(struct ivim_ts_EventPoint, _asn_ctx), + asn_MAP_ivim_ts_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_EventPoint_tags_1, + sizeof(asn_DEF_ivim_ts_EventPoint_tags_1) + /sizeof(asn_DEF_ivim_ts_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_EventPoint_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExceptionalCondition.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExceptionalCondition.c new file mode 100644 index 000000000..f03b3c878 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExceptionalCondition.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ExceptionalCondition.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_ivim_ts_ExceptionalCondition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { 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_ivim_ts_ExceptionalCondition_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 23, "publicTransportPriority" }, + { 2, 24, "emergencyVehiclePriority" }, + { 3, 13, "trainPriority" }, + { 4, 10, "bridgeOpen" }, + { 5, 13, "vehicleHeight" }, + { 6, 7, "weather" }, + { 7, 10, "trafficJam" }, + { 8, 13, "tunnelClosure" }, + { 9, 14, "meteringActive" }, + { 10, 13, "truckPriority" }, + { 11, 22, "bicyclePlatoonPriority" }, + { 12, 22, "vehiclePlatoonPriority" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_ExceptionalCondition_enum2value_1[] = { + 11, /* bicyclePlatoonPriority(11) */ + 4, /* bridgeOpen(4) */ + 2, /* emergencyVehiclePriority(2) */ + 9, /* meteringActive(9) */ + 1, /* publicTransportPriority(1) */ + 7, /* trafficJam(7) */ + 3, /* trainPriority(3) */ + 10, /* truckPriority(10) */ + 8, /* tunnelClosure(8) */ + 0, /* unknown(0) */ + 5, /* vehicleHeight(5) */ + 12, /* vehiclePlatoonPriority(12) */ + 6 /* weather(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ExceptionalCondition_specs_1 = { + asn_MAP_ivim_ts_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_ExceptionalCondition_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_ExceptionalCondition_tags_1, + sizeof(asn_DEF_ivim_ts_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ivim_ts_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_ivim_ts_ExceptionalCondition_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ExceptionalCondition_constr_1, +#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_ivim_ts_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExhaustEmissionValues.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExhaustEmissionValues.c new file mode 100644 index 000000000..424a00b04 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExhaustEmissionValues.c @@ -0,0 +1,188 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ExhaustEmissionValues.h" + +static int +memb_ivim_ts_emissionCO_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 <= 32767L)) { + /* 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_ivim_ts_emissionCO_constr_3 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_ExhaustEmissionValues_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ExhaustEmissionValues, unitType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_UnitType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "unitType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ExhaustEmissionValues, emissionCO), + (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_ivim_ts_emissionCO_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_ivim_ts_emissionCO_constraint_1 + }, + 0, 0, /* No default value */ + "emissionCO" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ExhaustEmissionValues, emissionHC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "emissionHC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ExhaustEmissionValues, emissionNOX), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "emissionNOX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ExhaustEmissionValues, emissionHCNOX), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "emissionHCNOX" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ExhaustEmissionValues_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ExhaustEmissionValues_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* unitType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* emissionCO */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* emissionHC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* emissionNOX */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* emissionHCNOX */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ExhaustEmissionValues_specs_1 = { + sizeof(struct ivim_ts_ExhaustEmissionValues), + offsetof(struct ivim_ts_ExhaustEmissionValues, _asn_ctx), + asn_MAP_ivim_ts_ExhaustEmissionValues_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ExhaustEmissionValues = { + "ExhaustEmissionValues", + "ExhaustEmissionValues", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ExhaustEmissionValues_tags_1, + sizeof(asn_DEF_ivim_ts_ExhaustEmissionValues_tags_1) + /sizeof(asn_DEF_ivim_ts_ExhaustEmissionValues_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ExhaustEmissionValues_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ExhaustEmissionValues_tags_1) + /sizeof(asn_DEF_ivim_ts_ExhaustEmissionValues_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ExhaustEmissionValues_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_ExhaustEmissionValues_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext1.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext1.c new file mode 100644 index 000000000..8f7738d85 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext1.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Ext1.h" + +static int +memb_ivim_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_ivim_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_ivim_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_ivim_ts_Ext1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_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_ivim_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_ivim_ts_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Ext1, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_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_ivim_ts_Ext1_specs_1 = { + sizeof(struct ivim_ts_Ext1), + offsetof(struct ivim_ts_Ext1, _asn_ctx), + offsetof(struct ivim_ts_Ext1, present), + sizeof(((struct ivim_ts_Ext1 *)0)->present), + asn_MAP_ivim_ts_Ext1_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_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_ivim_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_ivim_ts_Ext1_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Ext1_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext2.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext2.c new file mode 100644 index 000000000..e61faaeba --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext2.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Ext2.h" + +static int +memb_ivim_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_ivim_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_ivim_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_ivim_ts_Ext2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_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_ivim_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_ivim_ts_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Ext2, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_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_ivim_ts_Ext2_specs_1 = { + sizeof(struct ivim_ts_Ext2), + offsetof(struct ivim_ts_Ext2, _asn_ctx), + offsetof(struct ivim_ts_Ext2, present), + sizeof(((struct ivim_ts_Ext2 *)0)->present), + asn_MAP_ivim_ts_Ext2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_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_ivim_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_ivim_ts_Ext2_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Ext2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext3.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext3.c new file mode 100644 index 000000000..0b6b49408 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Ext3.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Ext3.h" + +int +ivim_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_ivim_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_ivim_ts_Ext3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Ext3 = { + "Ext3", + "Ext3", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Ext3_tags_1, + sizeof(asn_DEF_ivim_ts_Ext3_tags_1) + /sizeof(asn_DEF_ivim_ts_Ext3_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Ext3_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Ext3_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_Ext3_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExteriorLights.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExteriorLights.c new file mode 100644 index 000000000..cfb3a3b3e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ExteriorLights.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ExteriorLights.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_ExteriorLights_tags_1, + sizeof(asn_DEF_ivim_ts_ExteriorLights_tags_1) + /sizeof(asn_DEF_ivim_ts_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ExteriorLights_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_ExteriorLights_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FreightContainerData.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FreightContainerData.c new file mode 100644 index 000000000..8d62c52e1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FreightContainerData.c @@ -0,0 +1,593 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_FreightContainerData.h" + +static int +memb_ivim_ts_ownerCode_constraint_1(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 == 19UL)) { + /* 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_ivim_ts_serialNumber_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 <= 1000000L)) { + /* 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_ivim_ts_checkDigit_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 <= 10L)) { + /* 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_ivim_ts_length_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 <= 2000L)) { + /* 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_ivim_ts_height_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 <= 500L)) { + /* 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_ivim_ts_width_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 >= 200L && value <= 300L)) { + /* 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_ivim_ts_containerTypeCode_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; + } +} + +static int +memb_ivim_ts_maximumGrossMass_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 >= 19L && value <= 500L)) { + /* 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_ivim_ts_tareMass_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 <= 99L)) { + /* 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_ivim_ts_fill_constraint_1(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 == 3UL)) { + /* 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_ivim_ts_ownerCode_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 19, 19 } /* (SIZE(19..19)) */, + 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_ivim_ts_serialNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1000000 } /* (0..1000000) */, + { 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_ivim_ts_checkDigit_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { 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_ivim_ts_length_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2000 } /* (1..2000) */, + { 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_ivim_ts_height_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 500 } /* (1..500) */, + { 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_ivim_ts_width_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 200, 300 } /* (200..300) */, + { 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_ivim_ts_containerTypeCode_constr_8 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_memb_ivim_ts_maximumGrossMass_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 19, 500 } /* (19..500) */, + { 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_ivim_ts_tareMass_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { 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_ivim_ts_fill_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, ownerCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_ivim_ts_ownerCode_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_ivim_ts_ownerCode_constraint_1 + }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, serialNumber), + (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_ivim_ts_serialNumber_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_ivim_ts_serialNumber_constraint_1 + }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, checkDigit), + (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_ivim_ts_checkDigit_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_ivim_ts_checkDigit_constraint_1 + }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, length), + (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_ivim_ts_length_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_ivim_ts_length_constraint_1 + }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, height), + (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_ivim_ts_height_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_ivim_ts_height_constraint_1 + }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, width), + (ASN_TAG_CLASS_CONTEXT | (5 << 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_ivim_ts_width_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_ivim_ts_width_constraint_1 + }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, containerTypeCode), + (ASN_TAG_CLASS_CONTEXT | (6 << 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_ivim_ts_containerTypeCode_constr_8, +#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_ivim_ts_containerTypeCode_constraint_1 + }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, maximumGrossMass), + (ASN_TAG_CLASS_CONTEXT | (7 << 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_ivim_ts_maximumGrossMass_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_ivim_ts_maximumGrossMass_constraint_1 + }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, tareMass), + (ASN_TAG_CLASS_CONTEXT | (8 << 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_ivim_ts_tareMass_constr_10, +#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_ivim_ts_tareMass_constraint_1 + }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FreightContainerData, fill), + (ASN_TAG_CLASS_CONTEXT | (9 << 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) + &asn_PER_memb_ivim_ts_fill_constr_11, +#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_ivim_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_FreightContainerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ownerCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* checkDigit */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* length */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* containerTypeCode */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* maximumGrossMass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tareMass */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* fill */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_FreightContainerData_specs_1 = { + sizeof(struct ivim_ts_FreightContainerData), + offsetof(struct ivim_ts_FreightContainerData, _asn_ctx), + asn_MAP_ivim_ts_FreightContainerData_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_FreightContainerData_tags_1, + sizeof(asn_DEF_ivim_ts_FreightContainerData_tags_1) + /sizeof(asn_DEF_ivim_ts_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_FreightContainerData_tags_1) + /sizeof(asn_DEF_ivim_ts_FreightContainerData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_ivim_ts_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FrictionCoefficient.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FrictionCoefficient.c new file mode 100644 index 000000000..46304dee8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FrictionCoefficient.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_FrictionCoefficient.h" + +int +ivim_ts_FrictionCoefficient_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 <= 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_ivim_ts_FrictionCoefficient_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 101 } /* (0..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_ivim_ts_FrictionCoefficient_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_FrictionCoefficient = { + "FrictionCoefficient", + "FrictionCoefficient", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_FrictionCoefficient_tags_1, + sizeof(asn_DEF_ivim_ts_FrictionCoefficient_tags_1) + /sizeof(asn_DEF_ivim_ts_FrictionCoefficient_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_FrictionCoefficient_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_FrictionCoefficient_tags_1) + /sizeof(asn_DEF_ivim_ts_FrictionCoefficient_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_FrictionCoefficient_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_FrictionCoefficient_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FuelType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FuelType.c new file mode 100644 index 000000000..f849ee2ca --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FuelType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_FuelType.h" + +int +ivim_ts_FuelType_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_ivim_ts_FuelType_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_ivim_ts_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_FuelType_tags_1, + sizeof(asn_DEF_ivim_ts_FuelType_tags_1) + /sizeof(asn_DEF_ivim_ts_FuelType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_FuelType_tags_1) + /sizeof(asn_DEF_ivim_ts_FuelType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_FuelType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_FuelType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FullPositionVector.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FullPositionVector.c new file mode 100644 index 000000000..065596f9a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FullPositionVector.c @@ -0,0 +1,263 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_FullPositionVector.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DDateTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "utcTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "long" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "lat" + }, + { ATF_POINTER, 7, offsetof(struct ivim_ts_FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Elevation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_HeadingDSRC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_POINTER, 5, offsetof(struct ivim_ts_FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TransmissionAndSpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PositionalAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posAccuracy" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeConfidence" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PositionConfidenceSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posConfidence" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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 int asn_MAP_ivim_ts_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_FullPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* utcTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speed */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* timeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_FullPositionVector_specs_1 = { + sizeof(struct ivim_ts_FullPositionVector), + offsetof(struct ivim_ts_FullPositionVector, _asn_ctx), + asn_MAP_ivim_ts_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ivim_ts_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_FullPositionVector_tags_1, + sizeof(asn_DEF_ivim_ts_FullPositionVector_tags_1) + /sizeof(asn_DEF_ivim_ts_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_FullPositionVector_tags_1) + /sizeof(asn_DEF_ivim_ts_FullPositionVector_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_ivim_ts_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FutureCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FutureCharacteristics.c new file mode 100644 index 000000000..6f325a0dc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_FutureCharacteristics.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_FutureCharacteristics.h" + +int +ivim_ts_FutureCharacteristics_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_ivim_ts_FutureCharacteristics_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_ivim_ts_FutureCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_FutureCharacteristics = { + "FutureCharacteristics", + "FutureCharacteristics", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_FutureCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_FutureCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_FutureCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_FutureCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_FutureCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_FutureCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_FutureCharacteristics_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_FutureCharacteristics_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GNSSstatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GNSSstatus.c new file mode 100644 index 000000000..121173735 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GNSSstatus.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GNSSstatus.h" + +int +ivim_ts_GNSSstatus_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_ivim_ts_GNSSstatus_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_ivim_ts_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_GNSSstatus_tags_1, + sizeof(asn_DEF_ivim_ts_GNSSstatus_tags_1) + /sizeof(asn_DEF_ivim_ts_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GNSSstatus_tags_1) + /sizeof(asn_DEF_ivim_ts_GNSSstatus_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_GNSSstatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_GNSSstatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GapBetweenVehicles.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GapBetweenVehicles.c new file mode 100644 index 000000000..0b9eb9e69 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GapBetweenVehicles.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GapBetweenVehicles.h" + +int +ivim_ts_GapBetweenVehicles_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_ivim_ts_GapBetweenVehicles_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_ivim_ts_GapBetweenVehicles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GapBetweenVehicles = { + "GapBetweenVehicles", + "GapBetweenVehicles", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_GapBetweenVehicles_tags_1, + sizeof(asn_DEF_ivim_ts_GapBetweenVehicles_tags_1) + /sizeof(asn_DEF_ivim_ts_GapBetweenVehicles_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GapBetweenVehicles_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GapBetweenVehicles_tags_1) + /sizeof(asn_DEF_ivim_ts_GapBetweenVehicles_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_GapBetweenVehicles_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_GapBetweenVehicles_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddAttribute.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddAttribute.c new file mode 100644 index 000000000..795a4ba3c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddAttribute.c @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GddAttribute.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_GddAttribute_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { 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_ivim_ts_GddAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.dtm), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_applicablePeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dtm" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.edt), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "edt" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.dfl), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dfl" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.ved), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ved" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.spe), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_speedLimits, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "spe" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.roi), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_rateOfIncline, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roi" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.dbv), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dbv" + }, + { ATF_POINTER, 0, offsetof(struct ivim_ts_GddAttribute, choice.ddd), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_destinationInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ddd" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.set), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_section, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "set" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddAttribute, choice.nol), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_numberOfLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nol" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_GddAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dtm */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* edt */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dfl */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ved */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* spe */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roi */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dbv */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ddd */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* set */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* nol */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_GddAttribute_specs_1 = { + sizeof(struct ivim_ts_GddAttribute), + offsetof(struct ivim_ts_GddAttribute, _asn_ctx), + offsetof(struct ivim_ts_GddAttribute, present), + sizeof(((struct ivim_ts_GddAttribute *)0)->present), + asn_MAP_ivim_ts_GddAttribute_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GddAttribute = { + "GddAttribute", + "GddAttribute", + &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_ivim_ts_GddAttribute_constr_1, +#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_ivim_ts_GddAttribute_1, + 10, /* Elements count */ + &asn_SPC_ivim_ts_GddAttribute_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddAttributes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddAttributes.c new file mode 100644 index 000000000..fbedce889 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddAttributes.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GddAttributes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_GddAttributes_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_ivim_ts_GddAttributes_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ivim_ts_GddAttribute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_GddAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_GddAttributes_specs_1 = { + sizeof(struct ivim_ts_GddAttributes), + offsetof(struct ivim_ts_GddAttributes, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GddAttributes = { + "GddAttributes", + "GddAttributes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_GddAttributes_tags_1, + sizeof(asn_DEF_ivim_ts_GddAttributes_tags_1) + /sizeof(asn_DEF_ivim_ts_GddAttributes_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GddAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GddAttributes_tags_1) + /sizeof(asn_DEF_ivim_ts_GddAttributes_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_GddAttributes_constr_1, +#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_ivim_ts_GddAttributes_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_GddAttributes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddStructure.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddStructure.c new file mode 100644 index 000000000..8b7cb451c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GddStructure.c @@ -0,0 +1,680 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GddStructure.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ivim_ts_nature_constraint_18(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 <= 9L)) { + /* 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_ivim_ts_serialNumber_constraint_18(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 <= 99L)) { + /* 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_ivim_ts_countryCode_constraint_2(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 == 2UL)) { + /* 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_type_ivim_ts_trafficSignPictogram_constr_5 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_publicFacilitiesPictogram_constr_10 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_ambientOrRoadConditionPictogram_constr_13 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_serviceCategoryCode_constr_4 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_nature_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (1..9) */, + { 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_ivim_ts_serialNumber_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { 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_ivim_ts_countryCode_constr_3 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 asn_INTEGER_enum_map_t asn_MAP_ivim_ts_trafficSignPictogram_value2enum_5[] = { + { 0, 13, "dangerWarning" }, + { 1, 10, "regulatory" }, + { 2, 11, "informative" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_trafficSignPictogram_enum2value_5[] = { + 0, /* dangerWarning(0) */ + 2, /* informative(2) */ + 1 /* regulatory(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_trafficSignPictogram_specs_5 = { + asn_MAP_ivim_ts_trafficSignPictogram_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_trafficSignPictogram_enum2value_5, /* 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_ivim_ts_trafficSignPictogram_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_trafficSignPictogram_5 = { + "trafficSignPictogram", + "trafficSignPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_trafficSignPictogram_tags_5, + sizeof(asn_DEF_ivim_ts_trafficSignPictogram_tags_5) + /sizeof(asn_DEF_ivim_ts_trafficSignPictogram_tags_5[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_trafficSignPictogram_tags_5, /* Same as above */ + sizeof(asn_DEF_ivim_ts_trafficSignPictogram_tags_5) + /sizeof(asn_DEF_ivim_ts_trafficSignPictogram_tags_5[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_ivim_ts_trafficSignPictogram_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) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ivim_ts_trafficSignPictogram_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ivim_ts_publicFacilitiesPictogram_value2enum_10[] = { + { 0, 16, "publicFacilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_publicFacilitiesPictogram_enum2value_10[] = { + 0 /* publicFacilities(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_publicFacilitiesPictogram_specs_10 = { + asn_MAP_ivim_ts_publicFacilitiesPictogram_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_publicFacilitiesPictogram_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* 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_ivim_ts_publicFacilitiesPictogram_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_publicFacilitiesPictogram_10 = { + "publicFacilitiesPictogram", + "publicFacilitiesPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10, + sizeof(asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10) + /sizeof(asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10, /* Same as above */ + sizeof(asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10) + /sizeof(asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10[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_ivim_ts_publicFacilitiesPictogram_constr_10, +#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_ivim_ts_publicFacilitiesPictogram_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ivim_ts_ambientOrRoadConditionPictogram_value2enum_13[] = { + { 0, 16, "ambientCondition" }, + { 1, 13, "roadCondition" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_ambientOrRoadConditionPictogram_enum2value_13[] = { + 0, /* ambientCondition(0) */ + 1 /* roadCondition(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ambientOrRoadConditionPictogram_specs_13 = { + asn_MAP_ivim_ts_ambientOrRoadConditionPictogram_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_ambientOrRoadConditionPictogram_enum2value_13, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_13 = { + "ambientOrRoadConditionPictogram", + "ambientOrRoadConditionPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13, + sizeof(asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13) + /sizeof(asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13) + /sizeof(asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13[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_ivim_ts_ambientOrRoadConditionPictogram_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) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ivim_ts_ambientOrRoadConditionPictogram_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_serviceCategoryCode_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddStructure__pictogramCode__serviceCategoryCode, choice.trafficSignPictogram), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_trafficSignPictogram_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 */ + "trafficSignPictogram" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddStructure__pictogramCode__serviceCategoryCode, choice.publicFacilitiesPictogram), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_publicFacilitiesPictogram_10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "publicFacilitiesPictogram" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddStructure__pictogramCode__serviceCategoryCode, choice.ambientOrRoadConditionPictogram), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ambientOrRoadConditionPictogram" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_serviceCategoryCode_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trafficSignPictogram */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* publicFacilitiesPictogram */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ambientOrRoadConditionPictogram */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_serviceCategoryCode_specs_4 = { + sizeof(struct ivim_ts_GddStructure__pictogramCode__serviceCategoryCode), + offsetof(struct ivim_ts_GddStructure__pictogramCode__serviceCategoryCode, _asn_ctx), + offsetof(struct ivim_ts_GddStructure__pictogramCode__serviceCategoryCode, present), + sizeof(((struct ivim_ts_GddStructure__pictogramCode__serviceCategoryCode *)0)->present), + asn_MAP_ivim_ts_serviceCategoryCode_tag2el_4, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_serviceCategoryCode_4 = { + "serviceCategoryCode", + "serviceCategoryCode", + &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_ivim_ts_serviceCategoryCode_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) */ + CHOICE_constraint + }, + asn_MBR_ivim_ts_serviceCategoryCode_4, + 3, /* Elements count */ + &asn_SPC_ivim_ts_serviceCategoryCode_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_pictogramCategoryCode_18[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddStructure__pictogramCode__pictogramCategoryCode, nature), + (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_ivim_ts_nature_constr_19, +#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_ivim_ts_nature_constraint_18 + }, + 0, 0, /* No default value */ + "nature" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddStructure__pictogramCode__pictogramCategoryCode, serialNumber), + (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_ivim_ts_serialNumber_constr_20, +#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_ivim_ts_serialNumber_constraint_18 + }, + 0, 0, /* No default value */ + "serialNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_pictogramCategoryCode_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_pictogramCategoryCode_tag2el_18[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nature */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serialNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_pictogramCategoryCode_specs_18 = { + sizeof(struct ivim_ts_GddStructure__pictogramCode__pictogramCategoryCode), + offsetof(struct ivim_ts_GddStructure__pictogramCode__pictogramCategoryCode, _asn_ctx), + asn_MAP_ivim_ts_pictogramCategoryCode_tag2el_18, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_pictogramCategoryCode_18 = { + "pictogramCategoryCode", + "pictogramCategoryCode", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_pictogramCategoryCode_tags_18, + sizeof(asn_DEF_ivim_ts_pictogramCategoryCode_tags_18) + /sizeof(asn_DEF_ivim_ts_pictogramCategoryCode_tags_18[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_pictogramCategoryCode_tags_18, /* Same as above */ + sizeof(asn_DEF_ivim_ts_pictogramCategoryCode_tags_18) + /sizeof(asn_DEF_ivim_ts_pictogramCategoryCode_tags_18[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_ivim_ts_pictogramCategoryCode_18, + 2, /* Elements count */ + &asn_SPC_ivim_ts_pictogramCategoryCode_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_pictogramCode_2[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_GddStructure__pictogramCode, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_ivim_ts_countryCode_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_ivim_ts_countryCode_constraint_2 + }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddStructure__pictogramCode, serviceCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_serviceCategoryCode_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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "serviceCategoryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddStructure__pictogramCode, pictogramCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ivim_ts_pictogramCategoryCode_18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pictogramCategoryCode" + }, +}; +static const int asn_MAP_ivim_ts_pictogramCode_oms_2[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_pictogramCode_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_pictogramCode_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serviceCategoryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pictogramCategoryCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_pictogramCode_specs_2 = { + sizeof(struct ivim_ts_GddStructure__pictogramCode), + offsetof(struct ivim_ts_GddStructure__pictogramCode, _asn_ctx), + asn_MAP_ivim_ts_pictogramCode_tag2el_2, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_pictogramCode_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_pictogramCode_2 = { + "pictogramCode", + "pictogramCode", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_pictogramCode_tags_2, + sizeof(asn_DEF_ivim_ts_pictogramCode_tags_2) + /sizeof(asn_DEF_ivim_ts_pictogramCode_tags_2[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_pictogramCode_tags_2, /* Same as above */ + sizeof(asn_DEF_ivim_ts_pictogramCode_tags_2) + /sizeof(asn_DEF_ivim_ts_pictogramCode_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) + 0, +#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_ivim_ts_pictogramCode_2, + 3, /* Elements count */ + &asn_SPC_ivim_ts_pictogramCode_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_GddStructure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GddStructure, pictogramCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ivim_ts_pictogramCode_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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pictogramCode" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GddStructure, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GddAttributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_ivim_ts_GddStructure_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_GddStructure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_GddStructure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pictogramCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GddStructure_specs_1 = { + sizeof(struct ivim_ts_GddStructure), + offsetof(struct ivim_ts_GddStructure, _asn_ctx), + asn_MAP_ivim_ts_GddStructure_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_GddStructure_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GddStructure = { + "GddStructure", + "GddStructure", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_GddStructure_tags_1, + sizeof(asn_DEF_ivim_ts_GddStructure_tags_1) + /sizeof(asn_DEF_ivim_ts_GddStructure_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GddStructure_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GddStructure_tags_1) + /sizeof(asn_DEF_ivim_ts_GddStructure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_GddStructure_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_GddStructure_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeneralIviContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeneralIviContainer.c new file mode 100644 index 000000000..0fc88006f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeneralIviContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GeneralIviContainer.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_GeneralIviContainer_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_ivim_ts_GeneralIviContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_GicPart, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_GeneralIviContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_GeneralIviContainer_specs_1 = { + sizeof(struct ivim_ts_GeneralIviContainer), + offsetof(struct ivim_ts_GeneralIviContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GeneralIviContainer = { + "GeneralIviContainer", + "GeneralIviContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_GeneralIviContainer_tags_1, + sizeof(asn_DEF_ivim_ts_GeneralIviContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_GeneralIviContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GeneralIviContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GeneralIviContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_GeneralIviContainer_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_GeneralIviContainer_constr_1, +#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_ivim_ts_GeneralIviContainer_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_GeneralIviContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GenericLane.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GenericLane.c new file mode 100644 index 000000000..3595bf86e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GenericLane.c @@ -0,0 +1,362 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GenericLane.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_11 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_ivim_ts_regional_constr_11 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_ivim_ts_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_GenericLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_11 = { + sizeof(struct ivim_ts_GenericLane__regional), + offsetof(struct ivim_ts_GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_11, + sizeof(asn_DEF_ivim_ts_regional_tags_11) + /sizeof(asn_DEF_ivim_ts_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_11) + /sizeof(asn_DEF_ivim_ts_regional_tags_11[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_ivim_ts_regional_constr_11, +#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_ivim_ts_regional_11, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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, 3, offsetof(struct ivim_ts_GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ApproachID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ingressApproach" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ApproachID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "egressApproach" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneAttributes" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AllowedManeuvers, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maneuvers" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeListXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodeList" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ConnectsToList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectsTo" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_OverlayLaneList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "overlays" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ivim_ts_regional_11, + 0, + { +#if !defined(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_ivim_ts_regional_constr_11, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_GenericLane_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ingressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* egressApproach */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAttributes */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maneuvers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* nodeList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* connectsTo */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* overlays */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GenericLane_specs_1 = { + sizeof(struct ivim_ts_GenericLane), + offsetof(struct ivim_ts_GenericLane, _asn_ctx), + asn_MAP_ivim_ts_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ivim_ts_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_GenericLane_tags_1, + sizeof(asn_DEF_ivim_ts_GenericLane_tags_1) + /sizeof(asn_DEF_ivim_ts_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GenericLane_tags_1) + /sizeof(asn_DEF_ivim_ts_GenericLane_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_ivim_ts_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeoGraphicalLimit.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeoGraphicalLimit.c new file mode 100644 index 000000000..9c789a6e1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeoGraphicalLimit.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GeoGraphicalLimit.h" + +int +ivim_ts_GeoGraphicalLimit_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_ivim_ts_GeoGraphicalLimit_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_ivim_ts_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_ivim_ts_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_ivim_ts_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_ivim_ts_GeoGraphicalLimit_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_GeoGraphicalLimit_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_GeoGraphicalLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeographicLocationContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeographicLocationContainer.c new file mode 100644 index 000000000..a74e2734a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GeographicLocationContainer.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GeographicLocationContainer.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_GeographicLocationContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GeographicLocationContainer, referencePosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "referencePosition" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_GeographicLocationContainer, referencePositionTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "referencePositionTime" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_GeographicLocationContainer, referencePositionHeading), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "referencePositionHeading" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GeographicLocationContainer, referencePositionSpeed), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "referencePositionSpeed" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GeographicLocationContainer, parts), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GlcParts, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "parts" + }, +}; +static const int asn_MAP_ivim_ts_GeographicLocationContainer_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_GeographicLocationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_GeographicLocationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referencePosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* referencePositionTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* referencePositionHeading */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* referencePositionSpeed */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* parts */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GeographicLocationContainer_specs_1 = { + sizeof(struct ivim_ts_GeographicLocationContainer), + offsetof(struct ivim_ts_GeographicLocationContainer, _asn_ctx), + asn_MAP_ivim_ts_GeographicLocationContainer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_GeographicLocationContainer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GeographicLocationContainer = { + "GeographicLocationContainer", + "GeographicLocationContainer", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_GeographicLocationContainer_tags_1, + sizeof(asn_DEF_ivim_ts_GeographicLocationContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_GeographicLocationContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GeographicLocationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GeographicLocationContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_GeographicLocationContainer_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_GeographicLocationContainer_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_GeographicLocationContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetInstanceRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetInstanceRq.c new file mode 100644 index 000000000..4bc04d140 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetInstanceRq.c @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GetInstanceRq.h" + +static int +memb_ivim_ts_posOfFirstInstance_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_posOfLastInstance_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_posOfFirstInstance_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_posOfLastInstance_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_GetInstanceRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GetInstanceRq, posOfFirstInstance), + (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_ivim_ts_posOfFirstInstance_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_ivim_ts_posOfFirstInstance_constraint_1 + }, + 0, 0, /* No default value */ + "posOfFirstInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GetInstanceRq, posOfLastInstance), + (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_ivim_ts_posOfLastInstance_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_ivim_ts_posOfLastInstance_constraint_1 + }, + 0, 0, /* No default value */ + "posOfLastInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GetInstanceRq, attributeIdList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AttributeIdList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributeIdList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_GetInstanceRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_GetInstanceRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* posOfFirstInstance */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* posOfLastInstance */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* attributeIdList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GetInstanceRq_specs_1 = { + sizeof(struct ivim_ts_GetInstanceRq), + offsetof(struct ivim_ts_GetInstanceRq, _asn_ctx), + asn_MAP_ivim_ts_GetInstanceRq_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_ivim_ts_GetInstanceRq = { + "GetInstanceRq", + "GetInstanceRq", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_GetInstanceRq_tags_1, + sizeof(asn_DEF_ivim_ts_GetInstanceRq_tags_1) + /sizeof(asn_DEF_ivim_ts_GetInstanceRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GetInstanceRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GetInstanceRq_tags_1) + /sizeof(asn_DEF_ivim_ts_GetInstanceRq_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_GetInstanceRq_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_GetInstanceRq_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetInstanceRs.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetInstanceRs.c new file mode 100644 index 000000000..07865868b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetInstanceRs.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GetInstanceRs.h" + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetStampedRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetStampedRq.c new file mode 100644 index 000000000..42fae3e45 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetStampedRq.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GetStampedRq.h" + +static int +memb_ivim_ts_keyRef_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_keyRef_constr_4 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 asn_TYPE_member_t asn_MBR_ivim_ts_GetStampedRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GetStampedRq, attributeIdList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AttributeIdList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributeIdList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GetStampedRq, nonce), + (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 */ + "nonce" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GetStampedRq, keyRef), + (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_ivim_ts_keyRef_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_ivim_ts_keyRef_constraint_1 + }, + 0, 0, /* No default value */ + "keyRef" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_GetStampedRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_GetStampedRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* attributeIdList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nonce */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* keyRef */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GetStampedRq_specs_1 = { + sizeof(struct ivim_ts_GetStampedRq), + offsetof(struct ivim_ts_GetStampedRq, _asn_ctx), + asn_MAP_ivim_ts_GetStampedRq_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_ivim_ts_GetStampedRq = { + "GetStampedRq", + "GetStampedRq", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_GetStampedRq_tags_1, + sizeof(asn_DEF_ivim_ts_GetStampedRq_tags_1) + /sizeof(asn_DEF_ivim_ts_GetStampedRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GetStampedRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GetStampedRq_tags_1) + /sizeof(asn_DEF_ivim_ts_GetStampedRq_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_GetStampedRq_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_GetStampedRq_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetStampedRs.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetStampedRs.c new file mode 100644 index 000000000..ef6496e47 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GetStampedRs.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GetStampedRs.h" + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GicPart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GicPart.c new file mode 100644 index 000000000..3d4ee107a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GicPart.c @@ -0,0 +1,485 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GicPart.h" + +static int +memb_ivim_ts_minimumAwarenessTime_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_layoutId_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 <= 4L)) { + /* 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_ivim_ts_preStoredlayoutId_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 <= 64L)) { + /* 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_ivim_ts_minimumAwarenessTime_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_layoutId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { 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_ivim_ts_preStoredlayoutId_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 1, 64 } /* (1..64,...) */, + { 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_ivim_ts_GicPart_1[] = { + { ATF_POINTER, 7, offsetof(struct ivim_ts_GicPart, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_GicPart, its_Rrid), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_VarLengthNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "its-Rrid" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_GicPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_GicPart, direction), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_GicPart, driverAwarenessZoneIds), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driverAwarenessZoneIds" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_GicPart, minimumAwarenessTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 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_ivim_ts_minimumAwarenessTime_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_ivim_ts_minimumAwarenessTime_constraint_1 + }, + 0, 0, /* No default value */ + "minimumAwarenessTime" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GicPart, applicableLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LanePositions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "applicableLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GicPart, iviType), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iviType" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_GicPart, iviPurpose), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviPurpose, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iviPurpose" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_GicPart, laneStatus), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneStatus" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_GicPart, vehicleCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleCharacteristicsList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleCharacteristics" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_GicPart, driverCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IVI_DriverCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driverCharacteristics" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_GicPart, layoutId), + (ASN_TAG_CLASS_CONTEXT | (12 << 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_ivim_ts_layoutId_constr_14, +#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_ivim_ts_layoutId_constraint_1 + }, + 0, 0, /* No default value */ + "layoutId" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GicPart, preStoredlayoutId), + (ASN_TAG_CLASS_CONTEXT | (13 << 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_ivim_ts_preStoredlayoutId_constr_15, +#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_ivim_ts_preStoredlayoutId_constraint_1 + }, + 0, 0, /* No default value */ + "preStoredlayoutId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GicPart, roadSignCodes), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSignCodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSignCodes" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GicPart, extraText), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ConstraintTextLines1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extraText" + }, +}; +static const int asn_MAP_ivim_ts_GicPart_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 15 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_GicPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_GicPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* its-Rrid */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* driverAwarenessZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* minimumAwarenessTime */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* applicableLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* iviType */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* iviPurpose */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* laneStatus */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* vehicleCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* driverCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* layoutId */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* preStoredlayoutId */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* roadSignCodes */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* extraText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GicPart_specs_1 = { + sizeof(struct ivim_ts_GicPart), + offsetof(struct ivim_ts_GicPart, _asn_ctx), + asn_MAP_ivim_ts_GicPart_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_ivim_ts_GicPart_oms_1, /* Optional members */ + 14, 0, /* Root/Additions */ + 16, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GicPart = { + "GicPart", + "GicPart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_GicPart_tags_1, + sizeof(asn_DEF_ivim_ts_GicPart_tags_1) + /sizeof(asn_DEF_ivim_ts_GicPart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GicPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GicPart_tags_1) + /sizeof(asn_DEF_ivim_ts_GicPart_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_GicPart_1, + 16, /* Elements count */ + &asn_SPC_ivim_ts_GicPart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GlcPart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GlcPart.c new file mode 100644 index 000000000..386a3152b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GlcPart.c @@ -0,0 +1,190 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GlcPart.h" + +static int +memb_ivim_ts_zoneExtension_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_zoneExtension_constr_4 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_GlcPart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_GlcPart, zoneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Zid, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zoneId" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_GlcPart, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_POINTER, 3, offsetof(struct ivim_ts_GlcPart, zoneExtension), + (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_ivim_ts_zoneExtension_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_ivim_ts_zoneExtension_constraint_1 + }, + 0, 0, /* No default value */ + "zoneExtension" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_GlcPart, zoneHeading), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "zoneHeading" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_GlcPart, zone), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_Zone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const int asn_MAP_ivim_ts_GlcPart_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_GlcPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_GlcPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* zoneExtension */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* zoneHeading */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_GlcPart_specs_1 = { + sizeof(struct ivim_ts_GlcPart), + offsetof(struct ivim_ts_GlcPart, _asn_ctx), + asn_MAP_ivim_ts_GlcPart_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_GlcPart_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GlcPart = { + "GlcPart", + "GlcPart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_GlcPart_tags_1, + sizeof(asn_DEF_ivim_ts_GlcPart_tags_1) + /sizeof(asn_DEF_ivim_ts_GlcPart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GlcPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GlcPart_tags_1) + /sizeof(asn_DEF_ivim_ts_GlcPart_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_GlcPart_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_GlcPart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GlcParts.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GlcParts.c new file mode 100644 index 000000000..3c218850c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GlcParts.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GlcParts.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_GlcParts_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_ivim_ts_GlcParts_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_GlcPart, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_GlcParts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_GlcParts_specs_1 = { + sizeof(struct ivim_ts_GlcParts), + offsetof(struct ivim_ts_GlcParts, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GlcParts = { + "GlcParts", + "GlcParts", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_GlcParts_tags_1, + sizeof(asn_DEF_ivim_ts_GlcParts_tags_1) + /sizeof(asn_DEF_ivim_ts_GlcParts_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GlcParts_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GlcParts_tags_1) + /sizeof(asn_DEF_ivim_ts_GlcParts_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_GlcParts_constr_1, +#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_ivim_ts_GlcParts_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_GlcParts_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GoodsType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GoodsType.c new file mode 100644 index 000000000..9e61c11ab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_GoodsType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_GoodsType.h" + +int +ivim_ts_GoodsType_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_ivim_ts_GoodsType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_GoodsType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_GoodsType = { + "GoodsType", + "GoodsType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_GoodsType_tags_1, + sizeof(asn_DEF_ivim_ts_GoodsType_tags_1) + /sizeof(asn_DEF_ivim_ts_GoodsType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_GoodsType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_GoodsType_tags_1) + /sizeof(asn_DEF_ivim_ts_GoodsType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_GoodsType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_GoodsType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HardShoulderStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HardShoulderStatus.c new file mode 100644 index 000000000..f6b6ac0e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HardShoulderStatus.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_ivim_ts_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_HardShoulderStatus_specs_1 = { + asn_MAP_ivim_ts_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_HardShoulderStatus_tags_1, + sizeof(asn_DEF_ivim_ts_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..49777c2d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-DangerousCurveSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 000000000..7a9eda533 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-DangerousCurveSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HazardousLocation_DangerousCurveSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..e3a1007c6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-SurfaceConditionSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 000000000..f52591c05 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HazardousLocation_SurfaceConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Heading.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Heading.c new file mode 100644 index 000000000..5489e1726 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Heading.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Heading.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_Heading_specs_1 = { + sizeof(struct ivim_ts_Heading), + offsetof(struct ivim_ts_Heading, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Heading_tags_1, + sizeof(asn_DEF_ivim_ts_Heading_tags_1) + /sizeof(asn_DEF_ivim_ts_Heading_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Heading_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_Heading_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Heading_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingConfidence.c new file mode 100644 index 000000000..56c18623b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidence.h" + +int +ivim_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_ivim_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_ivim_ts_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HeadingConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_HeadingConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HeadingConfidence_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HeadingConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingConfidenceDSRC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingConfidenceDSRC.c new file mode 100644 index 000000000..fd76dbfa7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingConfidenceDSRC.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingConfidenceDSRC.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_ivim_ts_HeadingConfidenceDSRC_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_ivim_ts_HeadingConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec10deg" }, + { 2, 9, "prec05deg" }, + { 3, 9, "prec01deg" }, + { 4, 10, "prec0-1deg" }, + { 5, 11, "prec0-05deg" }, + { 6, 11, "prec0-01deg" }, + { 7, 13, "prec0-0125deg" } +}; +static const unsigned int asn_MAP_ivim_ts_HeadingConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-0125deg(7) */ + 6, /* prec0-01deg(6) */ + 5, /* prec0-05deg(5) */ + 4, /* prec0-1deg(4) */ + 3, /* prec01deg(3) */ + 2, /* prec05deg(2) */ + 1, /* prec10deg(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_ivim_ts_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_HeadingConfidenceDSRC_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_ivim_ts_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_ivim_ts_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_ivim_ts_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_ivim_ts_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_HeadingConfidenceDSRC_constr_1, +#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_ivim_ts_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingDSRC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingDSRC.c new file mode 100644 index 000000000..d3a9ce4d1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingDSRC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingDSRC.h" + +int +ivim_ts_HeadingDSRC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 28800L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_HeadingDSRC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 28800 } /* (0..28800) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HeadingDSRC_tags_1, + sizeof(asn_DEF_ivim_ts_HeadingDSRC_tags_1) + /sizeof(asn_DEF_ivim_ts_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HeadingDSRC_tags_1) + /sizeof(asn_DEF_ivim_ts_HeadingDSRC_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_HeadingDSRC_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_HeadingDSRC_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingValue.c new file mode 100644 index 000000000..4059fe860 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeadingValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HeadingValue.h" + +int +ivim_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_ivim_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_ivim_ts_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HeadingValue_tags_1, + sizeof(asn_DEF_ivim_ts_HeadingValue_tags_1) + /sizeof(asn_DEF_ivim_ts_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HeadingValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HeadingValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeightLonCarr.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeightLonCarr.c new file mode 100644 index 000000000..6a9730948 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HeightLonCarr.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HeightLonCarr.h" + +int +ivim_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_ivim_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_ivim_ts_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HeightLonCarr_tags_1, + sizeof(asn_DEF_ivim_ts_HeightLonCarr_tags_1) + /sizeof(asn_DEF_ivim_ts_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HeightLonCarr_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HeightLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HoursMinutes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HoursMinutes.c new file mode 100644 index 000000000..3bc42075c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HoursMinutes.c @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HoursMinutes.h" + +static int +memb_ivim_ts_hours_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 <= 23L)) { + /* 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_ivim_ts_mins_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 <= 59L)) { + /* 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_ivim_ts_hours_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 23 } /* (0..23) */, + { 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_ivim_ts_mins_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 59 } /* (0..59) */, + { 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_ivim_ts_HoursMinutes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_HoursMinutes, hours), + (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_ivim_ts_hours_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_ivim_ts_hours_constraint_1 + }, + 0, 0, /* No default value */ + "hours" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_HoursMinutes, mins), + (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_ivim_ts_mins_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_ivim_ts_mins_constraint_1 + }, + 0, 0, /* No default value */ + "mins" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_HoursMinutes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_HoursMinutes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* hours */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* mins */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_HoursMinutes_specs_1 = { + sizeof(struct ivim_ts_HoursMinutes), + offsetof(struct ivim_ts_HoursMinutes, _asn_ctx), + asn_MAP_ivim_ts_HoursMinutes_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_ivim_ts_HoursMinutes = { + "HoursMinutes", + "HoursMinutes", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_HoursMinutes_tags_1, + sizeof(asn_DEF_ivim_ts_HoursMinutes_tags_1) + /sizeof(asn_DEF_ivim_ts_HoursMinutes_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HoursMinutes_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HoursMinutes_tags_1) + /sizeof(asn_DEF_ivim_ts_HoursMinutes_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_HoursMinutes_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_HoursMinutes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HumanPresenceOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..fe3b3a6f9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HumanPresenceOnTheRoadSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HumanPresenceOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HumanProblemSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HumanProblemSubCauseCode.c new file mode 100644 index 000000000..28dd6e6bc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_HumanProblemSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_HumanProblemSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_HumanProblemSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ICC-Id.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ICC-Id.c new file mode 100644 index 000000000..72c61977c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ICC-Id.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ICC-Id.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ICC_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ICC_Id = { + "ICC-Id", + "ICC-Id", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_ICC_Id_tags_1, + sizeof(asn_DEF_ivim_ts_ICC_Id_tags_1) + /sizeof(asn_DEF_ivim_ts_ICC_Id_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ICC_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ICC_Id_tags_1) + /sizeof(asn_DEF_ivim_ts_ICC_Id_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Attribute.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Attribute.c new file mode 100644 index 000000000..1e310f988 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Attribute.c @@ -0,0 +1,223 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attribute.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ISO14823Attribute_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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_ISO14823Attribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Attribute, choice.dtm), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_applicablePeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dtm" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Attribute, choice.edt), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "edt" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Attribute, choice.dfl), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dfl" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Attribute, choice.ved), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ved" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Attribute, choice.spe), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_speedLimits, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "spe" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Attribute, choice.roi), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_rateOfIncline, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roi" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Attribute, choice.dbv), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dbv" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Attribute, choice.ddd), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_destinationInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ddd" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ISO14823Attribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dtm */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* edt */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dfl */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ved */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* spe */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roi */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dbv */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ddd */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_ISO14823Attribute_specs_1 = { + sizeof(struct ivim_ts_ISO14823Attribute), + offsetof(struct ivim_ts_ISO14823Attribute, _asn_ctx), + offsetof(struct ivim_ts_ISO14823Attribute, present), + sizeof(((struct ivim_ts_ISO14823Attribute *)0)->present), + asn_MAP_ivim_ts_ISO14823Attribute_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ISO14823Attribute = { + "ISO14823Attribute", + "ISO14823Attribute", + &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_ivim_ts_ISO14823Attribute_constr_1, +#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_ivim_ts_ISO14823Attribute_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_ISO14823Attribute_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Attributes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Attributes.c new file mode 100644 index 000000000..0533398ca --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Attributes.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ISO14823Attributes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ISO14823Attributes_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_ivim_ts_ISO14823Attributes_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ivim_ts_ISO14823Attribute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_ISO14823Attributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ISO14823Attributes_specs_1 = { + sizeof(struct ivim_ts_ISO14823Attributes), + offsetof(struct ivim_ts_ISO14823Attributes, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ISO14823Attributes = { + "ISO14823Attributes", + "ISO14823Attributes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ISO14823Attributes_tags_1, + sizeof(asn_DEF_ivim_ts_ISO14823Attributes_tags_1) + /sizeof(asn_DEF_ivim_ts_ISO14823Attributes_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ISO14823Attributes_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ISO14823Attributes_tags_1) + /sizeof(asn_DEF_ivim_ts_ISO14823Attributes_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ISO14823Attributes_constr_1, +#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_ivim_ts_ISO14823Attributes_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ISO14823Attributes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Code.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Code.c new file mode 100644 index 000000000..0a927feb1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ISO14823Code.c @@ -0,0 +1,680 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ISO14823Code.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ivim_ts_nature_constraint_18(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 <= 9L)) { + /* 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_ivim_ts_serialNumber_constraint_18(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 <= 99L)) { + /* 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_ivim_ts_countryCode_constraint_2(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 == 2UL)) { + /* 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_type_ivim_ts_trafficSignPictogram_constr_5 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_publicFacilitiesPictogram_constr_10 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_ambientOrRoadConditionPictogram_constr_13 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_serviceCategoryCode_constr_4 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_nature_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (1..9) */, + { 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_ivim_ts_serialNumber_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { 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_ivim_ts_countryCode_constr_3 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 asn_INTEGER_enum_map_t asn_MAP_ivim_ts_trafficSignPictogram_value2enum_5[] = { + { 0, 13, "dangerWarning" }, + { 1, 10, "regulatory" }, + { 2, 11, "informative" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_trafficSignPictogram_enum2value_5[] = { + 0, /* dangerWarning(0) */ + 2, /* informative(2) */ + 1 /* regulatory(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_trafficSignPictogram_specs_5 = { + asn_MAP_ivim_ts_trafficSignPictogram_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_trafficSignPictogram_enum2value_5, /* 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_ivim_ts_trafficSignPictogram_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_trafficSignPictogram_5 = { + "trafficSignPictogram", + "trafficSignPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_trafficSignPictogram_tags_5, + sizeof(asn_DEF_ivim_ts_trafficSignPictogram_tags_5) + /sizeof(asn_DEF_ivim_ts_trafficSignPictogram_tags_5[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_trafficSignPictogram_tags_5, /* Same as above */ + sizeof(asn_DEF_ivim_ts_trafficSignPictogram_tags_5) + /sizeof(asn_DEF_ivim_ts_trafficSignPictogram_tags_5[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_ivim_ts_trafficSignPictogram_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) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ivim_ts_trafficSignPictogram_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ivim_ts_publicFacilitiesPictogram_value2enum_10[] = { + { 0, 16, "publicFacilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_publicFacilitiesPictogram_enum2value_10[] = { + 0 /* publicFacilities(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_publicFacilitiesPictogram_specs_10 = { + asn_MAP_ivim_ts_publicFacilitiesPictogram_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_publicFacilitiesPictogram_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* 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_ivim_ts_publicFacilitiesPictogram_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_publicFacilitiesPictogram_10 = { + "publicFacilitiesPictogram", + "publicFacilitiesPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10, + sizeof(asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10) + /sizeof(asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10, /* Same as above */ + sizeof(asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10) + /sizeof(asn_DEF_ivim_ts_publicFacilitiesPictogram_tags_10[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_ivim_ts_publicFacilitiesPictogram_constr_10, +#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_ivim_ts_publicFacilitiesPictogram_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ivim_ts_ambientOrRoadConditionPictogram_value2enum_13[] = { + { 0, 16, "ambientCondition" }, + { 1, 13, "roadCondition" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_ambientOrRoadConditionPictogram_enum2value_13[] = { + 0, /* ambientCondition(0) */ + 1 /* roadCondition(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ambientOrRoadConditionPictogram_specs_13 = { + asn_MAP_ivim_ts_ambientOrRoadConditionPictogram_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_ambientOrRoadConditionPictogram_enum2value_13, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_13 = { + "ambientOrRoadConditionPictogram", + "ambientOrRoadConditionPictogram", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13, + sizeof(asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13) + /sizeof(asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13) + /sizeof(asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_tags_13[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_ivim_ts_ambientOrRoadConditionPictogram_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) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ivim_ts_ambientOrRoadConditionPictogram_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_serviceCategoryCode_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode, choice.trafficSignPictogram), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_trafficSignPictogram_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 */ + "trafficSignPictogram" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode, choice.publicFacilitiesPictogram), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_publicFacilitiesPictogram_10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "publicFacilitiesPictogram" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode, choice.ambientOrRoadConditionPictogram), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ambientOrRoadConditionPictogram_13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ambientOrRoadConditionPictogram" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_serviceCategoryCode_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trafficSignPictogram */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* publicFacilitiesPictogram */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ambientOrRoadConditionPictogram */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_serviceCategoryCode_specs_4 = { + sizeof(struct ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode), + offsetof(struct ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode, _asn_ctx), + offsetof(struct ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode, present), + sizeof(((struct ivim_ts_ISO14823Code__pictogramCode__serviceCategoryCode *)0)->present), + asn_MAP_ivim_ts_serviceCategoryCode_tag2el_4, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_serviceCategoryCode_4 = { + "serviceCategoryCode", + "serviceCategoryCode", + &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_ivim_ts_serviceCategoryCode_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) */ + CHOICE_constraint + }, + asn_MBR_ivim_ts_serviceCategoryCode_4, + 3, /* Elements count */ + &asn_SPC_ivim_ts_serviceCategoryCode_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_pictogramCategoryCode_18[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Code__pictogramCode__pictogramCategoryCode, nature), + (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_ivim_ts_nature_constr_19, +#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_ivim_ts_nature_constraint_18 + }, + 0, 0, /* No default value */ + "nature" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Code__pictogramCode__pictogramCategoryCode, serialNumber), + (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_ivim_ts_serialNumber_constr_20, +#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_ivim_ts_serialNumber_constraint_18 + }, + 0, 0, /* No default value */ + "serialNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_pictogramCategoryCode_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_pictogramCategoryCode_tag2el_18[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nature */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* serialNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_pictogramCategoryCode_specs_18 = { + sizeof(struct ivim_ts_ISO14823Code__pictogramCode__pictogramCategoryCode), + offsetof(struct ivim_ts_ISO14823Code__pictogramCode__pictogramCategoryCode, _asn_ctx), + asn_MAP_ivim_ts_pictogramCategoryCode_tag2el_18, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_pictogramCategoryCode_18 = { + "pictogramCategoryCode", + "pictogramCategoryCode", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_pictogramCategoryCode_tags_18, + sizeof(asn_DEF_ivim_ts_pictogramCategoryCode_tags_18) + /sizeof(asn_DEF_ivim_ts_pictogramCategoryCode_tags_18[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_pictogramCategoryCode_tags_18, /* Same as above */ + sizeof(asn_DEF_ivim_ts_pictogramCategoryCode_tags_18) + /sizeof(asn_DEF_ivim_ts_pictogramCategoryCode_tags_18[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_ivim_ts_pictogramCategoryCode_18, + 2, /* Elements count */ + &asn_SPC_ivim_ts_pictogramCategoryCode_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_pictogramCode_2[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_ISO14823Code__pictogramCode, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_ivim_ts_countryCode_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_ivim_ts_countryCode_constraint_2 + }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Code__pictogramCode, serviceCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_serviceCategoryCode_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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "serviceCategoryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Code__pictogramCode, pictogramCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ivim_ts_pictogramCategoryCode_18, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pictogramCategoryCode" + }, +}; +static const int asn_MAP_ivim_ts_pictogramCode_oms_2[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_pictogramCode_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_pictogramCode_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serviceCategoryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pictogramCategoryCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_pictogramCode_specs_2 = { + sizeof(struct ivim_ts_ISO14823Code__pictogramCode), + offsetof(struct ivim_ts_ISO14823Code__pictogramCode, _asn_ctx), + asn_MAP_ivim_ts_pictogramCode_tag2el_2, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_pictogramCode_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_pictogramCode_2 = { + "pictogramCode", + "pictogramCode", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_pictogramCode_tags_2, + sizeof(asn_DEF_ivim_ts_pictogramCode_tags_2) + /sizeof(asn_DEF_ivim_ts_pictogramCode_tags_2[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_pictogramCode_tags_2, /* Same as above */ + sizeof(asn_DEF_ivim_ts_pictogramCode_tags_2) + /sizeof(asn_DEF_ivim_ts_pictogramCode_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) + 0, +#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_ivim_ts_pictogramCode_2, + 3, /* Elements count */ + &asn_SPC_ivim_ts_pictogramCode_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_ISO14823Code_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ISO14823Code, pictogramCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ivim_ts_pictogramCode_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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pictogramCode" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_ISO14823Code, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ISO14823Attributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_ivim_ts_ISO14823Code_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ISO14823Code_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ISO14823Code_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pictogramCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ISO14823Code_specs_1 = { + sizeof(struct ivim_ts_ISO14823Code), + offsetof(struct ivim_ts_ISO14823Code, _asn_ctx), + asn_MAP_ivim_ts_ISO14823Code_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_ISO14823Code_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ISO14823Code = { + "ISO14823Code", + "ISO14823Code", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ISO14823Code_tags_1, + sizeof(asn_DEF_ivim_ts_ISO14823Code_tags_1) + /sizeof(asn_DEF_ivim_ts_ISO14823Code_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ISO14823Code_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ISO14823Code_tags_1) + /sizeof(asn_DEF_ivim_ts_ISO14823Code_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ISO14823Code_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_ISO14823Code_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ITS-Container_StationType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ITS-Container_StationType.c new file mode 100644 index 000000000..b00fde5d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ITS-Container_StationType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_StationType.h" + +int +ivim_ts_ITS_Container_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_ivim_ts_ITS_Container_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_ivim_ts_ITS_Container_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ITS_Container_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ITS_Container_StationType_tags_1, + sizeof(asn_DEF_ivim_ts_ITS_Container_StationType_tags_1) + /sizeof(asn_DEF_ivim_ts_ITS_Container_StationType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ITS_Container_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ITS_Container_StationType_tags_1) + /sizeof(asn_DEF_ivim_ts_ITS_Container_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_ivim_ts_ITS_Container_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) */ + ivim_ts_ITS_Container_StationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ITS-Container_Temperature.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ITS-Container_Temperature.c new file mode 100644 index 000000000..db7b21cff --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ITS-Container_Temperature.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ITS-Container_Temperature.h" + +int +ivim_ts_ITS_Container_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_ivim_ts_ITS_Container_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_ivim_ts_ITS_Container_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ITS_Container_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ITS_Container_Temperature_tags_1, + sizeof(asn_DEF_ivim_ts_ITS_Container_Temperature_tags_1) + /sizeof(asn_DEF_ivim_ts_ITS_Container_Temperature_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ITS_Container_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ITS_Container_Temperature_tags_1) + /sizeof(asn_DEF_ivim_ts_ITS_Container_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_ivim_ts_ITS_Container_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) */ + ivim_ts_ITS_Container_Temperature_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVIM.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVIM.c new file mode 100644 index 000000000..901562244 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVIM.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVIM-PDU-Descriptions" + * found in "/input/IVIM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IVIM.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_IVIM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IVIM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IVIM, ivi), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviStructure, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ivi" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IVIM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IVIM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ivi */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IVIM_specs_1 = { + sizeof(struct ivim_ts_IVIM), + offsetof(struct ivim_ts_IVIM, _asn_ctx), + asn_MAP_ivim_ts_IVIM_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_ivim_ts_IVIM = { + "IVIM", + "IVIM", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_IVIM_tags_1, + sizeof(asn_DEF_ivim_ts_IVIM_tags_1) + /sizeof(asn_DEF_ivim_ts_IVIM_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IVIM_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IVIM_tags_1) + /sizeof(asn_DEF_ivim_ts_IVIM_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_IVIM_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_IVIM_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_DriverCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_DriverCharacteristics.c new file mode 100644 index 000000000..258ceec08 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_DriverCharacteristics.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IVI_DriverCharacteristics.h" + +int +ivim_ts_IVI_DriverCharacteristics_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_ivim_ts_IVI_DriverCharacteristics_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_ivim_ts_IVI_DriverCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IVI_DriverCharacteristics = { + "DriverCharacteristics", + "DriverCharacteristics", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IVI_DriverCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_IVI_DriverCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_IVI_DriverCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IVI_DriverCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IVI_DriverCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_IVI_DriverCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IVI_DriverCharacteristics_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_IVI_DriverCharacteristics_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_Temperature.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_Temperature.c new file mode 100644 index 000000000..fc2b89b78 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_Temperature.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IVI_Temperature.h" + +int +ivim_ts_IVI_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 >= -100L && value <= 151L)) { + /* 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_ivim_ts_IVI_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -100, 151 } /* (-100..151) */, + { 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_ivim_ts_IVI_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IVI_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IVI_Temperature_tags_1, + sizeof(asn_DEF_ivim_ts_IVI_Temperature_tags_1) + /sizeof(asn_DEF_ivim_ts_IVI_Temperature_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IVI_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IVI_Temperature_tags_1) + /sizeof(asn_DEF_ivim_ts_IVI_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_ivim_ts_IVI_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) */ + ivim_ts_IVI_Temperature_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_TrailerCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_TrailerCharacteristics.c new file mode 100644 index 000000000..40620f8e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IVI_TrailerCharacteristics.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IVI_TrailerCharacteristics.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_IVI_TrailerCharacteristics_1[] = { + { ATF_POINTER, 3, offsetof(struct ivim_ts_IVI_TrailerCharacteristics, equalTo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "equalTo" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_IVI_TrailerCharacteristics, notEqualTo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notEqualTo" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_IVI_TrailerCharacteristics, ranges), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TrailerCharacteristicsRangesList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranges" + }, +}; +static const int asn_MAP_ivim_ts_IVI_TrailerCharacteristics_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IVI_TrailerCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IVI_TrailerCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* equalTo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* notEqualTo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranges */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IVI_TrailerCharacteristics_specs_1 = { + sizeof(struct ivim_ts_IVI_TrailerCharacteristics), + offsetof(struct ivim_ts_IVI_TrailerCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_IVI_TrailerCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_IVI_TrailerCharacteristics_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IVI_TrailerCharacteristics = { + "TrailerCharacteristics", + "TrailerCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_IVI_TrailerCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_IVI_TrailerCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_IVI_TrailerCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IVI_TrailerCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IVI_TrailerCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_IVI_TrailerCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_IVI_TrailerCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_IVI_TrailerCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InformationQuality.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InformationQuality.c new file mode 100644 index 000000000..352079742 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InformationQuality.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InformationQuality.h" + +int +ivim_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_ivim_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_ivim_ts_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_InformationQuality_tags_1, + sizeof(asn_DEF_ivim_ts_InformationQuality_tags_1) + /sizeof(asn_DEF_ivim_ts_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InformationQuality_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_InformationQuality_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int1.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int1.c new file mode 100644 index 000000000..042cec347 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int1.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Int1.h" + +int +ivim_ts_Int1_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_ivim_ts_Int1_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_ivim_ts_Int1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Int1 = { + "Int1", + "Int1", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Int1_tags_1, + sizeof(asn_DEF_ivim_ts_Int1_tags_1) + /sizeof(asn_DEF_ivim_ts_Int1_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Int1_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Int1_tags_1) + /sizeof(asn_DEF_ivim_ts_Int1_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Int1_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Int1_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int2.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int2.c new file mode 100644 index 000000000..306f70df6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int2.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Int2.h" + +int +ivim_ts_Int2_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_ivim_ts_Int2_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_ivim_ts_Int2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Int2 = { + "Int2", + "Int2", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Int2_tags_1, + sizeof(asn_DEF_ivim_ts_Int2_tags_1) + /sizeof(asn_DEF_ivim_ts_Int2_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Int2_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Int2_tags_1) + /sizeof(asn_DEF_ivim_ts_Int2_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Int2_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Int2_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int3.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int3.c new file mode 100644 index 000000000..5cb0c65a3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int3.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Int3.h" + +int +ivim_ts_Int3_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 <= 16777215L)) { + /* 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_ivim_ts_Int3_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */, + { 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_ivim_ts_Int3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Int3 = { + "Int3", + "Int3", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Int3_tags_1, + sizeof(asn_DEF_ivim_ts_Int3_tags_1) + /sizeof(asn_DEF_ivim_ts_Int3_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Int3_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Int3_tags_1) + /sizeof(asn_DEF_ivim_ts_Int3_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Int3_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Int3_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int4.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int4.c new file mode 100644 index 000000000..20b460075 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Int4.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Int4.h" + +int +ivim_ts_Int4_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_ivim_ts_Int4_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_ivim_ts_Int4_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Int4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Int4 = { + "Int4", + "Int4", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Int4_tags_1, + sizeof(asn_DEF_ivim_ts_Int4_tags_1) + /sizeof(asn_DEF_ivim_ts_Int4_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Int4_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Int4_tags_1) + /sizeof(asn_DEF_ivim_ts_Int4_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Int4_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Int4_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_Int4_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-applicablePeriod.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-applicablePeriod.c new file mode 100644 index 000000000..9d69a9dfa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-applicablePeriod.c @@ -0,0 +1,501 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicablePeriod.h" + +static int +memb_ivim_ts_yearRangeStartYear_constraint_2(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 >= 2000L && value <= 2127L)) { + /* 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_ivim_ts_yearRangeEndYear_constraint_2(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 >= 2000L && value <= 2127L)) { + /* 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_ivim_ts_yearRangeStartYear_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 2000, 2127 } /* (2000..2127,...) */, + { 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_ivim_ts_yearRangeEndYear_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 2000, 2127 } /* (2000..2127,...) */, + { 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_ivim_ts_year_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_InternationalSign_applicablePeriod__year, yearRangeStartYear), + (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_ivim_ts_yearRangeStartYear_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_ivim_ts_yearRangeStartYear_constraint_2 + }, + 0, 0, /* No default value */ + "yearRangeStartYear" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_InternationalSign_applicablePeriod__year, yearRangeEndYear), + (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_ivim_ts_yearRangeEndYear_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_ivim_ts_yearRangeEndYear_constraint_2 + }, + 0, 0, /* No default value */ + "yearRangeEndYear" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_year_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_year_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yearRangeStartYear */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yearRangeEndYear */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_year_specs_2 = { + sizeof(struct ivim_ts_InternationalSign_applicablePeriod__year), + offsetof(struct ivim_ts_InternationalSign_applicablePeriod__year, _asn_ctx), + asn_MAP_ivim_ts_year_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_year_2 = { + "year", + "year", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_year_tags_2, + sizeof(asn_DEF_ivim_ts_year_tags_2) + /sizeof(asn_DEF_ivim_ts_year_tags_2[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_year_tags_2, /* Same as above */ + sizeof(asn_DEF_ivim_ts_year_tags_2) + /sizeof(asn_DEF_ivim_ts_year_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) + 0, +#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_ivim_ts_year_2, + 2, /* Elements count */ + &asn_SPC_ivim_ts_year_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_month_day_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_InternationalSign_applicablePeriod__month_day, dateRangeStartMonthDay), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MonthDay, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dateRangeStartMonthDay" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_InternationalSign_applicablePeriod__month_day, dateRangeEndMonthDay), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MonthDay, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dateRangeEndMonthDay" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_month_day_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_month_day_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dateRangeStartMonthDay */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dateRangeEndMonthDay */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_month_day_specs_5 = { + sizeof(struct ivim_ts_InternationalSign_applicablePeriod__month_day), + offsetof(struct ivim_ts_InternationalSign_applicablePeriod__month_day, _asn_ctx), + asn_MAP_ivim_ts_month_day_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_month_day_5 = { + "month-day", + "month-day", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_month_day_tags_5, + sizeof(asn_DEF_ivim_ts_month_day_tags_5) + /sizeof(asn_DEF_ivim_ts_month_day_tags_5[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_month_day_tags_5, /* Same as above */ + sizeof(asn_DEF_ivim_ts_month_day_tags_5) + /sizeof(asn_DEF_ivim_ts_month_day_tags_5[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_ivim_ts_month_day_5, + 2, /* Elements count */ + &asn_SPC_ivim_ts_month_day_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_hourMinutes_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_InternationalSign_applicablePeriod__hourMinutes, timeRangeStartTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_HoursMinutes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeRangeStartTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_InternationalSign_applicablePeriod__hourMinutes, timeRangeEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_HoursMinutes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeRangeEndTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_hourMinutes_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_hourMinutes_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeRangeStartTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* timeRangeEndTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_hourMinutes_specs_9 = { + sizeof(struct ivim_ts_InternationalSign_applicablePeriod__hourMinutes), + offsetof(struct ivim_ts_InternationalSign_applicablePeriod__hourMinutes, _asn_ctx), + asn_MAP_ivim_ts_hourMinutes_tag2el_9, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_hourMinutes_9 = { + "hourMinutes", + "hourMinutes", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_hourMinutes_tags_9, + sizeof(asn_DEF_ivim_ts_hourMinutes_tags_9) + /sizeof(asn_DEF_ivim_ts_hourMinutes_tags_9[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_hourMinutes_tags_9, /* Same as above */ + sizeof(asn_DEF_ivim_ts_hourMinutes_tags_9) + /sizeof(asn_DEF_ivim_ts_hourMinutes_tags_9[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_ivim_ts_hourMinutes_9, + 2, /* Elements count */ + &asn_SPC_ivim_ts_hourMinutes_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_applicablePeriod_1[] = { + { ATF_POINTER, 6, offsetof(struct ivim_ts_InternationalSign_applicablePeriod, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ivim_ts_year_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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "year" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_InternationalSign_applicablePeriod, month_day), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ivim_ts_month_day_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 */ + "month-day" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_InternationalSign_applicablePeriod, repeatingPeriodDayTypes), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RepeatingPeriodDayTypes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "repeatingPeriodDayTypes" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_InternationalSign_applicablePeriod, hourMinutes), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ivim_ts_hourMinutes_9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hourMinutes" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_InternationalSign_applicablePeriod, dateRangeOfWeek), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DayOfWeek, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dateRangeOfWeek" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_InternationalSign_applicablePeriod, durationHourMinute), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_HoursMinutes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "durationHourMinute" + }, +}; +static const int asn_MAP_ivim_ts_InternationalSign_applicablePeriod_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_InternationalSign_applicablePeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_InternationalSign_applicablePeriod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* year */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* month-day */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* repeatingPeriodDayTypes */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hourMinutes */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dateRangeOfWeek */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* durationHourMinute */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_applicablePeriod_specs_1 = { + sizeof(struct ivim_ts_InternationalSign_applicablePeriod), + offsetof(struct ivim_ts_InternationalSign_applicablePeriod, _asn_ctx), + asn_MAP_ivim_ts_InternationalSign_applicablePeriod_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_InternationalSign_applicablePeriod_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_applicablePeriod = { + "InternationalSign-applicablePeriod", + "InternationalSign-applicablePeriod", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_InternationalSign_applicablePeriod_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_applicablePeriod_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_applicablePeriod_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_applicablePeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_applicablePeriod_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_applicablePeriod_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_InternationalSign_applicablePeriod_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_InternationalSign_applicablePeriod_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-applicableVehicleDimensions.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-applicableVehicleDimensions.c new file mode 100644 index 000000000..46c707d0b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-applicableVehicleDimensions.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-applicableVehicleDimensions.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_applicableVehicleDimensions_1[] = { + { ATF_POINTER, 4, offsetof(struct ivim_ts_InternationalSign_applicableVehicleDimensions, vehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Distance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleHeight" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_InternationalSign_applicableVehicleDimensions, vehicleWidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Distance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_POINTER, 2, offsetof(struct ivim_ts_InternationalSign_applicableVehicleDimensions, vehicleLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Distance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_POINTER, 1, offsetof(struct ivim_ts_InternationalSign_applicableVehicleDimensions, vehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Weight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleWeight" + }, +}; +static const int asn_MAP_ivim_ts_InternationalSign_applicableVehicleDimensions_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_InternationalSign_applicableVehicleDimensions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vehicleWidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vehicleLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* vehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_applicableVehicleDimensions_specs_1 = { + sizeof(struct ivim_ts_InternationalSign_applicableVehicleDimensions), + offsetof(struct ivim_ts_InternationalSign_applicableVehicleDimensions, _asn_ctx), + asn_MAP_ivim_ts_InternationalSign_applicableVehicleDimensions_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_InternationalSign_applicableVehicleDimensions_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions = { + "InternationalSign-applicableVehicleDimensions", + "InternationalSign-applicableVehicleDimensions", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_applicableVehicleDimensions_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_InternationalSign_applicableVehicleDimensions_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_InternationalSign_applicableVehicleDimensions_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-destinationInformation.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-destinationInformation.c new file mode 100644 index 000000000..4a730a296 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-destinationInformation.c @@ -0,0 +1,233 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-destinationInformation.h" + +static int +memb_ivim_ts_junctionDirection_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 <= 128L)) { + /* 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_ivim_ts_roundaboutCwDirection_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 <= 128L)) { + /* 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_ivim_ts_roundaboutCcwDirection_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 <= 128L)) { + /* 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_ivim_ts_junctionDirection_constr_2 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_roundaboutCwDirection_constr_3 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_roundaboutCcwDirection_constr_4 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_destinationInformation_1[] = { + { ATF_POINTER, 3, offsetof(struct ivim_ts_InternationalSign_destinationInformation, junctionDirection), + (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_ivim_ts_junctionDirection_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_ivim_ts_junctionDirection_constraint_1 + }, + 0, 0, /* No default value */ + "junctionDirection" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_InternationalSign_destinationInformation, roundaboutCwDirection), + (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_ivim_ts_roundaboutCwDirection_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_ivim_ts_roundaboutCwDirection_constraint_1 + }, + 0, 0, /* No default value */ + "roundaboutCwDirection" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_InternationalSign_destinationInformation, roundaboutCcwDirection), + (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_ivim_ts_roundaboutCcwDirection_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_ivim_ts_roundaboutCcwDirection_constraint_1 + }, + 0, 0, /* No default value */ + "roundaboutCcwDirection" + }, + { ATF_POINTER, 0, offsetof(struct ivim_ts_InternationalSign_destinationInformation, ioList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DDD_IO_LIST, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ioList" + }, +}; +static const int asn_MAP_ivim_ts_InternationalSign_destinationInformation_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_InternationalSign_destinationInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_InternationalSign_destinationInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* junctionDirection */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roundaboutCwDirection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* roundaboutCcwDirection */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ioList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_destinationInformation_specs_1 = { + sizeof(struct ivim_ts_InternationalSign_destinationInformation), + offsetof(struct ivim_ts_InternationalSign_destinationInformation, _asn_ctx), + asn_MAP_ivim_ts_InternationalSign_destinationInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_InternationalSign_destinationInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_destinationInformation = { + "InternationalSign-destinationInformation", + "InternationalSign-destinationInformation", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_InternationalSign_destinationInformation_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_destinationInformation_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_destinationInformation_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_destinationInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_destinationInformation_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_destinationInformation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_InternationalSign_destinationInformation_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_InternationalSign_destinationInformation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-directionalFlowOfLane.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-directionalFlowOfLane.c new file mode 100644 index 000000000..24883cc9e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-directionalFlowOfLane.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-directionalFlowOfLane.h" + +int +ivim_ts_InternationalSign_directionalFlowOfLane_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_ivim_ts_InternationalSign_directionalFlowOfLane_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_ivim_ts_InternationalSign_directionalFlowOfLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane = { + "InternationalSign-directionalFlowOfLane", + "InternationalSign-directionalFlowOfLane", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_directionalFlowOfLane_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_InternationalSign_directionalFlowOfLane_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_InternationalSign_directionalFlowOfLane_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-distanceBetweenVehicles.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-distanceBetweenVehicles.c new file mode 100644 index 000000000..0c7688fe3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-distanceBetweenVehicles.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-distanceBetweenVehicles.h" + +/* + * This type is implemented using ivim_ts_Distance, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles = { + "InternationalSign-distanceBetweenVehicles", + "InternationalSign-distanceBetweenVehicles", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_distanceBetweenVehicles_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Distance_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Distance_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-exemptedApplicablePeriod.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-exemptedApplicablePeriod.c new file mode 100644 index 000000000..60760d743 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-exemptedApplicablePeriod.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-exemptedApplicablePeriod.h" + +/* + * This type is implemented using ivim_ts_InternationalSign_applicablePeriod, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod = { + "InternationalSign-exemptedApplicablePeriod", + "InternationalSign-exemptedApplicablePeriod", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_exemptedApplicablePeriod_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_InternationalSign_applicablePeriod_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_InternationalSign_applicablePeriod_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-numberOfLane.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-numberOfLane.c new file mode 100644 index 000000000..949938ea6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-numberOfLane.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-numberOfLane.h" + +int +ivim_ts_InternationalSign_numberOfLane_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 <= 99L)) { + /* 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_ivim_ts_InternationalSign_numberOfLane_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 99 } /* (0..99) */, + { 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_ivim_ts_InternationalSign_numberOfLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_numberOfLane = { + "InternationalSign-numberOfLane", + "InternationalSign-numberOfLane", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_InternationalSign_numberOfLane_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_numberOfLane_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_numberOfLane_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_numberOfLane_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_numberOfLane_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_numberOfLane_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_InternationalSign_numberOfLane_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_InternationalSign_numberOfLane_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-rateOfIncline.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-rateOfIncline.c new file mode 100644 index 000000000..b6caeea35 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-rateOfIncline.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-rateOfIncline.h" + +int +ivim_ts_InternationalSign_rateOfIncline_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_ivim_ts_InternationalSign_rateOfIncline_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_ivim_ts_InternationalSign_rateOfIncline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_rateOfIncline = { + "InternationalSign-rateOfIncline", + "InternationalSign-rateOfIncline", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_InternationalSign_rateOfIncline_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_rateOfIncline_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_rateOfIncline_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_rateOfIncline_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_rateOfIncline_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_rateOfIncline_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_InternationalSign_rateOfIncline_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_InternationalSign_rateOfIncline_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-section.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-section.c new file mode 100644 index 000000000..fc879b70e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-section.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-section.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_InternationalSign_section_1[] = { + { ATF_POINTER, 2, offsetof(struct ivim_ts_InternationalSign_section, startingPointLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Distance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startingPointLength" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_InternationalSign_section, continuityLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Distance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "continuityLength" + }, +}; +static const int asn_MAP_ivim_ts_InternationalSign_section_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_InternationalSign_section_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_InternationalSign_section_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startingPointLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* continuityLength */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_section_specs_1 = { + sizeof(struct ivim_ts_InternationalSign_section), + offsetof(struct ivim_ts_InternationalSign_section, _asn_ctx), + asn_MAP_ivim_ts_InternationalSign_section_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_InternationalSign_section_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_section = { + "InternationalSign-section", + "InternationalSign-section", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_InternationalSign_section_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_section_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_section_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_section_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_section_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_section_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_InternationalSign_section_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_InternationalSign_section_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-speedLimits.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-speedLimits.c new file mode 100644 index 000000000..9bb9045d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_InternationalSign-speedLimits.c @@ -0,0 +1,212 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_InternationalSign-speedLimits.h" + +static int +memb_ivim_ts_speedLimitMax_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 <= 250L)) { + /* 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_ivim_ts_speedLimitMin_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 <= 250L)) { + /* 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_ivim_ts_unit_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 <= 1L)) { + /* 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_ivim_ts_speedLimitMax_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 250 } /* (0..250) */, + { 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_ivim_ts_speedLimitMin_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 250 } /* (0..250) */, + { 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_ivim_ts_unit_constr_4 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_ivim_ts_InternationalSign_speedLimits_1[] = { + { ATF_POINTER, 2, offsetof(struct ivim_ts_InternationalSign_speedLimits, speedLimitMax), + (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_ivim_ts_speedLimitMax_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_ivim_ts_speedLimitMax_constraint_1 + }, + 0, 0, /* No default value */ + "speedLimitMax" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_InternationalSign_speedLimits, speedLimitMin), + (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_ivim_ts_speedLimitMin_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_ivim_ts_speedLimitMin_constraint_1 + }, + 0, 0, /* No default value */ + "speedLimitMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_InternationalSign_speedLimits, unit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Code_Units, + 0, + { +#if !defined(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_ivim_ts_unit_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_ivim_ts_unit_constraint_1 + }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const int asn_MAP_ivim_ts_InternationalSign_speedLimits_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_InternationalSign_speedLimits_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_InternationalSign_speedLimits_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedLimitMax */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* speedLimitMin */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_InternationalSign_speedLimits_specs_1 = { + sizeof(struct ivim_ts_InternationalSign_speedLimits), + offsetof(struct ivim_ts_InternationalSign_speedLimits, _asn_ctx), + asn_MAP_ivim_ts_InternationalSign_speedLimits_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_InternationalSign_speedLimits_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_InternationalSign_speedLimits = { + "InternationalSign-speedLimits", + "InternationalSign-speedLimits", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_InternationalSign_speedLimits_tags_1, + sizeof(asn_DEF_ivim_ts_InternationalSign_speedLimits_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_speedLimits_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_InternationalSign_speedLimits_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_InternationalSign_speedLimits_tags_1) + /sizeof(asn_DEF_ivim_ts_InternationalSign_speedLimits_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_InternationalSign_speedLimits_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_InternationalSign_speedLimits_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionAccessPoint.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionAccessPoint.c new file mode 100644 index 000000000..4fbed3eb4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionAccessPoint.c @@ -0,0 +1,118 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionAccessPoint.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_IntersectionAccessPoint_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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ApproachID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "approach" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneConnectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IntersectionAccessPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* approach */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connection */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_IntersectionAccessPoint_specs_1 = { + sizeof(struct ivim_ts_IntersectionAccessPoint), + offsetof(struct ivim_ts_IntersectionAccessPoint, _asn_ctx), + offsetof(struct ivim_ts_IntersectionAccessPoint, present), + sizeof(((struct ivim_ts_IntersectionAccessPoint *)0)->present), + asn_MAP_ivim_ts_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionAccessPoint = { + "IntersectionAccessPoint", + "IntersectionAccessPoint", + &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_ivim_ts_IntersectionAccessPoint_constr_1, +#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_ivim_ts_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionGeometry.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionGeometry.c new file mode 100644 index 000000000..f4be3990e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionGeometry.c @@ -0,0 +1,341 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometry.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_10 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_ivim_ts_regional_constr_10 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_ivim_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_IntersectionGeometry, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_10 = { + sizeof(struct ivim_ts_IntersectionGeometry__regional), + offsetof(struct ivim_ts_IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_10, + sizeof(asn_DEF_ivim_ts_regional_tags_10) + /sizeof(asn_DEF_ivim_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_10) + /sizeof(asn_DEF_ivim_ts_regional_tags_10[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_ivim_ts_regional_constr_10, +#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_ivim_ts_regional_10, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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, 1, offsetof(struct ivim_ts_IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SpeedLimitList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneSet" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PreemptPriorityList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "preemptPriorityData" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ivim_ts_regional_10, + 0, + { +#if !defined(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_ivim_ts_regional_constr_10, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IntersectionGeometry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preemptPriorityData */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IntersectionGeometry_specs_1 = { + sizeof(struct ivim_ts_IntersectionGeometry), + offsetof(struct ivim_ts_IntersectionGeometry, _asn_ctx), + asn_MAP_ivim_ts_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ivim_ts_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_IntersectionGeometry_tags_1, + sizeof(asn_DEF_ivim_ts_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionGeometry_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_ivim_ts_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionGeometryList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionGeometryList.c new file mode 100644 index 000000000..b48f6279f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionGeometryList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionGeometryList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_IntersectionGeometryList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_IntersectionGeometry, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_IntersectionGeometryList_specs_1 = { + sizeof(struct ivim_ts_IntersectionGeometryList), + offsetof(struct ivim_ts_IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_ivim_ts_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionGeometryList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IntersectionGeometryList_constr_1, +#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_ivim_ts_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionID.c new file mode 100644 index 000000000..d773fea2e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionID.h" + +int +ivim_ts_IntersectionID_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_ivim_ts_IntersectionID_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_ivim_ts_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IntersectionID_tags_1, + sizeof(asn_DEF_ivim_ts_IntersectionID_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IntersectionID_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IntersectionID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_IntersectionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionReferenceID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionReferenceID.c new file mode 100644 index 000000000..f9089ff38 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionReferenceID.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadRegulatorID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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 ivim_ts_IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_IntersectionReferenceID_specs_1 = { + sizeof(struct ivim_ts_IntersectionReferenceID), + offsetof(struct ivim_ts_IntersectionReferenceID, _asn_ctx), + asn_MAP_ivim_ts_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_ivim_ts_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionState-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionState-addGrpC.c new file mode 100644 index 000000000..29f118317 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionState-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionState-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PrioritizationResponseList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "activePrioritizations" + }, +}; +static const int asn_MAP_ivim_ts_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IntersectionState_addGrpC_specs_1 = { + sizeof(struct ivim_ts_IntersectionState_addGrpC), + offsetof(struct ivim_ts_IntersectionState_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ivim_ts_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ivim_ts_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionState.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionState.c new file mode 100644 index 000000000..f05aafdcb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionState.c @@ -0,0 +1,362 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionState.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_11 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_ivim_ts_regional_constr_11 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_ivim_ts_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_IntersectionState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_11 = { + sizeof(struct ivim_ts_IntersectionState__regional), + offsetof(struct ivim_ts_IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_11, + sizeof(asn_DEF_ivim_ts_regional_tags_11) + /sizeof(asn_DEF_ivim_ts_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_11) + /sizeof(asn_DEF_ivim_ts_regional_tags_11[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_ivim_ts_regional_constr_11, +#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_ivim_ts_regional_11, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionStatusObject, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "moy" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_EnabledLaneList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "enabledLanes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MovementList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "states" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ManeuverAssistList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ivim_ts_regional_11, + 0, + { +#if !defined(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_ivim_ts_regional_constr_11, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IntersectionState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* enabledLanes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* states */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IntersectionState_specs_1 = { + sizeof(struct ivim_ts_IntersectionState), + offsetof(struct ivim_ts_IntersectionState, _asn_ctx), + asn_MAP_ivim_ts_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ivim_ts_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_IntersectionState_tags_1, + sizeof(asn_DEF_ivim_ts_IntersectionState_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IntersectionState_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionState_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_ivim_ts_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionStateList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionStateList.c new file mode 100644 index 000000000..49205d5ba --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionStateList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionStateList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_IntersectionStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_IntersectionState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_IntersectionStateList_specs_1 = { + sizeof(struct ivim_ts_IntersectionStateList), + offsetof(struct ivim_ts_IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_IntersectionStateList_tags_1, + sizeof(asn_DEF_ivim_ts_IntersectionStateList_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IntersectionStateList_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionStateList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IntersectionStateList_constr_1, +#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_ivim_ts_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionStatusObject.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionStatusObject.c new file mode 100644 index 000000000..5d82d801f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IntersectionStatusObject.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IntersectionStatusObject.h" + +int +ivim_ts_IntersectionStatusObject_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_ivim_ts_IntersectionStatusObject_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_ivim_ts_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_ivim_ts_IntersectionStatusObject_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IntersectionStatusObject_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_IntersectionStatusObject_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Iso3833VehicleType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Iso3833VehicleType.c new file mode 100644 index 000000000..25cf8ae23 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Iso3833VehicleType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ElectronicRegistrationIdentificationVehicleDataModule" + * found in "/input/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Iso3833VehicleType.h" + +int +ivim_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) +asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_ivim_ts_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_ivim_ts_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_Iso3833VehicleType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IssuerIdentifier.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IssuerIdentifier.c new file mode 100644 index 000000000..9a19df37f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IssuerIdentifier.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IssuerIdentifier.h" + +int +ivim_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_ivim_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_ivim_ts_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IssuerIdentifier_tags_1, + sizeof(asn_DEF_ivim_ts_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_ivim_ts_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_IssuerIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItineraryPath.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItineraryPath.c new file mode 100644 index 000000000..955752938 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItineraryPath.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ItineraryPath.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_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_ivim_ts_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_ItineraryPath_specs_1 = { + sizeof(struct ivim_ts_ItineraryPath), + offsetof(struct ivim_ts_ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ItineraryPath_tags_1, + sizeof(asn_DEF_ivim_ts_ItineraryPath_tags_1) + /sizeof(asn_DEF_ivim_ts_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ItineraryPath_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsPduHeader.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsPduHeader.c new file mode 100644 index 000000000..2965023ad --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsPduHeader.c @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ItsPduHeader.h" + +static int +memb_ivim_ts_protocolVersion_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_messageID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_protocolVersion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_messageID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ItsPduHeader, protocolVersion), + (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_ivim_ts_protocolVersion_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_ivim_ts_protocolVersion_constraint_1 + }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ItsPduHeader, messageID), + (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_ivim_ts_messageID_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_ivim_ts_messageID_constraint_1 + }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_ItsPduHeader_specs_1 = { + sizeof(struct ivim_ts_ItsPduHeader), + offsetof(struct ivim_ts_ItsPduHeader, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ItsPduHeader_tags_1, + sizeof(asn_DEF_ivim_ts_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ivim_ts_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ItsPduHeader_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsStationPosition.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsStationPosition.c new file mode 100644 index 000000000..dc983de93 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsStationPosition.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ItsStationPosition.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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 ivim_ts_ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeOffsetPointXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeReference, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeReference" + }, +}; +static const int asn_MAP_ivim_ts_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ItsStationPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ItsStationPosition_specs_1 = { + sizeof(struct ivim_ts_ItsStationPosition), + offsetof(struct ivim_ts_ItsStationPosition, _asn_ctx), + asn_MAP_ivim_ts_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ItsStationPosition_tags_1, + sizeof(asn_DEF_ivim_ts_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ivim_ts_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ItsStationPosition_tags_1) + /sizeof(asn_DEF_ivim_ts_ItsStationPosition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsStationPositionList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsStationPositionList.c new file mode 100644 index 000000000..3cb786ddf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ItsStationPositionList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ItsStationPositionList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ItsStationPositionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_ItsStationPosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ItsStationPositionList_specs_1 = { + sizeof(struct ivim_ts_ItsStationPositionList), + offsetof(struct ivim_ts_ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ItsStationPositionList_tags_1, + sizeof(asn_DEF_ivim_ts_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ivim_ts_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_ivim_ts_ItsStationPositionList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ItsStationPositionList_constr_1, +#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_ivim_ts_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviContainer.c new file mode 100644 index 000000000..7c82937b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviContainer.c @@ -0,0 +1,288 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviContainer.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_IviContainer_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) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_ext1_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviContainer__ext1, avc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AutomatedVehicleContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "avc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviContainer__ext1, mlc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MapLocationContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mlc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviContainer__ext1, rsc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSurfaceContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rsc" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ext1_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ext1_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* avc */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mlc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* rsc */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ext1_specs_8 = { + sizeof(struct ivim_ts_IviContainer__ext1), + offsetof(struct ivim_ts_IviContainer__ext1, _asn_ctx), + asn_MAP_ivim_ts_ext1_tag2el_8, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ext1_8 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ext1_tags_8, + sizeof(asn_DEF_ivim_ts_ext1_tags_8) + /sizeof(asn_DEF_ivim_ts_ext1_tags_8[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_ext1_tags_8, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ext1_tags_8) + /sizeof(asn_DEF_ivim_ts_ext1_tags_8[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_ivim_ts_ext1_8, + 3, /* Elements count */ + &asn_SPC_ivim_ts_ext1_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_IviContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviContainer, choice.glc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GeographicLocationContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "glc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviContainer, choice.giv), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GeneralIviContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "giv" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviContainer, choice.rcc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadConfigurationContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rcc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviContainer, choice.tc), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TextContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "tc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviContainer, choice.lac), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LayoutContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lac" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_IviContainer, choice.ext1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ivim_ts_ext1_8, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IviContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* glc */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* giv */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rcc */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* lac */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ext1 */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_IviContainer_specs_1 = { + sizeof(struct ivim_ts_IviContainer), + offsetof(struct ivim_ts_IviContainer, _asn_ctx), + offsetof(struct ivim_ts_IviContainer, present), + sizeof(((struct ivim_ts_IviContainer *)0)->present), + asn_MAP_ivim_ts_IviContainer_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + 5 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviContainer = { + "IviContainer", + "IviContainer", + &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_ivim_ts_IviContainer_constr_1, +#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_ivim_ts_IviContainer_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_IviContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviContainers.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviContainers.c new file mode 100644 index 000000000..3425f033f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviContainers.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviContainers.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_IviContainers_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_ivim_ts_IviContainers_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ivim_ts_IviContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_IviContainers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_IviContainers_specs_1 = { + sizeof(struct ivim_ts_IviContainers), + offsetof(struct ivim_ts_IviContainers, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviContainers = { + "IviContainers", + "IviContainers", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_IviContainers_tags_1, + sizeof(asn_DEF_ivim_ts_IviContainers_tags_1) + /sizeof(asn_DEF_ivim_ts_IviContainers_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviContainers_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviContainers_tags_1) + /sizeof(asn_DEF_ivim_ts_IviContainers_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IviContainers_constr_1, +#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_ivim_ts_IviContainers_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_IviContainers_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviIdentificationNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviIdentificationNumber.c new file mode 100644 index 000000000..b89b6a275 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviIdentificationNumber.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumber.h" + +int +ivim_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)) { + /* 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_ivim_ts_IviIdentificationNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 15, 15, 1, 32767 } /* (1..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_ivim_ts_IviIdentificationNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviIdentificationNumber = { + "IviIdentificationNumber", + "IviIdentificationNumber", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IviIdentificationNumber_tags_1, + sizeof(asn_DEF_ivim_ts_IviIdentificationNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_IviIdentificationNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviIdentificationNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviIdentificationNumber_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_IviIdentificationNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviIdentificationNumbers.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviIdentificationNumbers.c new file mode 100644 index 000000000..2a266ef8c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviIdentificationNumbers.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviIdentificationNumbers.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_IviIdentificationNumbers_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_ivim_ts_IviIdentificationNumbers_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_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 */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IviIdentificationNumbers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_IviIdentificationNumbers_specs_1 = { + sizeof(struct ivim_ts_IviIdentificationNumbers), + offsetof(struct ivim_ts_IviIdentificationNumbers, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviIdentificationNumbers = { + "IviIdentificationNumbers", + "IviIdentificationNumbers", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_IviIdentificationNumbers_tags_1, + sizeof(asn_DEF_ivim_ts_IviIdentificationNumbers_tags_1) + /sizeof(asn_DEF_ivim_ts_IviIdentificationNumbers_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviIdentificationNumbers_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviIdentificationNumbers_tags_1) + /sizeof(asn_DEF_ivim_ts_IviIdentificationNumbers_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IviIdentificationNumbers_constr_1, +#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_ivim_ts_IviIdentificationNumbers_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_IviIdentificationNumbers_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviLaneWidth.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviLaneWidth.c new file mode 100644 index 000000000..4700b4caf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviLaneWidth.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviLaneWidth.h" + +int +ivim_ts_IviLaneWidth_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_ivim_ts_IviLaneWidth_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_ivim_ts_IviLaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviLaneWidth = { + "IviLaneWidth", + "IviLaneWidth", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IviLaneWidth_tags_1, + sizeof(asn_DEF_ivim_ts_IviLaneWidth_tags_1) + /sizeof(asn_DEF_ivim_ts_IviLaneWidth_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviLaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviLaneWidth_tags_1) + /sizeof(asn_DEF_ivim_ts_IviLaneWidth_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IviLaneWidth_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_IviLaneWidth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviManagementContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviManagementContainer.c new file mode 100644 index 000000000..2c0a5d9c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviManagementContainer.c @@ -0,0 +1,221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviManagementContainer.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_IviManagementContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviManagementContainer, serviceProviderId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_IviManagementContainer, iviIdentificationNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_IviManagementContainer, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "timeStamp" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_IviManagementContainer, validFrom), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "validFrom" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_IviManagementContainer, validTo), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "validTo" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_IviManagementContainer, connectedIviStructures), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviIdentificationNumbers, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectedIviStructures" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviManagementContainer, iviStatus), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iviStatus" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_IviManagementContainer, connectedDenms), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ConnectedDenms, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectedDenms" + }, +}; +static const int asn_MAP_ivim_ts_IviManagementContainer_oms_1[] = { 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IviManagementContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IviManagementContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* serviceProviderId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iviIdentificationNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* validFrom */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* validTo */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* connectedIviStructures */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* iviStatus */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* connectedDenms */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IviManagementContainer_specs_1 = { + sizeof(struct ivim_ts_IviManagementContainer), + offsetof(struct ivim_ts_IviManagementContainer, _asn_ctx), + asn_MAP_ivim_ts_IviManagementContainer_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ivim_ts_IviManagementContainer_oms_1, /* Optional members */ + 4, 1, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviManagementContainer = { + "IviManagementContainer", + "IviManagementContainer", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_IviManagementContainer_tags_1, + sizeof(asn_DEF_ivim_ts_IviManagementContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_IviManagementContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviManagementContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviManagementContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_IviManagementContainer_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_IviManagementContainer_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_IviManagementContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviPurpose.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviPurpose.c new file mode 100644 index 000000000..c276418b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviPurpose.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviPurpose.h" + +int +ivim_ts_IviPurpose_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_ivim_ts_IviPurpose_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_ivim_ts_IviPurpose_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviPurpose = { + "IviPurpose", + "IviPurpose", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IviPurpose_tags_1, + sizeof(asn_DEF_ivim_ts_IviPurpose_tags_1) + /sizeof(asn_DEF_ivim_ts_IviPurpose_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviPurpose_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviPurpose_tags_1) + /sizeof(asn_DEF_ivim_ts_IviPurpose_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IviPurpose_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_IviPurpose_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviStatus.c new file mode 100644 index 000000000..07ed63b8c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviStatus.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviStatus.h" + +int +ivim_ts_IviStatus_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_ivim_ts_IviStatus_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_ivim_ts_IviStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviStatus = { + "IviStatus", + "IviStatus", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IviStatus_tags_1, + sizeof(asn_DEF_ivim_ts_IviStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_IviStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_IviStatus_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IviStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_IviStatus_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviStructure.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviStructure.c new file mode 100644 index 000000000..447122759 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviStructure.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviStructure.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_IviStructure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_IviStructure, mandatory), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviManagementContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mandatory" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_IviStructure, optional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviContainers, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "optional" + }, +}; +static const int asn_MAP_ivim_ts_IviStructure_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_IviStructure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_IviStructure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mandatory */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* optional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_IviStructure_specs_1 = { + sizeof(struct ivim_ts_IviStructure), + offsetof(struct ivim_ts_IviStructure, _asn_ctx), + asn_MAP_ivim_ts_IviStructure_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_IviStructure_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviStructure = { + "IviStructure", + "IviStructure", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_IviStructure_tags_1, + sizeof(asn_DEF_ivim_ts_IviStructure_tags_1) + /sizeof(asn_DEF_ivim_ts_IviStructure_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviStructure_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviStructure_tags_1) + /sizeof(asn_DEF_ivim_ts_IviStructure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_IviStructure_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_IviStructure_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviType.c new file mode 100644 index 000000000..7ca657360 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_IviType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_IviType.h" + +int +ivim_ts_IviType_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_ivim_ts_IviType_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_ivim_ts_IviType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_IviType = { + "IviType", + "IviType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_IviType_tags_1, + sizeof(asn_DEF_ivim_ts_IviType_tags_1) + /sizeof(asn_DEF_ivim_ts_IviType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_IviType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_IviType_tags_1) + /sizeof(asn_DEF_ivim_ts_IviType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_IviType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_IviType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LPN.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LPN.c new file mode 100644 index 000000000..43838c027 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LPN.c @@ -0,0 +1,235 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LPN.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_ivim_ts_alphabetIndicator_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..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 asn_INTEGER_enum_map_t asn_MAP_ivim_ts_alphabetIndicator_value2enum_3[] = { + { 1, 16, "latinAlphabetNo1" }, + { 2, 16, "latinAlphabetNo2" }, + { 3, 16, "latinAlphabetNo3" }, + { 4, 16, "latinAlphabetNo4" }, + { 5, 21, "latinCyrillicAlphabet" }, + { 6, 19, "latinArabicAlphabet" }, + { 7, 18, "latinGreekAlphabet" }, + { 8, 19, "latinHebrewAlphabet" }, + { 9, 16, "latinAlphabetNo5" }, + { 10, 16, "latinAlphabetNo6" }, + { 11, 11, "twoOctetBMP" }, + { 12, 18, "fourOctetCanonical" }, + { 13, 15, "reservedForUse1" }, + { 14, 15, "reservedForUse2" }, + { 15, 15, "reservedForUse3" }, + { 16, 15, "reservedForUse4" }, + { 17, 15, "reservedForUse5" }, + { 18, 15, "reservedForUse6" }, + { 19, 15, "reservedForUse7" }, + { 20, 15, "reservedForUse8" }, + { 21, 15, "reservedForUse9" }, + { 22, 16, "reservedForUse10" }, + { 23, 16, "reservedForUse11" }, + { 24, 16, "reservedForUse12" }, + { 25, 16, "reservedForUse13" }, + { 26, 16, "reservedForUse14" }, + { 27, 16, "reservedForUse15" }, + { 28, 16, "reservedForUse16" }, + { 29, 16, "reservedForUse17" }, + { 30, 16, "reservedForUse18" }, + { 31, 16, "reservedForUse19" }, + { 32, 16, "reservedForUse20" }, + { 33, 16, "reservedForUse21" } +}; +static const unsigned int asn_MAP_ivim_ts_alphabetIndicator_enum2value_3[] = { + 11, /* fourOctetCanonical(12) */ + 0, /* latinAlphabetNo1(1) */ + 1, /* latinAlphabetNo2(2) */ + 2, /* latinAlphabetNo3(3) */ + 3, /* latinAlphabetNo4(4) */ + 8, /* latinAlphabetNo5(9) */ + 9, /* latinAlphabetNo6(10) */ + 5, /* latinArabicAlphabet(6) */ + 4, /* latinCyrillicAlphabet(5) */ + 6, /* latinGreekAlphabet(7) */ + 7, /* latinHebrewAlphabet(8) */ + 12, /* reservedForUse1(13) */ + 21, /* reservedForUse10(22) */ + 22, /* reservedForUse11(23) */ + 23, /* reservedForUse12(24) */ + 24, /* reservedForUse13(25) */ + 25, /* reservedForUse14(26) */ + 26, /* reservedForUse15(27) */ + 27, /* reservedForUse16(28) */ + 28, /* reservedForUse17(29) */ + 29, /* reservedForUse18(30) */ + 30, /* reservedForUse19(31) */ + 13, /* reservedForUse2(14) */ + 31, /* reservedForUse20(32) */ + 32, /* reservedForUse21(33) */ + 14, /* reservedForUse3(15) */ + 15, /* reservedForUse4(16) */ + 16, /* reservedForUse5(17) */ + 17, /* reservedForUse6(18) */ + 18, /* reservedForUse7(19) */ + 19, /* reservedForUse8(20) */ + 20, /* reservedForUse9(21) */ + 10 /* twoOctetBMP(11) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_alphabetIndicator_specs_3 = { + asn_MAP_ivim_ts_alphabetIndicator_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_alphabetIndicator_enum2value_3, /* N => "tag"; sorted by N */ + 33, /* 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_ivim_ts_alphabetIndicator_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_alphabetIndicator_3 = { + "alphabetIndicator", + "alphabetIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_alphabetIndicator_tags_3, + sizeof(asn_DEF_ivim_ts_alphabetIndicator_tags_3) + /sizeof(asn_DEF_ivim_ts_alphabetIndicator_tags_3[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_alphabetIndicator_tags_3, /* Same as above */ + sizeof(asn_DEF_ivim_ts_alphabetIndicator_tags_3) + /sizeof(asn_DEF_ivim_ts_alphabetIndicator_tags_3[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_ivim_ts_alphabetIndicator_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) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ivim_ts_alphabetIndicator_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_LPN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LPN, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_LPN, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_alphabetIndicator_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "alphabetIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LPN, licencePlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 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 */ + "licencePlateNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LPN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LPN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alphabetIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* licencePlateNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LPN_specs_1 = { + sizeof(struct ivim_ts_LPN), + offsetof(struct ivim_ts_LPN, _asn_ctx), + asn_MAP_ivim_ts_LPN_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_ivim_ts_LPN = { + "LPN", + "LPN", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LPN_tags_1, + sizeof(asn_DEF_ivim_ts_LPN_tags_1) + /sizeof(asn_DEF_ivim_ts_LPN_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LPN_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LPN_tags_1) + /sizeof(asn_DEF_ivim_ts_LPN_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LPN_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_LPN_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Barrier.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Barrier.c new file mode 100644 index 000000000..1d014f2fe --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Barrier.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Barrier.h" + +int +ivim_ts_LaneAttributes_Barrier_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_ivim_ts_LaneAttributes_Barrier_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneAttributes_Barrier_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneAttributes_Barrier_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Bike.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Bike.c new file mode 100644 index 000000000..8c617aa17 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Bike.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Bike.h" + +int +ivim_ts_LaneAttributes_Bike_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_ivim_ts_LaneAttributes_Bike_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Bike_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneAttributes_Bike_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneAttributes_Bike_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Crosswalk.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Crosswalk.c new file mode 100644 index 000000000..76108ca94 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Crosswalk.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Crosswalk.h" + +int +ivim_ts_LaneAttributes_Crosswalk_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_ivim_ts_LaneAttributes_Crosswalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneAttributes_Crosswalk_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneAttributes_Crosswalk_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Parking.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Parking.c new file mode 100644 index 000000000..f5dfe606f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Parking.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Parking.h" + +int +ivim_ts_LaneAttributes_Parking_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_ivim_ts_LaneAttributes_Parking_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Parking_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneAttributes_Parking_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneAttributes_Parking_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Sidewalk.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Sidewalk.c new file mode 100644 index 000000000..935994ad0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Sidewalk.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Sidewalk.h" + +int +ivim_ts_LaneAttributes_Sidewalk_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_ivim_ts_LaneAttributes_Sidewalk_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneAttributes_Sidewalk_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneAttributes_Sidewalk_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Striping.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Striping.c new file mode 100644 index 000000000..2100d197c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Striping.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Striping.h" + +int +ivim_ts_LaneAttributes_Striping_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_ivim_ts_LaneAttributes_Striping_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Striping_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneAttributes_Striping_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneAttributes_Striping_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-TrackedVehicle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-TrackedVehicle.c new file mode 100644 index 000000000..ac3e59d15 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-TrackedVehicle.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-TrackedVehicle.h" + +int +ivim_ts_LaneAttributes_TrackedVehicle_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_ivim_ts_LaneAttributes_TrackedVehicle_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 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_ivim_ts_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneAttributes_TrackedVehicle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneAttributes_TrackedVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Vehicle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Vehicle.c new file mode 100644 index 000000000..060ed94cc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-Vehicle.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-Vehicle.h" + +int +ivim_ts_LaneAttributes_Vehicle_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_ivim_ts_LaneAttributes_Vehicle_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_ivim_ts_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneAttributes_Vehicle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneAttributes_Vehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-addGrpC.c new file mode 100644 index 000000000..d9fe880aa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes-addGrpC.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct ivim_ts_LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleHeight, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxVehicleHeight" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleMass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxVehicleWeight" + }, +}; +static const int asn_MAP_ivim_ts_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LaneAttributes_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxVehicleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxVehicleWeight */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct ivim_ts_LaneAttributes_addGrpC), + offsetof(struct ivim_ts_LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes.c new file mode 100644 index 000000000..600788674 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneAttributes.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneAttributes.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneDirection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "directionalUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneSharing, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sharedWith" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneTypeAttributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Reg_LaneAttributes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LaneAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directionalUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedWith */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LaneAttributes_specs_1 = { + sizeof(struct ivim_ts_LaneAttributes), + offsetof(struct ivim_ts_LaneAttributes, _asn_ctx), + asn_MAP_ivim_ts_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LaneAttributes_tags_1, + sizeof(asn_DEF_ivim_ts_LaneAttributes_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneAttributes_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneAttributes_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneCharacteristics.c new file mode 100644 index 000000000..c737b967f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneCharacteristics.c @@ -0,0 +1,177 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneCharacteristics.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_LaneCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneCharacteristics, zoneDefinitionAccuracy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DefinitionAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zoneDefinitionAccuracy" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneCharacteristics, existinglaneMarkingStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneMarkingStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "existinglaneMarkingStatus" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneCharacteristics, newlaneMarkingColour), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MarkingColour, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "newlaneMarkingColour" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneCharacteristics, laneDelimitationLeft), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneDelimitation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneDelimitationLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneCharacteristics, laneDelimitationRight), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneDelimitation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneDelimitationRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneCharacteristics, mergingWith), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Zid, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mergingWith" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LaneCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LaneCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneDefinitionAccuracy */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* existinglaneMarkingStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* newlaneMarkingColour */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneDelimitationLeft */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneDelimitationRight */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* mergingWith */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LaneCharacteristics_specs_1 = { + sizeof(struct ivim_ts_LaneCharacteristics), + offsetof(struct ivim_ts_LaneCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_LaneCharacteristics_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneCharacteristics = { + "LaneCharacteristics", + "LaneCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LaneCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_LaneCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LaneCharacteristics_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_LaneCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneConfiguration.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneConfiguration.c new file mode 100644 index 000000000..4d83c98d1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneConfiguration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneConfiguration.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_LaneConfiguration_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_ivim_ts_LaneConfiguration_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_LaneInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_LaneConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_LaneConfiguration_specs_1 = { + sizeof(struct ivim_ts_LaneConfiguration), + offsetof(struct ivim_ts_LaneConfiguration, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneConfiguration = { + "LaneConfiguration", + "LaneConfiguration", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_LaneConfiguration_tags_1, + sizeof(asn_DEF_ivim_ts_LaneConfiguration_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneConfiguration_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneConfiguration_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneConfiguration_constr_1, +#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_ivim_ts_LaneConfiguration_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_LaneConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneConnectionID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneConnectionID.c new file mode 100644 index 000000000..df282401d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneConnectionID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneConnectionID.h" + +int +ivim_ts_LaneConnectionID_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_ivim_ts_LaneConnectionID_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_ivim_ts_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LaneConnectionID_tags_1, + sizeof(asn_DEF_ivim_ts_LaneConnectionID_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneConnectionID_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneConnectionID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneConnectionID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneConnectionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDataAttribute.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDataAttribute.c new file mode 100644 index 000000000..4775a1e98 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDataAttribute.c @@ -0,0 +1,301 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttribute.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_8 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_ivim_ts_regional_constr_8 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) +asn_per_constraints_t asn_PER_type_ivim_ts_LaneDataAttribute_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) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_LaneDataAttribute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_8 = { + sizeof(struct ivim_ts_LaneDataAttribute__regional), + offsetof(struct ivim_ts_LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_8, + sizeof(asn_DEF_ivim_ts_regional_tags_8) + /sizeof(asn_DEF_ivim_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_8) + /sizeof(asn_DEF_ivim_ts_regional_tags_8[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_ivim_ts_regional_constr_8, +#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_ivim_ts_regional_8, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DeltaAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathEndPointAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadwayCrownAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneCrownPointCenter" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadwayCrownAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneCrownPointLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadwayCrownAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneCrownPointRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MergeDivergeNodeAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneAngle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SpeedLimitList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ivim_ts_regional_8, + 0, + { +#if !defined(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_ivim_ts_regional_constr_8, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LaneDataAttribute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathEndPointAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneCrownPointCenter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCrownPointLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneCrownPointRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneAngle */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_LaneDataAttribute_specs_1 = { + sizeof(struct ivim_ts_LaneDataAttribute), + offsetof(struct ivim_ts_LaneDataAttribute, _asn_ctx), + offsetof(struct ivim_ts_LaneDataAttribute, present), + sizeof(((struct ivim_ts_LaneDataAttribute *)0)->present), + asn_MAP_ivim_ts_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneDataAttribute = { + "LaneDataAttribute", + "LaneDataAttribute", + &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_ivim_ts_LaneDataAttribute_constr_1, +#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_ivim_ts_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_ivim_ts_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDataAttributeList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDataAttributeList.c new file mode 100644 index 000000000..0a4872861 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDataAttributeList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneDataAttributeList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_LaneDataAttributeList_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_ivim_ts_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ivim_ts_LaneDataAttribute, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_LaneDataAttributeList_specs_1 = { + sizeof(struct ivim_ts_LaneDataAttributeList), + offsetof(struct ivim_ts_LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_ivim_ts_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneDataAttributeList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneDataAttributeList_constr_1, +#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_ivim_ts_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDelimitation.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDelimitation.c new file mode 100644 index 000000000..3d0a4464e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDelimitation.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneDelimitation.h" + +int +ivim_ts_LaneDelimitation_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_ivim_ts_LaneDelimitation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_LaneDelimitation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneDelimitation = { + "LaneDelimitation", + "LaneDelimitation", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LaneDelimitation_tags_1, + sizeof(asn_DEF_ivim_ts_LaneDelimitation_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneDelimitation_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneDelimitation_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneDelimitation_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneDelimitation_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneDelimitation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneDelimitation_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDirection.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDirection.c new file mode 100644 index 000000000..8385f5c68 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneDirection.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneDirection.h" + +int +ivim_ts_LaneDirection_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_ivim_ts_LaneDirection_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_ivim_ts_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneDirection_tags_1, + sizeof(asn_DEF_ivim_ts_LaneDirection_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneDirection_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneDirection_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneDirection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneDirection_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneID.c new file mode 100644 index 000000000..345307993 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneID.h" + +int +ivim_ts_LaneID_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_ivim_ts_LaneID_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_ivim_ts_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LaneID_tags_1, + sizeof(asn_DEF_ivim_ts_LaneID_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneID_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneIds.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneIds.c new file mode 100644 index 000000000..0a050d5cb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneIds.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneIds.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_LaneIds_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_ivim_ts_LaneIds_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_LaneIds_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_LaneIds_specs_1 = { + sizeof(struct ivim_ts_LaneIds), + offsetof(struct ivim_ts_LaneIds, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneIds = { + "LaneIds", + "LaneIds", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_LaneIds_tags_1, + sizeof(asn_DEF_ivim_ts_LaneIds_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneIds_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneIds_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneIds_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneIds_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneIds_constr_1, +#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_ivim_ts_LaneIds_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_LaneIds_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneInformation.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneInformation.c new file mode 100644 index 000000000..6beb17b9b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneInformation.c @@ -0,0 +1,372 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneInformation.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_ext1_10[] = { + { ATF_POINTER, 5, offsetof(struct ivim_ts_LaneInformation__ext1, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_LaneInformation__ext1, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_LaneInformation__ext1, laneCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneCharacteristics" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_LaneInformation__ext1, laneSurfaceStaticCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneSurfaceStaticCharacteristics" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_LaneInformation__ext1, laneSurfaceDynamicCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneSurfaceDynamicCharacteristics" + }, +}; +static const int asn_MAP_ivim_ts_ext1_oms_10[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ext1_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ext1_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneSurfaceStaticCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* laneSurfaceDynamicCharacteristics */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ext1_specs_10 = { + sizeof(struct ivim_ts_LaneInformation__ext1), + offsetof(struct ivim_ts_LaneInformation__ext1, _asn_ctx), + asn_MAP_ivim_ts_ext1_tag2el_10, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_ext1_oms_10, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ext1_10 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ext1_tags_10, + sizeof(asn_DEF_ivim_ts_ext1_tags_10) + /sizeof(asn_DEF_ivim_ts_ext1_tags_10[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_ext1_tags_10, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ext1_tags_10) + /sizeof(asn_DEF_ivim_ts_ext1_tags_10[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_ivim_ts_ext1_10, + 5, /* Elements count */ + &asn_SPC_ivim_ts_ext1_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_LaneInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneInformation, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_LaneInformation, direction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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, 1, offsetof(struct ivim_ts_LaneInformation, validity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_InternationalSign_applicablePeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "validity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneInformation, laneType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "laneType" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_LaneInformation, laneTypeQualifier), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_CompleteVehicleCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneTypeQualifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneInformation, laneStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneStatus" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_LaneInformation, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviLaneWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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, 1, offsetof(struct ivim_ts_LaneInformation, ext1), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ivim_ts_ext1_10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ivim_ts_LaneInformation_oms_1[] = { 2, 4, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LaneInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LaneInformation_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 }, /* validity */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneTypeQualifier */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* laneStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LaneInformation_specs_1 = { + sizeof(struct ivim_ts_LaneInformation), + offsetof(struct ivim_ts_LaneInformation, _asn_ctx), + asn_MAP_ivim_ts_LaneInformation_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ivim_ts_LaneInformation_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneInformation = { + "LaneInformation", + "LaneInformation", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LaneInformation_tags_1, + sizeof(asn_DEF_ivim_ts_LaneInformation_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneInformation_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneInformation_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneInformation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LaneInformation_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_LaneInformation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneList.c new file mode 100644 index 000000000..0ba473175 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_LaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_GenericLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_LaneList_specs_1 = { + sizeof(struct ivim_ts_LaneList), + offsetof(struct ivim_ts_LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_LaneList_tags_1, + sizeof(asn_DEF_ivim_ts_LaneList_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneList_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneList_constr_1, +#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_ivim_ts_LaneList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneMarkingStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneMarkingStatus.c new file mode 100644 index 000000000..7d98f7473 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneMarkingStatus.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneMarkingStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_LaneMarkingStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneMarkingStatus = { + "LaneMarkingStatus", + "LaneMarkingStatus", + &asn_OP_BOOLEAN, + asn_DEF_ivim_ts_LaneMarkingStatus_tags_1, + sizeof(asn_DEF_ivim_ts_LaneMarkingStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneMarkingStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneMarkingStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneMarkingStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneMarkingStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_coding/src/ivim_ts_LanePosition.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LanePosition.c new file mode 100644 index 000000000..f1969d7e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LanePosition.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePosition.h" + +int +ivim_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_ivim_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_ivim_ts_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LanePosition_tags_1, + sizeof(asn_DEF_ivim_ts_LanePosition_tags_1) + /sizeof(asn_DEF_ivim_ts_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LanePosition_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_LanePosition_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LanePositions.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LanePositions.c new file mode 100644 index 000000000..8a53f2c85 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LanePositions.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LanePositions.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_LanePositions_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_ivim_ts_LanePositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_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 */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LanePositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_LanePositions_specs_1 = { + sizeof(struct ivim_ts_LanePositions), + offsetof(struct ivim_ts_LanePositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LanePositions = { + "LanePositions", + "LanePositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_LanePositions_tags_1, + sizeof(asn_DEF_ivim_ts_LanePositions_tags_1) + /sizeof(asn_DEF_ivim_ts_LanePositions_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LanePositions_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LanePositions_tags_1) + /sizeof(asn_DEF_ivim_ts_LanePositions_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LanePositions_constr_1, +#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_ivim_ts_LanePositions_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_LanePositions_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneSharing.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneSharing.c new file mode 100644 index 000000000..5c35e7839 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneSharing.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneSharing.h" + +int +ivim_ts_LaneSharing_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_ivim_ts_LaneSharing_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_ivim_ts_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LaneSharing_tags_1, + sizeof(asn_DEF_ivim_ts_LaneSharing_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneSharing_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneSharing_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneSharing_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneSharing_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneStatus.c new file mode 100644 index 000000000..911737560 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneStatus.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneStatus.h" + +int +ivim_ts_LaneStatus_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_ivim_ts_LaneStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_LaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneStatus = { + "LaneStatus", + "LaneStatus", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LaneStatus_tags_1, + sizeof(asn_DEF_ivim_ts_LaneStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneStatus_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LaneStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LaneStatus_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneType.c new file mode 100644 index 000000000..f47e002a6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneType.h" + +int +ivim_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_ivim_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_ivim_ts_LaneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneType = { + "LaneType", + "LaneType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LaneType_tags_1, + sizeof(asn_DEF_ivim_ts_LaneType_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_LaneType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneTypeAttributes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneTypeAttributes.c new file mode 100644 index 000000000..c62a0e414 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneTypeAttributes.c @@ -0,0 +1,223 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneTypeAttributes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_LaneTypeAttributes_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes_Vehicle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes_Crosswalk, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "crosswalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes_Bike, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "bikeLane" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes_Sidewalk, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sidewalk" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes_Barrier, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "median" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes_Striping, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "striping" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes_TrackedVehicle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trackedVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneAttributes_Parking, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "parking" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LaneTypeAttributes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* crosswalk */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bikeLane */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sidewalk */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* median */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* striping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trackedVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* parking */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_LaneTypeAttributes_specs_1 = { + sizeof(struct ivim_ts_LaneTypeAttributes), + offsetof(struct ivim_ts_LaneTypeAttributes, _asn_ctx), + offsetof(struct ivim_ts_LaneTypeAttributes, present), + sizeof(((struct ivim_ts_LaneTypeAttributes *)0)->present), + asn_MAP_ivim_ts_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneTypeAttributes = { + "LaneTypeAttributes", + "LaneTypeAttributes", + &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_ivim_ts_LaneTypeAttributes_constr_1, +#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_ivim_ts_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneWidth.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneWidth.c new file mode 100644 index 000000000..cd9d6b2ae --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LaneWidth.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LaneWidth.h" + +int +ivim_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 <= 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_ivim_ts_LaneWidth_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_ivim_ts_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LaneWidth_tags_1, + sizeof(asn_DEF_ivim_ts_LaneWidth_tags_1) + /sizeof(asn_DEF_ivim_ts_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LaneWidth_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_LaneWidth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LateralAcceleration.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LateralAcceleration.c new file mode 100644 index 000000000..bb83711af --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LateralAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_LateralAcceleration_specs_1 = { + sizeof(struct ivim_ts_LateralAcceleration), + offsetof(struct ivim_ts_LateralAcceleration, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LateralAcceleration_tags_1, + sizeof(asn_DEF_ivim_ts_LateralAcceleration_tags_1) + /sizeof(asn_DEF_ivim_ts_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LateralAcceleration_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LateralAccelerationValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LateralAccelerationValue.c new file mode 100644 index 000000000..6bb1df2dc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LateralAccelerationValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LateralAccelerationValue.h" + +int +ivim_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_ivim_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_ivim_ts_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_ivim_ts_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_ivim_ts_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_LateralAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Latitude.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Latitude.c new file mode 100644 index 000000000..96b77e72a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Latitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Latitude.h" + +int +ivim_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_ivim_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_ivim_ts_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Latitude_tags_1, + sizeof(asn_DEF_ivim_ts_Latitude_tags_1) + /sizeof(asn_DEF_ivim_ts_Latitude_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Latitude_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_Latitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayerID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayerID.c new file mode 100644 index 000000000..81f5114b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayerID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LayerID.h" + +int +ivim_ts_LayerID_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 <= 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) +asn_per_constraints_t asn_PER_type_ivim_ts_LayerID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..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_ivim_ts_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LayerID_tags_1, + sizeof(asn_DEF_ivim_ts_LayerID_tags_1) + /sizeof(asn_DEF_ivim_ts_LayerID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LayerID_tags_1) + /sizeof(asn_DEF_ivim_ts_LayerID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LayerID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_LayerID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayerType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayerType.c new file mode 100644 index 000000000..d34f903f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayerType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LayerType.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_ivim_ts_LayerType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_LayerType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 12, "mixedContent" }, + { 2, 14, "generalMapData" }, + { 3, 16, "intersectionData" }, + { 4, 9, "curveData" }, + { 5, 18, "roadwaySectionData" }, + { 6, 15, "parkingAreaData" }, + { 7, 14, "sharedLaneData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_LayerType_enum2value_1[] = { + 4, /* curveData(4) */ + 2, /* generalMapData(2) */ + 3, /* intersectionData(3) */ + 1, /* mixedContent(1) */ + 0, /* none(0) */ + 6, /* parkingAreaData(6) */ + 5, /* roadwaySectionData(5) */ + 7 /* sharedLaneData(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_LayerType_specs_1 = { + asn_MAP_ivim_ts_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_LayerType_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_LayerType_tags_1, + sizeof(asn_DEF_ivim_ts_LayerType_tags_1) + /sizeof(asn_DEF_ivim_ts_LayerType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LayerType_tags_1) + /sizeof(asn_DEF_ivim_ts_LayerType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LayerType_constr_1, +#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_ivim_ts_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutComponent.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutComponent.c new file mode 100644 index 000000000..1554b6bb9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutComponent.c @@ -0,0 +1,369 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LayoutComponent.h" + +static int +memb_ivim_ts_layoutComponentId_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 <= 8L)) { + /* 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_ivim_ts_height_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 >= 10L && value <= 73L)) { + /* 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_ivim_ts_width_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 >= 10L && value <= 265L)) { + /* 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_ivim_ts_x_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 >= 10L && value <= 265L)) { + /* 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_ivim_ts_y_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 >= 10L && value <= 73L)) { + /* 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_ivim_ts_textScripting_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 <= 1L)) { + /* 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_ivim_ts_layoutComponentId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_height_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 10, 73 } /* (10..73) */, + { 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_ivim_ts_width_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 10, 265 } /* (10..265) */, + { 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_ivim_ts_x_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 10, 265 } /* (10..265) */, + { 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_ivim_ts_y_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 10, 73 } /* (10..73) */, + { 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_ivim_ts_textScripting_constr_7 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_ivim_ts_LayoutComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LayoutComponent, layoutComponentId), + (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_ivim_ts_layoutComponentId_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_ivim_ts_layoutComponentId_constraint_1 + }, + 0, 0, /* No default value */ + "layoutComponentId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LayoutComponent, height), + (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_ivim_ts_height_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_ivim_ts_height_constraint_1 + }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LayoutComponent, width), + (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_ivim_ts_width_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_ivim_ts_width_constraint_1 + }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LayoutComponent, x), + (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_ivim_ts_x_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_ivim_ts_x_constraint_1 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LayoutComponent, y), + (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_ivim_ts_y_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_ivim_ts_y_constraint_1 + }, + 0, 0, /* No default value */ + "y" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LayoutComponent, textScripting), + (ASN_TAG_CLASS_CONTEXT | (5 << 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_ivim_ts_textScripting_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_ivim_ts_textScripting_constraint_1 + }, + 0, 0, /* No default value */ + "textScripting" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LayoutComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LayoutComponent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* layoutComponentId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* y */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* textScripting */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LayoutComponent_specs_1 = { + sizeof(struct ivim_ts_LayoutComponent), + offsetof(struct ivim_ts_LayoutComponent, _asn_ctx), + asn_MAP_ivim_ts_LayoutComponent_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayoutComponent = { + "LayoutComponent", + "LayoutComponent", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LayoutComponent_tags_1, + sizeof(asn_DEF_ivim_ts_LayoutComponent_tags_1) + /sizeof(asn_DEF_ivim_ts_LayoutComponent_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LayoutComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LayoutComponent_tags_1) + /sizeof(asn_DEF_ivim_ts_LayoutComponent_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LayoutComponent_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_LayoutComponent_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutComponents.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutComponents.c new file mode 100644 index 000000000..71b18882e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutComponents.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LayoutComponents.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_LayoutComponents_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_LayoutComponents_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_LayoutComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_LayoutComponents_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_LayoutComponents_specs_1 = { + sizeof(struct ivim_ts_LayoutComponents), + offsetof(struct ivim_ts_LayoutComponents, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayoutComponents = { + "LayoutComponents", + "LayoutComponents", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_LayoutComponents_tags_1, + sizeof(asn_DEF_ivim_ts_LayoutComponents_tags_1) + /sizeof(asn_DEF_ivim_ts_LayoutComponents_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LayoutComponents_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LayoutComponents_tags_1) + /sizeof(asn_DEF_ivim_ts_LayoutComponents_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_LayoutComponents_constr_1, +#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_ivim_ts_LayoutComponents_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_LayoutComponents_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutContainer.c new file mode 100644 index 000000000..d321347d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LayoutContainer.c @@ -0,0 +1,233 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LayoutContainer.h" + +static int +memb_ivim_ts_layoutId_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 <= 4L)) { + /* 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_ivim_ts_height_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 >= 10L && value <= 73L)) { + /* 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_ivim_ts_width_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 >= 10L && value <= 265L)) { + /* 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_ivim_ts_layoutId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { 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_ivim_ts_height_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 10, 73 } /* (10..73) */, + { 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_ivim_ts_width_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 10, 265 } /* (10..265) */, + { 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_ivim_ts_LayoutContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LayoutContainer, layoutId), + (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_ivim_ts_layoutId_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_ivim_ts_layoutId_constraint_1 + }, + 0, 0, /* No default value */ + "layoutId" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_LayoutContainer, height), + (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_ivim_ts_height_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_ivim_ts_height_constraint_1 + }, + 0, 0, /* No default value */ + "height" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_LayoutContainer, width), + (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_ivim_ts_width_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_ivim_ts_width_constraint_1 + }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LayoutContainer, layoutComponents), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LayoutComponents, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "layoutComponents" + }, +}; +static const int asn_MAP_ivim_ts_LayoutContainer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LayoutContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LayoutContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* layoutId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* height */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* width */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* layoutComponents */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LayoutContainer_specs_1 = { + sizeof(struct ivim_ts_LayoutContainer), + offsetof(struct ivim_ts_LayoutContainer, _asn_ctx), + asn_MAP_ivim_ts_LayoutContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_LayoutContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LayoutContainer = { + "LayoutContainer", + "LayoutContainer", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LayoutContainer_tags_1, + sizeof(asn_DEF_ivim_ts_LayoutContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_LayoutContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LayoutContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LayoutContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_LayoutContainer_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LayoutContainer_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_LayoutContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LicPlateNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LicPlateNumber.c new file mode 100644 index 000000000..d0347afd7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LicPlateNumber.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LicPlateNumber.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_LicPlateNumber_tags_1, + sizeof(asn_DEF_ivim_ts_LicPlateNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LicPlateNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_LicPlateNumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LightBarSirenInUse.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LightBarSirenInUse.c new file mode 100644 index 000000000..b99af33d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LightBarSirenInUse.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LightBarSirenInUse.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_ivim_ts_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_ivim_ts_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_LightBarSirenInUse_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LoadType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LoadType.c new file mode 100644 index 000000000..5adc23b51 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LoadType.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LoadType.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_LoadType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LoadType, goodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GoodsType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "goodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LoadType, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_LoadType, specialTransportType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_LoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_LoadType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* goodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* specialTransportType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_LoadType_specs_1 = { + sizeof(struct ivim_ts_LoadType), + offsetof(struct ivim_ts_LoadType, _asn_ctx), + asn_MAP_ivim_ts_LoadType_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_ivim_ts_LoadType = { + "LoadType", + "LoadType", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LoadType_tags_1, + sizeof(asn_DEF_ivim_ts_LoadType_tags_1) + /sizeof(asn_DEF_ivim_ts_LoadType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LoadType_tags_1) + /sizeof(asn_DEF_ivim_ts_LoadType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LoadType_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_LoadType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Longitude.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Longitude.c new file mode 100644 index 000000000..a912f8f4b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Longitude.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Longitude.h" + +int +ivim_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_ivim_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_ivim_ts_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Longitude_tags_1, + sizeof(asn_DEF_ivim_ts_Longitude_tags_1) + /sizeof(asn_DEF_ivim_ts_Longitude_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Longitude_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_Longitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LongitudinalAcceleration.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LongitudinalAcceleration.c new file mode 100644 index 000000000..a7800b83e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LongitudinalAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_LongitudinalAcceleration_specs_1 = { + sizeof(struct ivim_ts_LongitudinalAcceleration), + offsetof(struct ivim_ts_LongitudinalAcceleration, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_ivim_ts_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_ivim_ts_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LongitudinalAccelerationValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LongitudinalAccelerationValue.c new file mode 100644 index 000000000..fff9c150c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_LongitudinalAccelerationValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_LongitudinalAccelerationValue.h" + +int +ivim_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_ivim_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_ivim_ts_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_ivim_ts_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_ivim_ts_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_LongitudinalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ManeuverAssistList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ManeuverAssistList.c new file mode 100644 index 000000000..18e7231ec --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ManeuverAssistList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ManeuverAssistList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ManeuverAssistList_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_ivim_ts_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_ConnectionManeuverAssist, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ManeuverAssistList_specs_1 = { + sizeof(struct ivim_ts_ManeuverAssistList), + offsetof(struct ivim_ts_ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ManeuverAssistList_tags_1, + sizeof(asn_DEF_ivim_ts_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ivim_ts_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_ivim_ts_ManeuverAssistList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ManeuverAssistList_constr_1, +#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_ivim_ts_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ManufacturerIdentifier.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ManufacturerIdentifier.c new file mode 100644 index 000000000..1c9850a5f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ManufacturerIdentifier.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ManufacturerIdentifier.h" + +int +ivim_ts_ManufacturerIdentifier_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_ivim_ts_ManufacturerIdentifier_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_ivim_ts_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_ivim_ts_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ivim_ts_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_ivim_ts_ManufacturerIdentifier_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ManufacturerIdentifier_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ManufacturerIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapData-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapData-addGrpC.c new file mode 100644 index 000000000..309e3ba6d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapData-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MapData-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalHeadLocationList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalHeadLocations" + }, +}; +static const int asn_MAP_ivim_ts_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MapData_addGrpC_specs_1 = { + sizeof(struct ivim_ts_MapData_addGrpC), + offsetof(struct ivim_ts_MapData_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ivim_ts_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_MapData_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_MapData_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ivim_ts_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapData.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapData.c new file mode 100644 index 000000000..ff6c12ae8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapData.c @@ -0,0 +1,341 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MapData.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_10 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_ivim_ts_regional_constr_10 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_ivim_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_MapData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_10 = { + sizeof(struct ivim_ts_MapData__regional), + offsetof(struct ivim_ts_MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_10, + sizeof(asn_DEF_ivim_ts_regional_tags_10) + /sizeof(asn_DEF_ivim_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_10) + /sizeof(asn_DEF_ivim_ts_regional_tags_10[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_ivim_ts_regional_constr_10, +#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_ivim_ts_regional_10, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgIssueRevision" + }, + { ATF_POINTER, 7, offsetof(struct ivim_ts_MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LayerType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "layerType" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LayerID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "layerID" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionGeometryList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSegmentList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSegments" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DataParameters, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dataParameters" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RestrictionClassList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "restrictionList" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ivim_ts_regional_10, + 0, + { +#if !defined(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_ivim_ts_regional_constr_10, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msgIssueRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* layerType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* layerID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* roadSegments */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dataParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* restrictionList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MapData_specs_1 = { + sizeof(struct ivim_ts_MapData), + offsetof(struct ivim_ts_MapData, _asn_ctx), + asn_MAP_ivim_ts_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ivim_ts_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_MapData_tags_1, + sizeof(asn_DEF_ivim_ts_MapData_tags_1) + /sizeof(asn_DEF_ivim_ts_MapData_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MapData_tags_1) + /sizeof(asn_DEF_ivim_ts_MapData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_MapData_1, + 9, /* Elements count */ + &asn_SPC_ivim_ts_MapData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapLocationContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapLocationContainer.c new file mode 100644 index 000000000..24df60d41 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapLocationContainer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MapLocationContainer.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_MapLocationContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MapLocationContainer, reference), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "reference" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MapLocationContainer, parts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MlcParts, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "parts" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_MapLocationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_MapLocationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reference */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* parts */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MapLocationContainer_specs_1 = { + sizeof(struct ivim_ts_MapLocationContainer), + offsetof(struct ivim_ts_MapLocationContainer, _asn_ctx), + asn_MAP_ivim_ts_MapLocationContainer_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_ivim_ts_MapLocationContainer = { + "MapLocationContainer", + "MapLocationContainer", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_MapLocationContainer_tags_1, + sizeof(asn_DEF_ivim_ts_MapLocationContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_MapLocationContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MapLocationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MapLocationContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_MapLocationContainer_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_MapLocationContainer_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_MapLocationContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapReference.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapReference.c new file mode 100644 index 000000000..562122206 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MapReference.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MapReference.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_MapReference_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MapReference, choice.roadsegment), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_MapReference, choice.intersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_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_ivim_ts_MapReference_specs_1 = { + sizeof(struct ivim_ts_MapReference), + offsetof(struct ivim_ts_MapReference, _asn_ctx), + offsetof(struct ivim_ts_MapReference, present), + sizeof(((struct ivim_ts_MapReference *)0)->present), + asn_MAP_ivim_ts_MapReference_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_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_ivim_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_ivim_ts_MapReference_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_MapReference_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MarkingColour.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MarkingColour.c new file mode 100644 index 000000000..2b93fa1cb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MarkingColour.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MarkingColour.h" + +int +ivim_ts_MarkingColour_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_ivim_ts_MarkingColour_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_MarkingColour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MarkingColour = { + "MarkingColour", + "MarkingColour", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_MarkingColour_tags_1, + sizeof(asn_DEF_ivim_ts_MarkingColour_tags_1) + /sizeof(asn_DEF_ivim_ts_MarkingColour_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MarkingColour_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MarkingColour_tags_1) + /sizeof(asn_DEF_ivim_ts_MarkingColour_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MarkingColour_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_MarkingColour_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaterialType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaterialType.c new file mode 100644 index 000000000..8e09a7d2d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaterialType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MaterialType.h" + +int +ivim_ts_MaterialType_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_ivim_ts_MaterialType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_MaterialType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MaterialType = { + "MaterialType", + "MaterialType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_MaterialType_tags_1, + sizeof(asn_DEF_ivim_ts_MaterialType_tags_1) + /sizeof(asn_DEF_ivim_ts_MaterialType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MaterialType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MaterialType_tags_1) + /sizeof(asn_DEF_ivim_ts_MaterialType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MaterialType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_MaterialType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaxLenghtOfPlatoon.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaxLenghtOfPlatoon.c new file mode 100644 index 000000000..ba80bd70d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaxLenghtOfPlatoon.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MaxLenghtOfPlatoon.h" + +int +ivim_ts_MaxLenghtOfPlatoon_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 <= 64L)) { + /* 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_ivim_ts_MaxLenghtOfPlatoon_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { 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_ivim_ts_MaxLenghtOfPlatoon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MaxLenghtOfPlatoon = { + "MaxLenghtOfPlatoon", + "MaxLenghtOfPlatoon", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_MaxLenghtOfPlatoon_tags_1, + sizeof(asn_DEF_ivim_ts_MaxLenghtOfPlatoon_tags_1) + /sizeof(asn_DEF_ivim_ts_MaxLenghtOfPlatoon_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MaxLenghtOfPlatoon_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MaxLenghtOfPlatoon_tags_1) + /sizeof(asn_DEF_ivim_ts_MaxLenghtOfPlatoon_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MaxLenghtOfPlatoon_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_MaxLenghtOfPlatoon_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaxNoOfVehicles.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaxNoOfVehicles.c new file mode 100644 index 000000000..45a4b4a37 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MaxNoOfVehicles.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MaxNoOfVehicles.h" + +int +ivim_ts_MaxNoOfVehicles_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 <= 64L)) { + /* 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_ivim_ts_MaxNoOfVehicles_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 2, 64 } /* (2..64) */, + { 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_ivim_ts_MaxNoOfVehicles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MaxNoOfVehicles = { + "MaxNoOfVehicles", + "MaxNoOfVehicles", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_MaxNoOfVehicles_tags_1, + sizeof(asn_DEF_ivim_ts_MaxNoOfVehicles_tags_1) + /sizeof(asn_DEF_ivim_ts_MaxNoOfVehicles_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MaxNoOfVehicles_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MaxNoOfVehicles_tags_1) + /sizeof(asn_DEF_ivim_ts_MaxNoOfVehicles_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MaxNoOfVehicles_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_MaxNoOfVehicles_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MergeDivergeNodeAngle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MergeDivergeNodeAngle.c new file mode 100644 index 000000000..30b8aadd7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MergeDivergeNodeAngle.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MergeDivergeNodeAngle.h" + +int +ivim_ts_MergeDivergeNodeAngle_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 >= -180L && value <= 180L)) { + /* 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_ivim_ts_MergeDivergeNodeAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -180, 180 } /* (-180..180) */, + { 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_ivim_ts_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_ivim_ts_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MergeDivergeNodeAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_MergeDivergeNodeAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MinuteOfTheYear.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MinuteOfTheYear.c new file mode 100644 index 000000000..5c06460d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MinuteOfTheYear.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MinuteOfTheYear.h" + +int +ivim_ts_MinuteOfTheYear_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 <= 527040L)) { + /* 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_ivim_ts_MinuteOfTheYear_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 527040 } /* (0..527040) */, + { 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_ivim_ts_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_ivim_ts_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_ivim_ts_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_ivim_ts_MinuteOfTheYear_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MinuteOfTheYear_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_MinuteOfTheYear_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MlcPart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MlcPart.c new file mode 100644 index 000000000..d44f17894 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MlcPart.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MlcPart.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_MlcPart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MlcPart, zoneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Zid, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zoneId" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_MlcPart, laneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const int asn_MAP_ivim_ts_MlcPart_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_MlcPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_MlcPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* laneIds */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MlcPart_specs_1 = { + sizeof(struct ivim_ts_MlcPart), + offsetof(struct ivim_ts_MlcPart, _asn_ctx), + asn_MAP_ivim_ts_MlcPart_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_MlcPart_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MlcPart = { + "MlcPart", + "MlcPart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_MlcPart_tags_1, + sizeof(asn_DEF_ivim_ts_MlcPart_tags_1) + /sizeof(asn_DEF_ivim_ts_MlcPart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MlcPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MlcPart_tags_1) + /sizeof(asn_DEF_ivim_ts_MlcPart_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_MlcPart_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_MlcPart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MlcParts.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MlcParts.c new file mode 100644 index 000000000..7b848a81c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MlcParts.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MlcParts.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_MlcParts_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_ivim_ts_MlcParts_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_MlcPart, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_MlcParts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_MlcParts_specs_1 = { + sizeof(struct ivim_ts_MlcParts), + offsetof(struct ivim_ts_MlcParts, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MlcParts = { + "MlcParts", + "MlcParts", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_MlcParts_tags_1, + sizeof(asn_DEF_ivim_ts_MlcParts_tags_1) + /sizeof(asn_DEF_ivim_ts_MlcParts_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MlcParts_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MlcParts_tags_1) + /sizeof(asn_DEF_ivim_ts_MlcParts_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MlcParts_constr_1, +#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_ivim_ts_MlcParts_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_MlcParts_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MonthDay.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MonthDay.c new file mode 100644 index 000000000..ae498fa41 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MonthDay.c @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MonthDay.h" + +static int +memb_ivim_ts_month_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 <= 12L)) { + /* 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_ivim_ts_day_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 <= 31L)) { + /* 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_ivim_ts_month_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (1..12) */, + { 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_ivim_ts_day_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (1..31) */, + { 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_ivim_ts_MonthDay_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MonthDay, month), + (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_ivim_ts_month_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_ivim_ts_month_constraint_1 + }, + 0, 0, /* No default value */ + "month" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MonthDay, day), + (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_ivim_ts_day_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_ivim_ts_day_constraint_1 + }, + 0, 0, /* No default value */ + "day" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_MonthDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_MonthDay_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* month */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* day */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MonthDay_specs_1 = { + sizeof(struct ivim_ts_MonthDay), + offsetof(struct ivim_ts_MonthDay, _asn_ctx), + asn_MAP_ivim_ts_MonthDay_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_ivim_ts_MonthDay = { + "MonthDay", + "MonthDay", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_MonthDay_tags_1, + sizeof(asn_DEF_ivim_ts_MonthDay_tags_1) + /sizeof(asn_DEF_ivim_ts_MonthDay_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MonthDay_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MonthDay_tags_1) + /sizeof(asn_DEF_ivim_ts_MonthDay_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_MonthDay_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_MonthDay_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEvent-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEvent-addGrpC.c new file mode 100644 index 000000000..01c25f012 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEvent-addGrpC.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ExceptionalCondition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stateChangeReason" + }, +}; +static const int asn_MAP_ivim_ts_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MovementEvent_addGrpC_specs_1 = { + sizeof(struct ivim_ts_MovementEvent_addGrpC), + offsetof(struct ivim_ts_MovementEvent_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ivim_ts_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ivim_ts_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEvent.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEvent.c new file mode 100644 index 000000000..7b8498f60 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEvent.c @@ -0,0 +1,236 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementEvent.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_5 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_ivim_ts_regional_constr_5 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_ivim_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_MovementEvent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_5 = { + sizeof(struct ivim_ts_MovementEvent__regional), + offsetof(struct ivim_ts_MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_5, + sizeof(asn_DEF_ivim_ts_regional_tags_5) + /sizeof(asn_DEF_ivim_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_5) + /sizeof(asn_DEF_ivim_ts_regional_tags_5[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_5, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MovementPhaseState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventState" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeChangeDetails, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timing" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AdvisorySpeedList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speeds" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ivim_ts_regional_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) + &asn_PER_memb_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_MovementEvent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventState */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* speeds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MovementEvent_specs_1 = { + sizeof(struct ivim_ts_MovementEvent), + offsetof(struct ivim_ts_MovementEvent, _asn_ctx), + asn_MAP_ivim_ts_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_MovementEvent_tags_1, + sizeof(asn_DEF_ivim_ts_MovementEvent_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MovementEvent_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementEvent_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEventList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEventList.c new file mode 100644 index 000000000..0cf15037b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementEventList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementEventList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_MovementEventList_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_ivim_ts_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_MovementEvent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_MovementEventList_specs_1 = { + sizeof(struct ivim_ts_MovementEventList), + offsetof(struct ivim_ts_MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_MovementEventList_tags_1, + sizeof(asn_DEF_ivim_ts_MovementEventList_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MovementEventList_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementEventList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MovementEventList_constr_1, +#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_ivim_ts_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementList.c new file mode 100644 index 000000000..9a7068a9d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_MovementList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_MovementState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_MovementList_specs_1 = { + sizeof(struct ivim_ts_MovementList), + offsetof(struct ivim_ts_MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_MovementList_tags_1, + sizeof(asn_DEF_ivim_ts_MovementList_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MovementList_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MovementList_constr_1, +#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_ivim_ts_MovementList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementPhaseState.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementPhaseState.c new file mode 100644 index 000000000..633b2c334 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementPhaseState.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementPhaseState.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_ivim_ts_MovementPhaseState_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { 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_ivim_ts_MovementPhaseState_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 4, "dark" }, + { 2, 17, "stop-Then-Proceed" }, + { 3, 15, "stop-And-Remain" }, + { 4, 12, "pre-Movement" }, + { 5, 27, "permissive-Movement-Allowed" }, + { 6, 26, "protected-Movement-Allowed" }, + { 7, 20, "permissive-clearance" }, + { 8, 19, "protected-clearance" }, + { 9, 27, "caution-Conflicting-Traffic" } +}; +static const unsigned int asn_MAP_ivim_ts_MovementPhaseState_enum2value_1[] = { + 9, /* caution-Conflicting-Traffic(9) */ + 1, /* dark(1) */ + 5, /* permissive-Movement-Allowed(5) */ + 7, /* permissive-clearance(7) */ + 4, /* pre-Movement(4) */ + 6, /* protected-Movement-Allowed(6) */ + 8, /* protected-clearance(8) */ + 3, /* stop-And-Remain(3) */ + 2, /* stop-Then-Proceed(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_MovementPhaseState_specs_1 = { + asn_MAP_ivim_ts_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_MovementPhaseState_enum2value_1, /* N => "tag"; sorted by N */ + 10, /* 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_ivim_ts_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_MovementPhaseState_tags_1, + sizeof(asn_DEF_ivim_ts_MovementPhaseState_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MovementPhaseState_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementPhaseState_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MovementPhaseState_constr_1, +#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_ivim_ts_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementState.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementState.c new file mode 100644 index 000000000..e85b3d0c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MovementState.c @@ -0,0 +1,257 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MovementState.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_6 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_ivim_ts_regional_constr_6 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_ivim_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_MovementState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_6 = { + sizeof(struct ivim_ts_MovementState__regional), + offsetof(struct ivim_ts_MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_6, + sizeof(asn_DEF_ivim_ts_regional_tags_6) + /sizeof(asn_DEF_ivim_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_6) + /sizeof(asn_DEF_ivim_ts_regional_tags_6[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_6, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "movementName" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalGroupID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalGroup" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MovementEventList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "state-time-speed" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ManeuverAssistList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maneuverAssistList" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ivim_ts_regional_6, + 0, + { +#if !defined(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_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_MovementState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* movementName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* signalGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* state-time-speed */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maneuverAssistList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_MovementState_specs_1 = { + sizeof(struct ivim_ts_MovementState), + offsetof(struct ivim_ts_MovementState, _asn_ctx), + asn_MAP_ivim_ts_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_MovementState_tags_1, + sizeof(asn_DEF_ivim_ts_MovementState_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementState_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MovementState_tags_1) + /sizeof(asn_DEF_ivim_ts_MovementState_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_MovementState_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MsgCount.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MsgCount.c new file mode 100644 index 000000000..47347c53e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_MsgCount.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_MsgCount.h" + +int +ivim_ts_MsgCount_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_ivim_ts_MsgCount_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_ivim_ts_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_MsgCount_tags_1, + sizeof(asn_DEF_ivim_ts_MsgCount_tags_1) + /sizeof(asn_DEF_ivim_ts_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_MsgCount_tags_1) + /sizeof(asn_DEF_ivim_ts_MsgCount_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_MsgCount_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_MsgCount_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-LLmD-64b.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-LLmD-64b.c new file mode 100644 index 000000000..3f5ee69fc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-LLmD-64b.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "lon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "lat" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Node_LLmD_64b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lat */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_LLmD_64b_specs_1 = { + sizeof(struct ivim_ts_Node_LLmD_64b), + offsetof(struct ivim_ts_Node_LLmD_64b, _asn_ctx), + asn_MAP_ivim_ts_Node_LLmD_64b_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_ivim_ts_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_ivim_ts_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_LLmD_64b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-20b.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-20b.c new file mode 100644 index 000000000..f9d27684c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-20b.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Node_XY_20b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_20b_specs_1 = { + sizeof(struct ivim_ts_Node_XY_20b), + offsetof(struct ivim_ts_Node_XY_20b, _asn_ctx), + asn_MAP_ivim_ts_Node_XY_20b_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_ivim_ts_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Node_XY_20b_tags_1, + sizeof(asn_DEF_ivim_ts_Node_XY_20b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Node_XY_20b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_20b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-22b.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-22b.c new file mode 100644 index 000000000..d19b08b11 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-22b.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B11, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Node_XY_22b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_22b_specs_1 = { + sizeof(struct ivim_ts_Node_XY_22b), + offsetof(struct ivim_ts_Node_XY_22b, _asn_ctx), + asn_MAP_ivim_ts_Node_XY_22b_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_ivim_ts_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Node_XY_22b_tags_1, + sizeof(asn_DEF_ivim_ts_Node_XY_22b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Node_XY_22b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_22b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-24b.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-24b.c new file mode 100644 index 000000000..214c22fb1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-24b.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B12, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Node_XY_24b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_24b_specs_1 = { + sizeof(struct ivim_ts_Node_XY_24b), + offsetof(struct ivim_ts_Node_XY_24b, _asn_ctx), + asn_MAP_ivim_ts_Node_XY_24b_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_ivim_ts_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Node_XY_24b_tags_1, + sizeof(asn_DEF_ivim_ts_Node_XY_24b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Node_XY_24b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_24b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-26b.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-26b.c new file mode 100644 index 000000000..bf83f7218 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-26b.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Node_XY_26b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_26b_specs_1 = { + sizeof(struct ivim_ts_Node_XY_26b), + offsetof(struct ivim_ts_Node_XY_26b, _asn_ctx), + asn_MAP_ivim_ts_Node_XY_26b_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_ivim_ts_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Node_XY_26b_tags_1, + sizeof(asn_DEF_ivim_ts_Node_XY_26b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Node_XY_26b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_26b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-28b.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-28b.c new file mode 100644 index 000000000..8642184e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-28b.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B14, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Node_XY_28b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_28b_specs_1 = { + sizeof(struct ivim_ts_Node_XY_28b), + offsetof(struct ivim_ts_Node_XY_28b, _asn_ctx), + asn_MAP_ivim_ts_Node_XY_28b_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_ivim_ts_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Node_XY_28b_tags_1, + sizeof(asn_DEF_ivim_ts_Node_XY_28b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Node_XY_28b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_28b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-32b.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-32b.c new file mode 100644 index 000000000..ebbe5fcd9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node-XY-32b.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "x" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B16, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "y" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Node_XY_32b_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* x */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* y */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_XY_32b_specs_1 = { + sizeof(struct ivim_ts_Node_XY_32b), + offsetof(struct ivim_ts_Node_XY_32b, _asn_ctx), + asn_MAP_ivim_ts_Node_XY_32b_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_ivim_ts_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Node_XY_32b_tags_1, + sizeof(asn_DEF_ivim_ts_Node_XY_32b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Node_XY_32b_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_XY_32b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node.c new file mode 100644 index 000000000..fd63a8e76 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Node.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Node.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Node, id), + (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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lane" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneConnectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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 ivim_ts_Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "intersectionID" + }, +}; +static const int asn_MAP_ivim_ts_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Node_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lane */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* intersectionID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Node_specs_1 = { + sizeof(struct ivim_ts_Node), + offsetof(struct ivim_ts_Node, _asn_ctx), + asn_MAP_ivim_ts_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Node_tags_1, + sizeof(asn_DEF_ivim_ts_Node_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Node_tags_1) + /sizeof(asn_DEF_ivim_ts_Node_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Node_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_Node_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeSet-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeSet-addGrpC.c new file mode 100644 index 000000000..65f652c29 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeSet-addGrpC.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSet-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct ivim_ts_NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PtvRequestType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ptvRequest" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeLink, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodeLink" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Node, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node" + }, +}; +static const int asn_MAP_ivim_ts_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_NodeAttributeSet_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptvRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeLink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* node */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct ivim_ts_NodeAttributeSet_addGrpC), + offsetof(struct ivim_ts_NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeSetXY.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeSetXY.c new file mode 100644 index 000000000..32137fdab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeSetXY.c @@ -0,0 +1,299 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeSetXY.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_8 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_ivim_ts_regional_constr_8 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_ivim_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_NodeAttributeSetXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_8 = { + sizeof(struct ivim_ts_NodeAttributeSetXY__regional), + offsetof(struct ivim_ts_NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_8, + sizeof(asn_DEF_ivim_ts_regional_tags_8) + /sizeof(asn_DEF_ivim_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_8) + /sizeof(asn_DEF_ivim_ts_regional_tags_8[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_ivim_ts_regional_constr_8, +#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_ivim_ts_regional_8, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct ivim_ts_NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeAttributeXYList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "localNode" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SegmentAttributeXYList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "disabled" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SegmentAttributeXYList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneDataAttributeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dWidth" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Offset_B10, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dElevation" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ivim_ts_regional_8, + 0, + { +#if !defined(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_ivim_ts_regional_constr_8, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_NodeAttributeSetXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localNode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* disabled */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dElevation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_NodeAttributeSetXY_specs_1 = { + sizeof(struct ivim_ts_NodeAttributeSetXY), + offsetof(struct ivim_ts_NodeAttributeSetXY, _asn_ctx), + asn_MAP_ivim_ts_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ivim_ts_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_ivim_ts_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeAttributeSetXY_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_ivim_ts_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeXY.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeXY.c new file mode 100644 index 000000000..7929371db --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeXY.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXY.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_ivim_ts_NodeAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */, + { 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_ivim_ts_NodeAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 8, "stopLine" }, + { 2, 16, "roundedCapStyleA" }, + { 3, 16, "roundedCapStyleB" }, + { 4, 10, "mergePoint" }, + { 5, 12, "divergePoint" }, + { 6, 18, "downstreamStopLine" }, + { 7, 19, "downstreamStartNode" }, + { 8, 15, "closedToTraffic" }, + { 9, 10, "safeIsland" }, + { 10, 20, "curbPresentAtStepOff" }, + { 11, 14, "hydrantPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_NodeAttributeXY_enum2value_1[] = { + 8, /* closedToTraffic(8) */ + 10, /* curbPresentAtStepOff(10) */ + 5, /* divergePoint(5) */ + 7, /* downstreamStartNode(7) */ + 6, /* downstreamStopLine(6) */ + 11, /* hydrantPresent(11) */ + 4, /* mergePoint(4) */ + 0, /* reserved(0) */ + 2, /* roundedCapStyleA(2) */ + 3, /* roundedCapStyleB(3) */ + 9, /* safeIsland(9) */ + 1 /* stopLine(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_NodeAttributeXY_specs_1 = { + asn_MAP_ivim_ts_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_NodeAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* Number of elements in the maps */ + 13, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_NodeAttributeXY_tags_1, + sizeof(asn_DEF_ivim_ts_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeAttributeXY_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_NodeAttributeXY_constr_1, +#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_ivim_ts_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeXYList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeXYList.c new file mode 100644 index 000000000..d486d1c86 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeAttributeXYList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeAttributeXYList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_NodeAttributeXYList_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_ivim_ts_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ivim_ts_NodeAttributeXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_NodeAttributeXYList_specs_1 = { + sizeof(struct ivim_ts_NodeAttributeXYList), + offsetof(struct ivim_ts_NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_ivim_ts_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeAttributeXYList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_NodeAttributeXYList_constr_1, +#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_ivim_ts_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeLink.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeLink.c new file mode 100644 index 000000000..b18cb1649 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeLink.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeLink.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_NodeLink_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Node, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_NodeLink_specs_1 = { + sizeof(struct ivim_ts_NodeLink), + offsetof(struct ivim_ts_NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_NodeLink_tags_1, + sizeof(asn_DEF_ivim_ts_NodeLink_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_NodeLink_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeLink_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_NodeLink_constr_1, +#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_ivim_ts_NodeLink_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeListXY.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeListXY.c new file mode 100644 index 000000000..92be075d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeListXY.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeListXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_NodeListXY_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_ivim_ts_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeSetXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ComputedLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "computed" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_NodeListXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* computed */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_NodeListXY_specs_1 = { + sizeof(struct ivim_ts_NodeListXY), + offsetof(struct ivim_ts_NodeListXY, _asn_ctx), + offsetof(struct ivim_ts_NodeListXY, present), + sizeof(((struct ivim_ts_NodeListXY *)0)->present), + asn_MAP_ivim_ts_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeListXY = { + "NodeListXY", + "NodeListXY", + &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_ivim_ts_NodeListXY_constr_1, +#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_ivim_ts_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeOffsetPointXY.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeOffsetPointXY.c new file mode 100644 index 000000000..3f7db9b77 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeOffsetPointXY.c @@ -0,0 +1,223 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeOffsetPointXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_NodeOffsetPointXY_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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Node_XY_20b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Node_XY_22b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Node_XY_24b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Node_XY_26b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Node_XY_28b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Node_XY_32b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-XY6" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Node_LLmD_64b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "node-LatLon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Reg_NodeOffsetPointXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_NodeOffsetPointXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* node-XY1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* node-XY2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* node-XY3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* node-XY4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* node-XY5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* node-XY6 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* node-LatLon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_NodeOffsetPointXY_specs_1 = { + sizeof(struct ivim_ts_NodeOffsetPointXY), + offsetof(struct ivim_ts_NodeOffsetPointXY, _asn_ctx), + offsetof(struct ivim_ts_NodeOffsetPointXY, present), + sizeof(((struct ivim_ts_NodeOffsetPointXY *)0)->present), + asn_MAP_ivim_ts_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeOffsetPointXY = { + "NodeOffsetPointXY", + "NodeOffsetPointXY", + &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_ivim_ts_NodeOffsetPointXY_constr_1, +#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_ivim_ts_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeSetXY.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeSetXY.c new file mode 100644 index 000000000..f3016602b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeSetXY.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeSetXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_NodeSetXY_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 2, 63 } /* (SIZE(2..63)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_NodeXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_NodeSetXY_specs_1 = { + sizeof(struct ivim_ts_NodeSetXY), + offsetof(struct ivim_ts_NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_NodeSetXY_tags_1, + sizeof(asn_DEF_ivim_ts_NodeSetXY_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_NodeSetXY_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeSetXY_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_NodeSetXY_constr_1, +#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_ivim_ts_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeXY.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeXY.c new file mode 100644 index 000000000..8b4aa7840 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NodeXY.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NodeXY.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeOffsetPointXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "delta" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeAttributeSetXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "attributes" + }, +}; +static const int asn_MAP_ivim_ts_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_NodeXY_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delta */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* attributes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_NodeXY_specs_1 = { + sizeof(struct ivim_ts_NodeXY), + offsetof(struct ivim_ts_NodeXY, _asn_ctx), + asn_MAP_ivim_ts_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_NodeXY_tags_1, + sizeof(asn_DEF_ivim_ts_NodeXY_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_NodeXY_tags_1) + /sizeof(asn_DEF_ivim_ts_NodeXY_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NumberOfOccupants.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NumberOfOccupants.c new file mode 100644 index 000000000..7a4d2bada --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_NumberOfOccupants.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_NumberOfOccupants.h" + +int +ivim_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_ivim_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_ivim_ts_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_NumberOfOccupants_tags_1, + sizeof(asn_DEF_ivim_ts_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_ivim_ts_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_NumberOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B09.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B09.c new file mode 100644 index 000000000..37cca6999 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B09.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B09.h" + +int +ivim_ts_Offset_B09_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 >= -256L && 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_ivim_ts_Offset_B09_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -256, 255 } /* (-256..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_ivim_ts_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Offset_B09_tags_1, + sizeof(asn_DEF_ivim_ts_Offset_B09_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Offset_B09_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B09_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Offset_B09_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Offset_B09_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B10.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B10.c new file mode 100644 index 000000000..84112e5d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B10.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B10.h" + +int +ivim_ts_Offset_B10_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 >= -512L && 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_ivim_ts_Offset_B10_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -512, 511 } /* (-512..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_ivim_ts_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Offset_B10_tags_1, + sizeof(asn_DEF_ivim_ts_Offset_B10_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Offset_B10_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B10_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Offset_B10_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Offset_B10_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B11.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B11.c new file mode 100644 index 000000000..8b13b3abf --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B11.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B11.h" + +int +ivim_ts_Offset_B11_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 >= -1024L && 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_ivim_ts_Offset_B11_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..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_ivim_ts_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Offset_B11_tags_1, + sizeof(asn_DEF_ivim_ts_Offset_B11_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Offset_B11_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B11_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Offset_B11_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Offset_B11_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B12.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B12.c new file mode 100644 index 000000000..26477dae5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B12.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B12.h" + +int +ivim_ts_Offset_B12_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_ivim_ts_Offset_B12_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_ivim_ts_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Offset_B12_tags_1, + sizeof(asn_DEF_ivim_ts_Offset_B12_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Offset_B12_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B12_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Offset_B12_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Offset_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B13.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B13.c new file mode 100644 index 000000000..87674c786 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B13.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B13.h" + +int +ivim_ts_Offset_B13_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 >= -4096L && 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_ivim_ts_Offset_B13_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, -4096, 4095 } /* (-4096..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_ivim_ts_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Offset_B13_tags_1, + sizeof(asn_DEF_ivim_ts_Offset_B13_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Offset_B13_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B13_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Offset_B13_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Offset_B13_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B14.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B14.c new file mode 100644 index 000000000..c63c9544f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B14.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B14.h" + +int +ivim_ts_Offset_B14_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 >= -8192L && 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) +asn_per_constraints_t asn_PER_type_ivim_ts_Offset_B14_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..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_ivim_ts_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Offset_B14_tags_1, + sizeof(asn_DEF_ivim_ts_Offset_B14_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Offset_B14_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B14_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Offset_B14_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Offset_B14_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B16.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B16.c new file mode 100644 index 000000000..481a334e5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Offset-B16.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Offset-B16.h" + +int +ivim_ts_Offset_B16_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_ivim_ts_Offset_B16_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_ivim_ts_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Offset_B16_tags_1, + sizeof(asn_DEF_ivim_ts_Offset_B16_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Offset_B16_tags_1) + /sizeof(asn_DEF_ivim_ts_Offset_B16_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Offset_B16_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Offset_B16_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_OpeningDaysHours.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_OpeningDaysHours.c new file mode 100644 index 000000000..9863d3161 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_OpeningDaysHours.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_ivim_ts_OpeningDaysHours_tags_1, + sizeof(asn_DEF_ivim_ts_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_ivim_ts_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_coding/src/ivim_ts_OverlayLaneList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_OverlayLaneList.c new file mode 100644 index 000000000..dac6719ed --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_OverlayLaneList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_OverlayLaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_OverlayLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_ts_LaneID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_OverlayLaneList_specs_1 = { + sizeof(struct ivim_ts_OverlayLaneList), + offsetof(struct ivim_ts_OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_OverlayLaneList_tags_1, + sizeof(asn_DEF_ivim_ts_OverlayLaneList_tags_1) + /sizeof(asn_DEF_ivim_ts_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_OverlayLaneList_tags_1) + /sizeof(asn_DEF_ivim_ts_OverlayLaneList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_OverlayLaneList_constr_1, +#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_ivim_ts_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PassengerCapacity.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PassengerCapacity.c new file mode 100644 index 000000000..c7007a71e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PassengerCapacity.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PassengerCapacity.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PassengerCapacity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PassengerCapacity, numberOfSeats), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "numberOfSeats" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PassengerCapacity, numberOfStandingPlaces), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "numberOfStandingPlaces" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PassengerCapacity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PassengerCapacity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* numberOfSeats */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* numberOfStandingPlaces */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PassengerCapacity_specs_1 = { + sizeof(struct ivim_ts_PassengerCapacity), + offsetof(struct ivim_ts_PassengerCapacity, _asn_ctx), + asn_MAP_ivim_ts_PassengerCapacity_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_ivim_ts_PassengerCapacity = { + "PassengerCapacity", + "PassengerCapacity", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PassengerCapacity_tags_1, + sizeof(asn_DEF_ivim_ts_PassengerCapacity_tags_1) + /sizeof(asn_DEF_ivim_ts_PassengerCapacity_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PassengerCapacity_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PassengerCapacity_tags_1) + /sizeof(asn_DEF_ivim_ts_PassengerCapacity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_PassengerCapacity_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_PassengerCapacity_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathDeltaTime.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathDeltaTime.c new file mode 100644 index 000000000..7b30cc520 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathDeltaTime.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PathDeltaTime.h" + +int +ivim_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_ivim_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_ivim_ts_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PathDeltaTime_tags_1, + sizeof(asn_DEF_ivim_ts_PathDeltaTime_tags_1) + /sizeof(asn_DEF_ivim_ts_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PathDeltaTime_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PathDeltaTime_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathHistory.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathHistory.c new file mode 100644 index 000000000..b60d5d775 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathHistory.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PathHistory.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_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_ivim_ts_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_PathHistory_specs_1 = { + sizeof(struct ivim_ts_PathHistory), + offsetof(struct ivim_ts_PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_PathHistory_tags_1, + sizeof(asn_DEF_ivim_ts_PathHistory_tags_1) + /sizeof(asn_DEF_ivim_ts_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PathHistory_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_PathHistory_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathPoint.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathPoint.c new file mode 100644 index 000000000..742a1143d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PathPoint.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PathPoint.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_PathPoint_specs_1 = { + sizeof(struct ivim_ts_PathPoint), + offsetof(struct ivim_ts_PathPoint, _asn_ctx), + asn_MAP_ivim_ts_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PathPoint_tags_1, + sizeof(asn_DEF_ivim_ts_PathPoint_tags_1) + /sizeof(asn_DEF_ivim_ts_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PathPoint_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PayUnit.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PayUnit.c new file mode 100644 index 000000000..4acaf020c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PayUnit.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PayUnit.h" + +int +ivim_ts_PayUnit_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 == 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 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_ivim_ts_PayUnit_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_ivim_ts_PayUnit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PayUnit = { + "PayUnit", + "PayUnit", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_PayUnit_tags_1, + sizeof(asn_DEF_ivim_ts_PayUnit_tags_1) + /sizeof(asn_DEF_ivim_ts_PayUnit_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PayUnit_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PayUnit_tags_1) + /sizeof(asn_DEF_ivim_ts_PayUnit_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PayUnit_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_PayUnit_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentFee.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentFee.c new file mode 100644 index 000000000..88474364e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentFee.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentFee.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PaymentFee_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PaymentFee, paymentFeeAmount), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "paymentFeeAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PaymentFee, paymentFeeUnit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PayUnit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "paymentFeeUnit" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PaymentFee_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PaymentFee_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* paymentFeeAmount */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* paymentFeeUnit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PaymentFee_specs_1 = { + sizeof(struct ivim_ts_PaymentFee), + offsetof(struct ivim_ts_PaymentFee, _asn_ctx), + asn_MAP_ivim_ts_PaymentFee_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_ivim_ts_PaymentFee = { + "PaymentFee", + "PaymentFee", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PaymentFee_tags_1, + sizeof(asn_DEF_ivim_ts_PaymentFee_tags_1) + /sizeof(asn_DEF_ivim_ts_PaymentFee_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PaymentFee_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PaymentFee_tags_1) + /sizeof(asn_DEF_ivim_ts_PaymentFee_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_PaymentFee_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_PaymentFee_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeans.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeans.c new file mode 100644 index 000000000..cc8735f18 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeans.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentMeans.h" + +static int +memb_ivim_ts_pamentMeansUsageControl_constraint_1(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 == 2UL)) { + /* 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_ivim_ts_pamentMeansUsageControl_constr_4 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 asn_TYPE_member_t asn_MBR_ivim_ts_PaymentMeans_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PaymentMeans, personalAccountNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PersonalAccountNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "personalAccountNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PaymentMeans, paymentMeansExpiryDate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DateCompact, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "paymentMeansExpiryDate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PaymentMeans, pamentMeansUsageControl), + (ASN_TAG_CLASS_CONTEXT | (2 << 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) + &asn_PER_memb_ivim_ts_pamentMeansUsageControl_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_ivim_ts_pamentMeansUsageControl_constraint_1 + }, + 0, 0, /* No default value */ + "pamentMeansUsageControl" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PaymentMeans_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PaymentMeans_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* personalAccountNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* paymentMeansExpiryDate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pamentMeansUsageControl */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PaymentMeans_specs_1 = { + sizeof(struct ivim_ts_PaymentMeans), + offsetof(struct ivim_ts_PaymentMeans, _asn_ctx), + asn_MAP_ivim_ts_PaymentMeans_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_ivim_ts_PaymentMeans = { + "PaymentMeans", + "PaymentMeans", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PaymentMeans_tags_1, + sizeof(asn_DEF_ivim_ts_PaymentMeans_tags_1) + /sizeof(asn_DEF_ivim_ts_PaymentMeans_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PaymentMeans_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PaymentMeans_tags_1) + /sizeof(asn_DEF_ivim_ts_PaymentMeans_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_PaymentMeans_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_PaymentMeans_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeansBalance.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeansBalance.c new file mode 100644 index 000000000..de9294715 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeansBalance.c @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentMeansBalance.h" + +/* + * This type is implemented using ivim_ts_SignedValue, + * 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_ivim_ts_PaymentMeansBalance_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_descriptor_t asn_DEF_ivim_ts_PaymentMeansBalance = { + "PaymentMeansBalance", + "PaymentMeansBalance", + &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) + 0, +#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_ivim_ts_SignedValue_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_SignedValue_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeansUnit.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeansUnit.c new file mode 100644 index 000000000..21210ef6c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentMeansUnit.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentMeansUnit.h" + +int +ivim_ts_PaymentMeansUnit_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const ivim_ts_PayUnit_t *st = (const ivim_ts_PayUnit_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 == 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 ivim_ts_PayUnit, + * 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_ivim_ts_PaymentMeansUnit_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_ivim_ts_PaymentMeansUnit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PaymentMeansUnit = { + "PaymentMeansUnit", + "PaymentMeansUnit", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_PaymentMeansUnit_tags_1, + sizeof(asn_DEF_ivim_ts_PaymentMeansUnit_tags_1) + /sizeof(asn_DEF_ivim_ts_PaymentMeansUnit_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PaymentMeansUnit_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PaymentMeansUnit_tags_1) + /sizeof(asn_DEF_ivim_ts_PaymentMeansUnit_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PaymentMeansUnit_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_PaymentMeansUnit_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentSecurityData.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentSecurityData.c new file mode 100644 index 000000000..0542d88c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PaymentSecurityData.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PaymentSecurityData.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_PaymentSecurityData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PaymentSecurityData = { + "PaymentSecurityData", + "PaymentSecurityData", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_PaymentSecurityData_tags_1, + sizeof(asn_DEF_ivim_ts_PaymentSecurityData_tags_1) + /sizeof(asn_DEF_ivim_ts_PaymentSecurityData_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PaymentSecurityData_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PaymentSecurityData_tags_1) + /sizeof(asn_DEF_ivim_ts_PaymentSecurityData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PedestrianBicycleDetect.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PedestrianBicycleDetect.c new file mode 100644 index 000000000..33165678a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PedestrianBicycleDetect.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_ivim_ts_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_ivim_ts_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_ivim_ts_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_ivim_ts_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_coding/src/ivim_ts_PerformanceClass.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PerformanceClass.c new file mode 100644 index 000000000..996247d83 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PerformanceClass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PerformanceClass.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PerformanceClass_tags_1, + sizeof(asn_DEF_ivim_ts_PerformanceClass_tags_1) + /sizeof(asn_DEF_ivim_ts_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PerformanceClass_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PerformanceClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PersonalAccountNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PersonalAccountNumber.c new file mode 100644 index 000000000..356d78023 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PersonalAccountNumber.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PersonalAccountNumber.h" + +int +ivim_ts_PersonalAccountNumber_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 == 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 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_ivim_ts_PersonalAccountNumber_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_ivim_ts_PersonalAccountNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PersonalAccountNumber = { + "PersonalAccountNumber", + "PersonalAccountNumber", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_PersonalAccountNumber_tags_1, + sizeof(asn_DEF_ivim_ts_PersonalAccountNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_PersonalAccountNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PersonalAccountNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PersonalAccountNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_PersonalAccountNumber_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PersonalAccountNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_PersonalAccountNumber_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PhoneNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PhoneNumber.c new file mode 100644 index 000000000..c7f0d70ab --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PhoneNumber.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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 +ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_ivim_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_ivim_ts_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_ivim_ts_PhoneNumber_tags_1, + sizeof(asn_DEF_ivim_ts_PhoneNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PhoneNumber_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PhoneNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PlatooningRule.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PlatooningRule.c new file mode 100644 index 000000000..07df2ee1e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PlatooningRule.c @@ -0,0 +1,263 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PlatooningRule.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PlatooningRule_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PlatooningRule, priority), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PriorityLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PlatooningRule, allowedSaeAutomationLevels), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SaeAutomationLevels, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "allowedSaeAutomationLevels" + }, + { ATF_POINTER, 8, offsetof(struct ivim_ts_PlatooningRule, maxNoOfVehicles), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MaxNoOfVehicles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxNoOfVehicles" + }, + { ATF_POINTER, 7, offsetof(struct ivim_ts_PlatooningRule, maxLenghtOfPlatoon), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MaxLenghtOfPlatoon, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxLenghtOfPlatoon" + }, + { ATF_POINTER, 6, offsetof(struct ivim_ts_PlatooningRule, minGapBetweenVehicles), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GapBetweenVehicles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minGapBetweenVehicles" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_PlatooningRule, platoonMaxSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "platoonMaxSpeedLimit" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_PlatooningRule, platoonMinSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "platoonMinSpeedLimit" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_PlatooningRule, platoonSpeedRecommendation), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "platoonSpeedRecommendation" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_PlatooningRule, roadSignCodes), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSignCodes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSignCodes" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_PlatooningRule, extraText), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ConstraintTextLines2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extraText" + }, +}; +static const int asn_MAP_ivim_ts_PlatooningRule_oms_1[] = { 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PlatooningRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PlatooningRule_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priority */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allowedSaeAutomationLevels */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNoOfVehicles */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxLenghtOfPlatoon */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minGapBetweenVehicles */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* platoonMaxSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* platoonMinSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* platoonSpeedRecommendation */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* roadSignCodes */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* extraText */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PlatooningRule_specs_1 = { + sizeof(struct ivim_ts_PlatooningRule), + offsetof(struct ivim_ts_PlatooningRule, _asn_ctx), + asn_MAP_ivim_ts_PlatooningRule_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ivim_ts_PlatooningRule_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PlatooningRule = { + "PlatooningRule", + "PlatooningRule", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PlatooningRule_tags_1, + sizeof(asn_DEF_ivim_ts_PlatooningRule_tags_1) + /sizeof(asn_DEF_ivim_ts_PlatooningRule_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PlatooningRule_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PlatooningRule_tags_1) + /sizeof(asn_DEF_ivim_ts_PlatooningRule_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_PlatooningRule_1, + 10, /* Elements count */ + &asn_SPC_ivim_ts_PlatooningRule_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PlatooningRules.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PlatooningRules.c new file mode 100644 index 000000000..2cc63775c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PlatooningRules.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PlatooningRules.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_PlatooningRules_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_PlatooningRules_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_PlatooningRule, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_PlatooningRules_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_PlatooningRules_specs_1 = { + sizeof(struct ivim_ts_PlatooningRules), + offsetof(struct ivim_ts_PlatooningRules, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PlatooningRules = { + "PlatooningRules", + "PlatooningRules", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_PlatooningRules_tags_1, + sizeof(asn_DEF_ivim_ts_PlatooningRules_tags_1) + /sizeof(asn_DEF_ivim_ts_PlatooningRules_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PlatooningRules_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PlatooningRules_tags_1) + /sizeof(asn_DEF_ivim_ts_PlatooningRules_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PlatooningRules_constr_1, +#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_ivim_ts_PlatooningRules_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_PlatooningRules_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PolygonalLine.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PolygonalLine.c new file mode 100644 index 000000000..ec7c21c5a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PolygonalLine.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PolygonalLine.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_PolygonalLine_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_ivim_ts_PolygonalLine_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PolygonalLine, choice.deltaPositions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DeltaPositions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaPositions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PolygonalLine, choice.deltaPositionsWithAltitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DeltaReferencePositions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaPositionsWithAltitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PolygonalLine, choice.absolutePositions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AbsolutePositions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "absolutePositions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PolygonalLine, choice.absolutePositionsWithAltitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AbsolutePositionsWAltitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "absolutePositionsWithAltitude" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PolygonalLine_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaPositions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaPositionsWithAltitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* absolutePositions */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* absolutePositionsWithAltitude */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_PolygonalLine_specs_1 = { + sizeof(struct ivim_ts_PolygonalLine), + offsetof(struct ivim_ts_PolygonalLine, _asn_ctx), + offsetof(struct ivim_ts_PolygonalLine, present), + sizeof(((struct ivim_ts_PolygonalLine *)0)->present), + asn_MAP_ivim_ts_PolygonalLine_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PolygonalLine = { + "PolygonalLine", + "PolygonalLine", + &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_ivim_ts_PolygonalLine_constr_1, +#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_ivim_ts_PolygonalLine_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_PolygonalLine_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosCentMass.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosCentMass.c new file mode 100644 index 000000000..723b2d8fe --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosCentMass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PosCentMass.h" + +int +ivim_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_ivim_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_ivim_ts_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PosCentMass_tags_1, + sizeof(asn_DEF_ivim_ts_PosCentMass_tags_1) + /sizeof(asn_DEF_ivim_ts_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PosCentMass_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PosCentMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosConfidenceEllipse.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosConfidenceEllipse.c new file mode 100644 index 000000000..8881a48fe --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosConfidenceEllipse.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_PosConfidenceEllipse_specs_1 = { + sizeof(struct ivim_ts_PosConfidenceEllipse), + offsetof(struct ivim_ts_PosConfidenceEllipse, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_ivim_ts_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_ivim_ts_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosFrontAx.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosFrontAx.c new file mode 100644 index 000000000..476e44966 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosFrontAx.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PosFrontAx.h" + +int +ivim_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_ivim_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_ivim_ts_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PosFrontAx_tags_1, + sizeof(asn_DEF_ivim_ts_PosFrontAx_tags_1) + /sizeof(asn_DEF_ivim_ts_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PosFrontAx_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PosFrontAx_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosLonCarr.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosLonCarr.c new file mode 100644 index 000000000..8dcfea6e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosLonCarr.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PosLonCarr.h" + +int +ivim_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_ivim_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_ivim_ts_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PosLonCarr_tags_1, + sizeof(asn_DEF_ivim_ts_PosLonCarr_tags_1) + /sizeof(asn_DEF_ivim_ts_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PosLonCarr_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PosLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosPillar.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosPillar.c new file mode 100644 index 000000000..0f24bc27c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PosPillar.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PosPillar.h" + +int +ivim_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_ivim_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_ivim_ts_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PosPillar_tags_1, + sizeof(asn_DEF_ivim_ts_PosPillar_tags_1) + /sizeof(asn_DEF_ivim_ts_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PosPillar_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PosPillar_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Position3D-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Position3D-addGrpC.c new file mode 100644 index 000000000..b64537050 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Position3D-addGrpC.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Position3D_addGrpC_specs_1 = { + sizeof(struct ivim_ts_Position3D_addGrpC), + offsetof(struct ivim_ts_Position3D_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_Position3D_addGrpC_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_ivim_ts_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_Position3D_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_ivim_ts_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Position3D.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Position3D.c new file mode 100644 index 000000000..b26c90565 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Position3D.c @@ -0,0 +1,236 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Position3D.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_5 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_ivim_ts_regional_constr_5 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_ivim_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_5 = { + sizeof(struct ivim_ts_Position3D__regional), + offsetof(struct ivim_ts_Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_5, + sizeof(asn_DEF_ivim_ts_regional_tags_5) + /sizeof(asn_DEF_ivim_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_5) + /sizeof(asn_DEF_ivim_ts_regional_tags_5[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_5, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "lat" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "long" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Elevation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevation" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ivim_ts_regional_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) + &asn_PER_memb_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Position3D_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lat */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* long */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Position3D_specs_1 = { + sizeof(struct ivim_ts_Position3D), + offsetof(struct ivim_ts_Position3D, _asn_ctx), + asn_MAP_ivim_ts_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Position3D_tags_1, + sizeof(asn_DEF_ivim_ts_Position3D_tags_1) + /sizeof(asn_DEF_ivim_ts_Position3D_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Position3D_tags_1) + /sizeof(asn_DEF_ivim_ts_Position3D_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Position3D_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionConfidence.c new file mode 100644 index 000000000..98731bf02 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionConfidence.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PositionConfidence.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_ivim_ts_PositionConfidence_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_ivim_ts_PositionConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 5, "a500m" }, + { 2, 5, "a200m" }, + { 3, 5, "a100m" }, + { 4, 4, "a50m" }, + { 5, 4, "a20m" }, + { 6, 4, "a10m" }, + { 7, 3, "a5m" }, + { 8, 3, "a2m" }, + { 9, 3, "a1m" }, + { 10, 5, "a50cm" }, + { 11, 5, "a20cm" }, + { 12, 5, "a10cm" }, + { 13, 4, "a5cm" }, + { 14, 4, "a2cm" }, + { 15, 4, "a1cm" } +}; +static const unsigned int asn_MAP_ivim_ts_PositionConfidence_enum2value_1[] = { + 3, /* a100m(3) */ + 12, /* a10cm(12) */ + 6, /* a10m(6) */ + 15, /* a1cm(15) */ + 9, /* a1m(9) */ + 2, /* a200m(2) */ + 11, /* a20cm(11) */ + 5, /* a20m(5) */ + 14, /* a2cm(14) */ + 8, /* a2m(8) */ + 1, /* a500m(1) */ + 10, /* a50cm(10) */ + 4, /* a50m(4) */ + 13, /* a5cm(13) */ + 7, /* a5m(7) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PositionConfidence_specs_1 = { + asn_MAP_ivim_ts_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_PositionConfidence_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_ivim_ts_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_PositionConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_PositionConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PositionConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_PositionConfidence_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PositionConfidence_constr_1, +#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_ivim_ts_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionConfidenceSet.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionConfidenceSet.c new file mode 100644 index 000000000..d342ef058 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionConfidenceSet.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PositionConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pos" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ElevationConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevation" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PositionConfidenceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PositionConfidenceSet_specs_1 = { + sizeof(struct ivim_ts_PositionConfidenceSet), + offsetof(struct ivim_ts_PositionConfidenceSet, _asn_ctx), + asn_MAP_ivim_ts_PositionConfidenceSet_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_ivim_ts_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_ivim_ts_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_ivim_ts_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_ivim_ts_PositionConfidenceSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionOfOccupants.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionOfOccupants.c new file mode 100644 index 000000000..33d85dac1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionOfOccupants.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PositionOfOccupants.h" + +int +ivim_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_ivim_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_ivim_ts_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_PositionOfOccupants_tags_1, + sizeof(asn_DEF_ivim_ts_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_ivim_ts_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PositionOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionOfPillars.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionOfPillars.c new file mode 100644 index 000000000..06f9ff99f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionOfPillars.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PositionOfPillars.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_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_ivim_ts_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_PositionOfPillars_specs_1 = { + sizeof(struct ivim_ts_PositionOfPillars), + offsetof(struct ivim_ts_PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_PositionOfPillars_tags_1, + sizeof(asn_DEF_ivim_ts_PositionOfPillars_tags_1) + /sizeof(asn_DEF_ivim_ts_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PositionOfPillars_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionalAccuracy.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionalAccuracy.c new file mode 100644 index 000000000..7d7697a0e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositionalAccuracy.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SemiMajorAxisAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMajor" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SemiMinorAxisAccuracy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMinor" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SemiMajorAxisOrientation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PositionalAccuracy_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* orientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PositionalAccuracy_specs_1 = { + sizeof(struct ivim_ts_PositionalAccuracy), + offsetof(struct ivim_ts_PositionalAccuracy, _asn_ctx), + asn_MAP_ivim_ts_PositionalAccuracy_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_ivim_ts_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PositionalAccuracy_tags_1, + sizeof(asn_DEF_ivim_ts_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_ivim_ts_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_ivim_ts_PositionalAccuracy_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositioningSolutionType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositioningSolutionType.c new file mode 100644 index 000000000..ada832dff --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PositioningSolutionType.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PositioningSolutionType_specs_1 = { + asn_MAP_ivim_ts_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_PositioningSolutionType_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_ivim_ts_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_PositioningSolutionType_tags_1, + sizeof(asn_DEF_ivim_ts_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_ivim_ts_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PostCrashSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PostCrashSubCauseCode.c new file mode 100644 index 000000000..eb73378d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PostCrashSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PostCrashSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PostCrashSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PreemptPriorityList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PreemptPriorityList.c new file mode 100644 index 000000000..211839ddb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PreemptPriorityList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PreemptPriorityList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_PreemptPriorityList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_SignalControlZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_PreemptPriorityList_specs_1 = { + sizeof(struct ivim_ts_PreemptPriorityList), + offsetof(struct ivim_ts_PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_PreemptPriorityList_tags_1, + sizeof(asn_DEF_ivim_ts_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_ivim_ts_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_ivim_ts_PreemptPriorityList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PreemptPriorityList_constr_1, +#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_ivim_ts_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponse.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponse.c new file mode 100644 index 000000000..66fd80c65 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponse.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PrioritizationResponseStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "priorState" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalGroupID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalGroup" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PrioritizationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorState */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PrioritizationResponse_specs_1 = { + sizeof(struct ivim_ts_PrioritizationResponse), + offsetof(struct ivim_ts_PrioritizationResponse, _asn_ctx), + asn_MAP_ivim_ts_PrioritizationResponse_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_ivim_ts_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PrioritizationResponse_tags_1, + sizeof(asn_DEF_ivim_ts_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_ivim_ts_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_ivim_ts_PrioritizationResponse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponseList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponseList.c new file mode 100644 index 000000000..44276417d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponseList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_PrioritizationResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_PrioritizationResponse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_PrioritizationResponseList_specs_1 = { + sizeof(struct ivim_ts_PrioritizationResponseList), + offsetof(struct ivim_ts_PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_ivim_ts_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_ivim_ts_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_ivim_ts_PrioritizationResponseList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PrioritizationResponseList_constr_1, +#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_ivim_ts_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponseStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponseStatus.c new file mode 100644 index 000000000..5a1aa65a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PrioritizationResponseStatus.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PrioritizationResponseStatus.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_ivim_ts_PrioritizationResponseStatus_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_PrioritizationResponseStatus_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 9, "requested" }, + { 2, 10, "processing" }, + { 3, 17, "watchOtherTraffic" }, + { 4, 7, "granted" }, + { 5, 8, "rejected" }, + { 6, 11, "maxPresence" }, + { 7, 15, "reserviceLocked" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_PrioritizationResponseStatus_enum2value_1[] = { + 4, /* granted(4) */ + 6, /* maxPresence(6) */ + 2, /* processing(2) */ + 5, /* rejected(5) */ + 1, /* requested(1) */ + 7, /* reserviceLocked(7) */ + 0, /* unknown(0) */ + 3 /* watchOtherTraffic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PrioritizationResponseStatus_specs_1 = { + asn_MAP_ivim_ts_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_PrioritizationResponseStatus_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_ivim_ts_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PrioritizationResponseStatus_constr_1, +#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_ivim_ts_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PriorityLevel.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PriorityLevel.c new file mode 100644 index 000000000..df9074bb2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PriorityLevel.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PriorityLevel.h" + +int +ivim_ts_PriorityLevel_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 <= 2L)) { + /* 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_ivim_ts_PriorityLevel_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 ber_tlv_tag_t asn_DEF_ivim_ts_PriorityLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PriorityLevel = { + "PriorityLevel", + "PriorityLevel", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PriorityLevel_tags_1, + sizeof(asn_DEF_ivim_ts_PriorityLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_PriorityLevel_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PriorityLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PriorityLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_PriorityLevel_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PriorityLevel_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_PriorityLevel_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PriorityRequestType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PriorityRequestType.c new file mode 100644 index 000000000..d6b1f052a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PriorityRequestType.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PriorityRequestType.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_ivim_ts_PriorityRequestType_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_ivim_ts_PriorityRequestType_value2enum_1[] = { + { 0, 27, "priorityRequestTypeReserved" }, + { 1, 15, "priorityRequest" }, + { 2, 21, "priorityRequestUpdate" }, + { 3, 20, "priorityCancellation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_PriorityRequestType_enum2value_1[] = { + 3, /* priorityCancellation(3) */ + 1, /* priorityRequest(1) */ + 0, /* priorityRequestTypeReserved(0) */ + 2 /* priorityRequestUpdate(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PriorityRequestType_specs_1 = { + asn_MAP_ivim_ts_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_PriorityRequestType_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_ivim_ts_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_PriorityRequestType_tags_1, + sizeof(asn_DEF_ivim_ts_PriorityRequestType_tags_1) + /sizeof(asn_DEF_ivim_ts_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PriorityRequestType_tags_1) + /sizeof(asn_DEF_ivim_ts_PriorityRequestType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PriorityRequestType_constr_1, +#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_ivim_ts_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedCommunicationZone.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedCommunicationZone.c new file mode 100644 index 000000000..4aa9820a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedCommunicationZone.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_ProtectedCommunicationZone_specs_1 = { + sizeof(struct ivim_ts_ProtectedCommunicationZone), + offsetof(struct ivim_ts_ProtectedCommunicationZone, _asn_ctx), + asn_MAP_ivim_ts_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_ivim_ts_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ivim_ts_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedCommunicationZonesRSU.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedCommunicationZonesRSU.c new file mode 100644 index 000000000..34aff0b8a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedCommunicationZonesRSU.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedCommunicationZonesRSU.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_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) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_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_ivim_ts_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct ivim_ts_ProtectedCommunicationZonesRSU), + offsetof(struct ivim_ts_ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_ivim_ts_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ivim_ts_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneID.c new file mode 100644 index 000000000..62398f5de --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneID.h" + +int +ivim_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_ivim_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_ivim_ts_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ProtectedZoneID_tags_1, + sizeof(asn_DEF_ivim_ts_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ivim_ts_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_ProtectedZoneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneRadius.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneRadius.c new file mode 100644 index 000000000..1f2ec32b7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneRadius.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ProtectedZoneRadius.h" + +int +ivim_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_ivim_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_ivim_ts_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_ivim_ts_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ivim_ts_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_ProtectedZoneRadius_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneType.c new file mode 100644 index 000000000..f22c4beb8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ProtectedZoneType.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ProtectedZoneType_specs_1 = { + asn_MAP_ivim_ts_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_ProtectedZoneType_tags_1, + sizeof(asn_DEF_ivim_ts_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ivim_ts_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Provider.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Provider.c new file mode 100644 index 000000000..21166e492 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Provider.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Provider.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Provider_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Provider, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_Provider, providerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_Provider_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_Provider_specs_1 = { + sizeof(struct ivim_ts_Provider), + offsetof(struct ivim_ts_Provider, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_Provider = { + "Provider", + "Provider", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Provider_tags_1, + sizeof(asn_DEF_ivim_ts_Provider_tags_1) + /sizeof(asn_DEF_ivim_ts_Provider_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Provider_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Provider_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_Provider_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Provider_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivation.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivation.c new file mode 100644 index 000000000..7f7e3c082 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PtActivation.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PtActivation_specs_1 = { + sizeof(struct ivim_ts_PtActivation), + offsetof(struct ivim_ts_PtActivation, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PtActivation_tags_1, + sizeof(asn_DEF_ivim_ts_PtActivation_tags_1) + /sizeof(asn_DEF_ivim_ts_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PtActivation_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivationData.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivationData.c new file mode 100644 index 000000000..daf16f494 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivationData.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PtActivationData.h" + +int +ivim_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_ivim_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_ivim_ts_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_PtActivationData_tags_1, + sizeof(asn_DEF_ivim_ts_PtActivationData_tags_1) + /sizeof(asn_DEF_ivim_ts_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PtActivationData_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PtActivationData_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivationType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivationType.c new file mode 100644 index 000000000..cfb2231af --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtActivationType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PtActivationType.h" + +int +ivim_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_ivim_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_ivim_ts_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_PtActivationType_tags_1, + sizeof(asn_DEF_ivim_ts_PtActivationType_tags_1) + /sizeof(asn_DEF_ivim_ts_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PtActivationType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_PtActivationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtvRequestType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtvRequestType.c new file mode 100644 index 000000000..ed4eb29b3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PtvRequestType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PtvRequestType.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_ivim_ts_PtvRequestType_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) */ +static const asn_INTEGER_enum_map_t asn_MAP_ivim_ts_PtvRequestType_value2enum_1[] = { + { 0, 10, "preRequest" }, + { 1, 11, "mainRequest" }, + { 2, 16, "doorCloseRequest" }, + { 3, 13, "cancelRequest" }, + { 4, 16, "emergencyRequest" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_PtvRequestType_enum2value_1[] = { + 3, /* cancelRequest(3) */ + 2, /* doorCloseRequest(2) */ + 4, /* emergencyRequest(4) */ + 1, /* mainRequest(1) */ + 0 /* preRequest(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_PtvRequestType_specs_1 = { + asn_MAP_ivim_ts_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_PtvRequestType_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_PtvRequestType_tags_1, + sizeof(asn_DEF_ivim_ts_PtvRequestType_tags_1) + /sizeof(asn_DEF_ivim_ts_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PtvRequestType_tags_1) + /sizeof(asn_DEF_ivim_ts_PtvRequestType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_PtvRequestType_constr_1, +#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_ivim_ts_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PurseBalance.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PurseBalance.c new file mode 100644 index 000000000..cd0f49786 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_PurseBalance.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_PurseBalance.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_PurseBalance_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PurseBalance, purseValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignedValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "purseValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_PurseBalance, purseUnit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PayUnit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "purseUnit" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_PurseBalance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_PurseBalance_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* purseValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* purseUnit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_PurseBalance_specs_1 = { + sizeof(struct ivim_ts_PurseBalance), + offsetof(struct ivim_ts_PurseBalance, _asn_ctx), + asn_MAP_ivim_ts_PurseBalance_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_ivim_ts_PurseBalance = { + "PurseBalance", + "PurseBalance", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_PurseBalance_tags_1, + sizeof(asn_DEF_ivim_ts_PurseBalance_tags_1) + /sizeof(asn_DEF_ivim_ts_PurseBalance_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_PurseBalance_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_PurseBalance_tags_1) + /sizeof(asn_DEF_ivim_ts_PurseBalance_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_PurseBalance_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_PurseBalance_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RSCUnit.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RSCUnit.c new file mode 100644 index 000000000..d865c3085 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RSCUnit.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RSCUnit.h" + +int +ivim_ts_RSCUnit_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_ivim_ts_RSCUnit_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_ivim_ts_RSCUnit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RSCUnit = { + "RSCUnit", + "RSCUnit", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RSCUnit_tags_1, + sizeof(asn_DEF_ivim_ts_RSCUnit_tags_1) + /sizeof(asn_DEF_ivim_ts_RSCUnit_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RSCUnit_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RSCUnit_tags_1) + /sizeof(asn_DEF_ivim_ts_RSCUnit_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RSCUnit_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RSCUnit_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RSCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RSCode.c new file mode 100644 index 000000000..50e38f096 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RSCode.c @@ -0,0 +1,290 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RSCode.h" + +static int +memb_ivim_ts_itisCodes_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_layoutComponentId_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 <= 4L)) { + /* 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_ivim_ts_itisCodes_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_code_constr_3 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_layoutComponentId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..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 asn_TYPE_member_t asn_MBR_ivim_ts_code_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RSCode__code, choice.viennaConvention), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VcCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "viennaConvention" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RSCode__code, choice.iso14823), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ISO14823Code, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iso14823" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RSCode__code, choice.itisCodes), + (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_ivim_ts_itisCodes_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_ivim_ts_itisCodes_constraint_3 + }, + 0, 0, /* No default value */ + "itisCodes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RSCode__code, choice.anyCatalogue), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AnyCatalogue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "anyCatalogue" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_code_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* viennaConvention */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iso14823 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* itisCodes */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* anyCatalogue */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_code_specs_3 = { + sizeof(struct ivim_ts_RSCode__code), + offsetof(struct ivim_ts_RSCode__code, _asn_ctx), + offsetof(struct ivim_ts_RSCode__code, present), + sizeof(((struct ivim_ts_RSCode__code *)0)->present), + asn_MAP_ivim_ts_code_tag2el_3, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_code_3 = { + "code", + "code", + &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_ivim_ts_code_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) */ + CHOICE_constraint + }, + asn_MBR_ivim_ts_code_3, + 4, /* Elements count */ + &asn_SPC_ivim_ts_code_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_RSCode_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_RSCode, layoutComponentId), + (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_ivim_ts_layoutComponentId_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_ivim_ts_layoutComponentId_constraint_1 + }, + 0, 0, /* No default value */ + "layoutComponentId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RSCode, code), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_code_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "code" + }, +}; +static const int asn_MAP_ivim_ts_RSCode_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RSCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RSCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* layoutComponentId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* code */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RSCode_specs_1 = { + sizeof(struct ivim_ts_RSCode), + offsetof(struct ivim_ts_RSCode, _asn_ctx), + asn_MAP_ivim_ts_RSCode_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_RSCode_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RSCode = { + "RSCode", + "RSCode", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RSCode_tags_1, + sizeof(asn_DEF_ivim_ts_RSCode_tags_1) + /sizeof(asn_DEF_ivim_ts_RSCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RSCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RSCode_tags_1) + /sizeof(asn_DEF_ivim_ts_RSCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RSCode_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_RSCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCM-Revision.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCM-Revision.c new file mode 100644 index 000000000..78cd402f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCM-Revision.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCM-Revision.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_ivim_ts_RTCM_Revision_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_ivim_ts_RTCM_Revision_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 8, "rtcmRev2" }, + { 2, 8, "rtcmRev3" }, + { 3, 8, "reserved" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_RTCM_Revision_enum2value_1[] = { + 3, /* reserved(3) */ + 1, /* rtcmRev2(1) */ + 2, /* rtcmRev3(2) */ + 0 /* unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RTCM_Revision_specs_1 = { + asn_MAP_ivim_ts_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_RTCM_Revision_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_ivim_ts_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RTCM_Revision_tags_1, + sizeof(asn_DEF_ivim_ts_RTCM_Revision_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RTCM_Revision_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCM_Revision_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RTCM_Revision_constr_1, +#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_ivim_ts_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMcorrections.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMcorrections.c new file mode 100644 index 000000000..f9e40a2da --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMcorrections.c @@ -0,0 +1,299 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCMcorrections.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_8 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_ivim_ts_regional_constr_8 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_ivim_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_RTCMcorrections, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_8 = { + sizeof(struct ivim_ts_RTCMcorrections__regional), + offsetof(struct ivim_ts_RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_8, + sizeof(asn_DEF_ivim_ts_regional_tags_8) + /sizeof(asn_DEF_ivim_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_8) + /sizeof(asn_DEF_ivim_ts_regional_tags_8[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_ivim_ts_regional_constr_8, +#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_ivim_ts_regional_8, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgCnt" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RTCM_Revision, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rev" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_FullPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "anchorPoint" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RTCMheader, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rtcmHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RTCMmessageList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "msgs" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ivim_ts_regional_8, + 0, + { +#if !defined(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_ivim_ts_regional_constr_8, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RTCMcorrections_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* msgCnt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rev */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* anchorPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rtcmHeader */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* msgs */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RTCMcorrections_specs_1 = { + sizeof(struct ivim_ts_RTCMcorrections), + offsetof(struct ivim_ts_RTCMcorrections, _asn_ctx), + asn_MAP_ivim_ts_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ivim_ts_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RTCMcorrections_tags_1, + sizeof(asn_DEF_ivim_ts_RTCMcorrections_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RTCMcorrections_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCMcorrections_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_ivim_ts_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMheader.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMheader.c new file mode 100644 index 000000000..2935577f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMheader.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCMheader.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_GNSSstatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AntennaOffsetSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "offsetSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RTCMheader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* offsetSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RTCMheader_specs_1 = { + sizeof(struct ivim_ts_RTCMheader), + offsetof(struct ivim_ts_RTCMheader, _asn_ctx), + asn_MAP_ivim_ts_RTCMheader_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_ivim_ts_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RTCMheader_tags_1, + sizeof(asn_DEF_ivim_ts_RTCMheader_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RTCMheader_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCMheader_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMmessage.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMmessage.c new file mode 100644 index 000000000..3a9e75dfa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMmessage.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCMmessage.h" + +int +ivim_ts_RTCMmessage_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 <= 1023UL)) { + /* 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_ivim_ts_RTCMmessage_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (SIZE(1..1023)) */, + 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_ivim_ts_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_RTCMmessage_tags_1, + sizeof(asn_DEF_ivim_ts_RTCMmessage_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RTCMmessage_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCMmessage_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RTCMmessage_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RTCMmessage_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMmessageList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMmessageList.c new file mode 100644 index 000000000..83a71c9d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RTCMmessageList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RTCMmessageList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RTCMmessageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ivim_ts_RTCMmessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_RTCMmessageList_specs_1 = { + sizeof(struct ivim_ts_RTCMmessageList), + offsetof(struct ivim_ts_RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RTCMmessageList_tags_1, + sizeof(asn_DEF_ivim_ts_RTCMmessageList_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RTCMmessageList_tags_1) + /sizeof(asn_DEF_ivim_ts_RTCMmessageList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RTCMmessageList_constr_1, +#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_ivim_ts_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RccPart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RccPart.c new file mode 100644 index 000000000..f802ec784 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RccPart.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RccPart.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RccPart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RccPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RccPart, roadType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_NOFLAGS, 0, offsetof(struct ivim_ts_RccPart, laneConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneConfiguration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RccPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RccPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roadType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* laneConfiguration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RccPart_specs_1 = { + sizeof(struct ivim_ts_RccPart), + offsetof(struct ivim_ts_RccPart, _asn_ctx), + asn_MAP_ivim_ts_RccPart_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_ivim_ts_RccPart = { + "RccPart", + "RccPart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RccPart_tags_1, + sizeof(asn_DEF_ivim_ts_RccPart_tags_1) + /sizeof(asn_DEF_ivim_ts_RccPart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RccPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RccPart_tags_1) + /sizeof(asn_DEF_ivim_ts_RccPart_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RccPart_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_RccPart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptAuthenticator.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptAuthenticator.c new file mode 100644 index 000000000..e4b1e2362 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptAuthenticator.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptAuthenticator.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptAuthenticator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptAuthenticator = { + "ReceiptAuthenticator", + "ReceiptAuthenticator", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_ReceiptAuthenticator_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptAuthenticator_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptAuthenticator_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptAuthenticator_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptAuthenticator_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptAuthenticator_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptContract.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptContract.c new file mode 100644 index 000000000..052b7f5b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptContract.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptContract.h" + +static int +memb_ivim_ts_sessionTypeOfContract_constraint_1(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 == 2UL)) { + /* 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_ivim_ts_sessionTypeOfContract_constr_3 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 asn_TYPE_member_t asn_MBR_ivim_ts_ReceiptContract_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptContract, sessionContractProvider), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "sessionContractProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptContract, sessionTypeOfContract), + (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) + &asn_PER_memb_ivim_ts_sessionTypeOfContract_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_ivim_ts_sessionTypeOfContract_constraint_1 + }, + 0, 0, /* No default value */ + "sessionTypeOfContract" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptContract, sessionContractSerialNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int4, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionContractSerialNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptContract_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ReceiptContract_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sessionContractProvider */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sessionTypeOfContract */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sessionContractSerialNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ReceiptContract_specs_1 = { + sizeof(struct ivim_ts_ReceiptContract), + offsetof(struct ivim_ts_ReceiptContract, _asn_ctx), + asn_MAP_ivim_ts_ReceiptContract_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_ivim_ts_ReceiptContract = { + "ReceiptContract", + "ReceiptContract", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ReceiptContract_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptContract_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptContract_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptContract_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptContract_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptContract_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ReceiptContract_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_ReceiptContract_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData.c new file mode 100644 index 000000000..19ecc165a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData.c @@ -0,0 +1,422 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptData.h" + +static int +memb_ivim_ts_sessionTypeOfContract_constraint_1(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 == 2UL)) { + /* 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_ivim_ts_sessionContextVersion_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; + } +} + +static int +memb_ivim_ts_receiptDataAuthenticator_constraint_1(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 == 4UL)) { + /* 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_ivim_ts_sessionTypeOfContract_constr_12 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_sessionContextVersion_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_receiptDataAuthenticator_constr_14 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_ReceiptData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DateAndTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionServiceProvider), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "sessionServiceProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, locationOfStation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "locationOfStation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionLocation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SessionLocation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionLocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionResult), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ResultOp, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionTariffClass), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionTariffClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionClaimedClass), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionClaimedClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionFee), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PaymentFee, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionFee" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionContractProvider), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "sessionContractProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionTypeOfContract), + (ASN_TAG_CLASS_CONTEXT | (10 << 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) + &asn_PER_memb_ivim_ts_sessionTypeOfContract_constr_12, +#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_ivim_ts_sessionTypeOfContract_constraint_1 + }, + 0, 0, /* No default value */ + "sessionTypeOfContract" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, sessionContextVersion), + (ASN_TAG_CLASS_CONTEXT | (11 << 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_ivim_ts_sessionContextVersion_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_ivim_ts_sessionContextVersion_constraint_1 + }, + 0, 0, /* No default value */ + "sessionContextVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptData, receiptDataAuthenticator), + (ASN_TAG_CLASS_CONTEXT | (12 << 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) + &asn_PER_memb_ivim_ts_receiptDataAuthenticator_constr_14, +#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_ivim_ts_receiptDataAuthenticator_constraint_1 + }, + 0, 0, /* No default value */ + "receiptDataAuthenticator" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ReceiptData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sessionTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sessionServiceProvider */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* locationOfStation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sessionLocation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sessionType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sessionResult */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sessionTariffClass */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sessionClaimedClass */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* sessionFee */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* sessionContractProvider */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* sessionTypeOfContract */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* sessionContextVersion */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* receiptDataAuthenticator */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ReceiptData_specs_1 = { + sizeof(struct ivim_ts_ReceiptData), + offsetof(struct ivim_ts_ReceiptData, _asn_ctx), + asn_MAP_ivim_ts_ReceiptData_tag2el_1, + 13, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptData = { + "ReceiptData", + "ReceiptData", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ReceiptData_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptData_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptData_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptData_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptData_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ReceiptData_1, + 13, /* Elements count */ + &asn_SPC_ivim_ts_ReceiptData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData1.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData1.c new file mode 100644 index 000000000..e3790feb6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData1.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptData1.h" + +/* + * This type is implemented using ivim_ts_ReceiptData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptData1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptData1 = { + "ReceiptData1", + "ReceiptData1", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ReceiptData1_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptData1_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptData1_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptData1_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptData1_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptData1_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ReceiptData_1, + 13, /* Elements count */ + &asn_SPC_ivim_ts_ReceiptData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData2.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData2.c new file mode 100644 index 000000000..a38409138 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptData2.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptData2.h" + +/* + * This type is implemented using ivim_ts_ReceiptData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptData2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptData2 = { + "ReceiptData2", + "ReceiptData2", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ReceiptData2_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptData2_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptData2_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptData2_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptData2_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptData2_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ReceiptData_1, + 13, /* Elements count */ + &asn_SPC_ivim_ts_ReceiptData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptDistance.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptDistance.c new file mode 100644 index 000000000..9e31a9816 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptDistance.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptDistance.h" + +int +ivim_ts_ReceiptDistance_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 <= 16777215L)) { + /* 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 ivim_ts_Int3, + * 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_ivim_ts_ReceiptDistance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */, + { 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_ivim_ts_ReceiptDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptDistance = { + "ReceiptDistance", + "ReceiptDistance", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ReceiptDistance_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptDistance_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptDistance_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptDistance_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptDistance_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ReceiptDistance_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ReceiptDistance_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptFinancialPart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptFinancialPart.c new file mode 100644 index 000000000..d923b310d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptFinancialPart.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptFinancialPart.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_ReceiptFinancialPart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptFinancialPart, personalAccountNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PersonalAccountNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "personalAccountNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptFinancialPart, sessionPaymentFee), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PaymentFee, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionPaymentFee" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptFinancialPart, sessionCurrentBalance), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PurseBalance, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionCurrentBalance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptFinancialPart, receiptFinancialSerialNumber), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int4, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "receiptFinancialSerialNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptFinancialPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ReceiptFinancialPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* personalAccountNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sessionPaymentFee */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sessionCurrentBalance */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* receiptFinancialSerialNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ReceiptFinancialPart_specs_1 = { + sizeof(struct ivim_ts_ReceiptFinancialPart), + offsetof(struct ivim_ts_ReceiptFinancialPart, _asn_ctx), + asn_MAP_ivim_ts_ReceiptFinancialPart_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_ivim_ts_ReceiptFinancialPart = { + "ReceiptFinancialPart", + "ReceiptFinancialPart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ReceiptFinancialPart_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptFinancialPart_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptFinancialPart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptFinancialPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptFinancialPart_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptFinancialPart_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ReceiptFinancialPart_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_ReceiptFinancialPart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptICC-Id.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptICC-Id.c new file mode 100644 index 000000000..8b01ff750 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptICC-Id.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptICC-Id.h" + +/* + * This type is implemented using ivim_ts_ICC_Id, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptICC_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptICC_Id = { + "ReceiptICC-Id", + "ReceiptICC-Id", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_ReceiptICC_Id_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptICC_Id_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptICC_Id_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptICC_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptICC_Id_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptICC_Id_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptOBUId.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptOBUId.c new file mode 100644 index 000000000..13955df79 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptOBUId.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptOBUId.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptOBUId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptOBUId = { + "ReceiptOBUId", + "ReceiptOBUId", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_ReceiptOBUId_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptOBUId_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptOBUId_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptOBUId_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptOBUId_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptOBUId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptServicePart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptServicePart.c new file mode 100644 index 000000000..93abf6f3b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptServicePart.c @@ -0,0 +1,268 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptServicePart.h" + +static int +memb_ivim_ts_stationLocation_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 <= 1048575L)) { + /* 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_ivim_ts_sessionLocation_constraint_1(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; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_stationLocation_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1048575 } /* (0..1048575) */, + { 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_ivim_ts_sessionLocation_constr_5 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 asn_TYPE_member_t asn_MBR_ivim_ts_ReceiptServicePart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptServicePart, sessionTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DateAndTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptServicePart, sessionServiceProvider), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "sessionServiceProvider" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptServicePart, stationLocation), + (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_ivim_ts_stationLocation_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_ivim_ts_stationLocation_constraint_1 + }, + 0, 0, /* No default value */ + "stationLocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptServicePart, sessionLocation), + (ASN_TAG_CLASS_CONTEXT | (3 << 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) + &asn_PER_memb_ivim_ts_sessionLocation_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_ivim_ts_sessionLocation_constraint_1 + }, + 0, 0, /* No default value */ + "sessionLocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptServicePart, typeOfSession), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_EfcDsrcApplication_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 */ + "typeOfSession" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptServicePart, sessionResultOperational), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ResultOp, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionResultOperational" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReceiptServicePart, sessionResultFinancial), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ResultFin, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionResultFinancial" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptServicePart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ReceiptServicePart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sessionTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sessionServiceProvider */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* stationLocation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sessionLocation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* typeOfSession */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sessionResultOperational */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* sessionResultFinancial */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ReceiptServicePart_specs_1 = { + sizeof(struct ivim_ts_ReceiptServicePart), + offsetof(struct ivim_ts_ReceiptServicePart, _asn_ctx), + asn_MAP_ivim_ts_ReceiptServicePart_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptServicePart = { + "ReceiptServicePart", + "ReceiptServicePart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ReceiptServicePart_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptServicePart_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptServicePart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptServicePart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptServicePart_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptServicePart_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ReceiptServicePart_1, + 7, /* Elements count */ + &asn_SPC_ivim_ts_ReceiptServicePart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptServiceSerialNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptServiceSerialNumber.c new file mode 100644 index 000000000..49d88b2f9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptServiceSerialNumber.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptServiceSerialNumber.h" + +int +ivim_ts_ReceiptServiceSerialNumber_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 <= 16777215L)) { + /* 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 ivim_ts_Int3, + * 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_ivim_ts_ReceiptServiceSerialNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */, + { 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_ivim_ts_ReceiptServiceSerialNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptServiceSerialNumber = { + "ReceiptServiceSerialNumber", + "ReceiptServiceSerialNumber", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ReceiptServiceSerialNumber_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptServiceSerialNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptServiceSerialNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptServiceSerialNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptServiceSerialNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptServiceSerialNumber_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ReceiptServiceSerialNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ReceiptServiceSerialNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptText.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptText.c new file mode 100644 index 000000000..1f7a8a88b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReceiptText.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReceiptText.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ReceiptText_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ReceiptText = { + "ReceiptText", + "ReceiptText", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_ReceiptText_tags_1, + sizeof(asn_DEF_ivim_ts_ReceiptText_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptText_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReceiptText_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReceiptText_tags_1) + /sizeof(asn_DEF_ivim_ts_ReceiptText_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReferencePosition.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReferencePosition.c new file mode 100644 index 000000000..0b01c0be4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ReferencePosition.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_ReferencePosition_specs_1 = { + sizeof(struct ivim_ts_ReferencePosition), + offsetof(struct ivim_ts_ReferencePosition, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ReferencePosition_tags_1, + sizeof(asn_DEF_ivim_ts_ReferencePosition_tags_1) + /sizeof(asn_DEF_ivim_ts_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ReferencePosition_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegionId.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegionId.c new file mode 100644 index 000000000..d7457f760 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegionId.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionId.h" + +int +ivim_ts_RegionId_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_ivim_ts_RegionId_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_ivim_ts_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RegionId_tags_1, + sizeof(asn_DEF_ivim_ts_RegionId_tags_1) + /sizeof(asn_DEF_ivim_ts_RegionId_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RegionId_tags_1) + /sizeof(asn_DEF_ivim_ts_RegionId_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RegionId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RegionId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegionalExtension.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegionalExtension.c new file mode 100644 index 000000000..128f22617 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegionalExtension.c @@ -0,0 +1,5459 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RegionalExtension.h" + +static const long asn_VAL_5_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_5_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_MapData_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_1_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_2_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_3_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_4_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_6_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_7_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_8_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_9_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_10_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_ivim_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_ivim_ts_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ivim_ts_RegionId, &asn_VAL_11_ivim_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_ivim_ts_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_ivim_ts_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_ivim_ts_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_ivim_ts_regionId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MapData_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_MapData_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_MapData, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_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); +} + +static int +memb_ivim_ts_regionId_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_4(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); +} + +static int +memb_ivim_ts_regionId_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_7(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); +} + +static int +memb_ivim_ts_regionId_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_10(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); +} + +static int +memb_ivim_ts_regionId_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_13(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); +} + +static int +memb_ivim_ts_regionId_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_16(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); +} + +static int +memb_ivim_ts_regionId_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_19(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); +} + +static int +memb_ivim_ts_regionId_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_ConnectionManeuverAssist_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_ConnectionManeuverAssist_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_ConnectionManeuverAssist, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_22(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); +} + +static int +memb_ivim_ts_regionId_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_GenericLane_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_GenericLane_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_GenericLane, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_25(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); +} + +static int +memb_ivim_ts_regionId_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_28(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); +} + +static int +memb_ivim_ts_regionId_constraint_31(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_IntersectionState_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_IntersectionState_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_IntersectionState, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_31(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); +} + +static int +memb_ivim_ts_regionId_constraint_34(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_LaneAttributes_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_LaneAttributes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_LaneAttributes, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_34(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); +} + +static int +memb_ivim_ts_regionId_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_37(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); +} + +static int +memb_ivim_ts_regionId_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_MovementEvent_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_MovementEvent_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_MovementEvent, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_40(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); +} + +static int +memb_ivim_ts_regionId_constraint_43(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_43(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); +} + +static int +memb_ivim_ts_regionId_constraint_46(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_NodeAttributeSetXY_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_NodeAttributeSetXY_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_NodeAttributeSetXY, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_46(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); +} + +static int +memb_ivim_ts_regionId_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_49(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); +} + +static int +memb_ivim_ts_regionId_constraint_52(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_Position3D_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_Position3D_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_Position3D, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_52(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); +} + +static int +memb_ivim_ts_regionId_constraint_55(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RequestorDescription_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_RequestorDescription_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_RequestorDescription, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_55(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); +} + +static int +memb_ivim_ts_regionId_constraint_58(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_58(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); +} + +static int +memb_ivim_ts_regionId_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_RestrictionUserType_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_RestrictionUserType_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_RestrictionUserType, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_61(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); +} + +static int +memb_ivim_ts_regionId_constraint_64(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_64(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); +} + +static int +memb_ivim_ts_regionId_constraint_67(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_67(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); +} + +static int +memb_ivim_ts_regionId_constraint_70(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_70(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); +} + +static int +memb_ivim_ts_regionId_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_73(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); +} + +static int +memb_ivim_ts_regionId_constraint_76(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_regExtValue_constraint_76(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); +} + +static int +memb_ivim_ts_regionId_constraint_79(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Reg_SignalStatusPackage_ivim_ts_regExtValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ivim_ts_Reg_SignalStatusPackage_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &Type */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ivim_ts_Reg_SignalStatusPackage, regionId)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ivim_ts_regExtValue_constraint_79(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_ivim_ts_regionId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_3 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_6 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_12 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_15 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_18 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_21 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_24 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_27 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_30 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_33 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_36 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_39 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_42 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_45 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_48 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_51 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_54 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_57 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_60 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_63 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_65 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_66 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_69 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_72 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_75 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_78 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) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regionId_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regExtValue_constr_81 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_ivim_ts_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_MapData_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "MapData-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_3 = { + sizeof(struct ivim_ts_Reg_MapData__regExtValue), + offsetof(struct ivim_ts_Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_MapData__regExtValue, present), + sizeof(((struct ivim_ts_Reg_MapData__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_3 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_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_ivim_ts_regionId_constraint_1 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_3, + select_Reg_MapData_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_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_ivim_ts_regExtValue_constraint_1 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_MapData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_MapData_specs_1 = { + sizeof(struct ivim_ts_Reg_MapData), + offsetof(struct ivim_ts_Reg_MapData, _asn_ctx), + asn_MAP_ivim_ts_Reg_MapData_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_ivim_ts_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_MapData_tags_1, + sizeof(asn_DEF_ivim_ts_Reg_MapData_tags_1) + /sizeof(asn_DEF_ivim_ts_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_MapData_tags_1) + /sizeof(asn_DEF_ivim_ts_Reg_MapData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_6 = { + sizeof(struct ivim_ts_Reg_RTCMcorrections__regExtValue), + offsetof(struct ivim_ts_Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct ivim_ts_Reg_RTCMcorrections__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_6 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_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_ivim_ts_regionId_constraint_4 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_6, + 0, + { +#if !defined(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_ivim_ts_regExtValue_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_ivim_ts_regExtValue_constraint_4 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_RTCMcorrections_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RTCMcorrections_specs_4 = { + sizeof(struct ivim_ts_Reg_RTCMcorrections), + offsetof(struct ivim_ts_Reg_RTCMcorrections, _asn_ctx), + asn_MAP_ivim_ts_Reg_RTCMcorrections_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_ivim_ts_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_ivim_ts_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_ivim_ts_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_9 = { + sizeof(struct ivim_ts_Reg_SPAT__regExtValue), + offsetof(struct ivim_ts_Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_SPAT__regExtValue, present), + sizeof(((struct ivim_ts_Reg_SPAT__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_9 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_8, +#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_ivim_ts_regionId_constraint_7 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_9, + 0, + { +#if !defined(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_ivim_ts_regExtValue_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_ivim_ts_regExtValue_constraint_7 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_SPAT_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SPAT_specs_7 = { + sizeof(struct ivim_ts_Reg_SPAT), + offsetof(struct ivim_ts_Reg_SPAT, _asn_ctx), + asn_MAP_ivim_ts_Reg_SPAT_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_SPAT_tags_7, + sizeof(asn_DEF_ivim_ts_Reg_SPAT_tags_7) + /sizeof(asn_DEF_ivim_ts_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_SPAT_tags_7) + /sizeof(asn_DEF_ivim_ts_Reg_SPAT_tags_7[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_12 = { + sizeof(struct ivim_ts_Reg_SignalRequestMessage__regExtValue), + offsetof(struct ivim_ts_Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct ivim_ts_Reg_SignalRequestMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_12 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_11, +#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_ivim_ts_regionId_constraint_10 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_12, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_12, +#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_ivim_ts_regExtValue_constraint_10 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_SignalRequestMessage_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct ivim_ts_Reg_SignalRequestMessage), + offsetof(struct ivim_ts_Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_ivim_ts_Reg_SignalRequestMessage_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_ivim_ts_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_ivim_ts_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_ivim_ts_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_15 = { + sizeof(struct ivim_ts_Reg_SignalStatusMessage__regExtValue), + offsetof(struct ivim_ts_Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct ivim_ts_Reg_SignalStatusMessage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_15 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_14, +#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_ivim_ts_regionId_constraint_13 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_15, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_15, +#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_ivim_ts_regExtValue_constraint_13 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_SignalStatusMessage_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct ivim_ts_Reg_SignalStatusMessage), + offsetof(struct ivim_ts_Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_ivim_ts_Reg_SignalStatusMessage_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_ivim_ts_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_ivim_ts_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_ivim_ts_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_18 = { + sizeof(struct ivim_ts_Reg_AdvisorySpeed__regExtValue), + offsetof(struct ivim_ts_Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct ivim_ts_Reg_AdvisorySpeed__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_18 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_17, +#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_ivim_ts_regionId_constraint_16 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_18, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_18, +#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_ivim_ts_regExtValue_constraint_16 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_AdvisorySpeed_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct ivim_ts_Reg_AdvisorySpeed), + offsetof(struct ivim_ts_Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_ivim_ts_Reg_AdvisorySpeed_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_ivim_ts_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_ivim_ts_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_ivim_ts_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_21 = { + sizeof(struct ivim_ts_Reg_ComputedLane__regExtValue), + offsetof(struct ivim_ts_Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_ComputedLane__regExtValue, present), + sizeof(((struct ivim_ts_Reg_ComputedLane__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_21 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_20, +#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_ivim_ts_regionId_constraint_19 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_21, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_21, +#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_ivim_ts_regExtValue_constraint_19 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_ComputedLane_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_ComputedLane_specs_19 = { + sizeof(struct ivim_ts_Reg_ComputedLane), + offsetof(struct ivim_ts_Reg_ComputedLane, _asn_ctx), + asn_MAP_ivim_ts_Reg_ComputedLane_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_ivim_ts_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_ivim_ts_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_ivim_ts_Reg_ComputedLane_tags_19[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_ConnectionManeuverAssist_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ConnectionManeuverAssist-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_24 = { + sizeof(struct ivim_ts_Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct ivim_ts_Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct ivim_ts_Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_24 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_23, +#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_ivim_ts_regionId_constraint_22 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_24, + select_Reg_ConnectionManeuverAssist_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_24, +#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_ivim_ts_regExtValue_constraint_22 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_ConnectionManeuverAssist_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct ivim_ts_Reg_ConnectionManeuverAssist), + offsetof(struct ivim_ts_Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_ivim_ts_Reg_ConnectionManeuverAssist_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_ivim_ts_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_ConnectionTrajectory_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ConnectionTrajectory-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_27 = { + sizeof(struct ivim_ts_Reg_GenericLane__regExtValue), + offsetof(struct ivim_ts_Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_GenericLane__regExtValue, present), + sizeof(((struct ivim_ts_Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_27, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_27 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_26, +#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_ivim_ts_regionId_constraint_25 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_27, + select_Reg_GenericLane_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_27, +#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_ivim_ts_regExtValue_constraint_25 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_GenericLane_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_GenericLane_specs_25 = { + sizeof(struct ivim_ts_Reg_GenericLane), + offsetof(struct ivim_ts_Reg_GenericLane, _asn_ctx), + asn_MAP_ivim_ts_Reg_GenericLane_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_GenericLane_tags_25, + sizeof(asn_DEF_ivim_ts_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_ivim_ts_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_ivim_ts_Reg_GenericLane_tags_25[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_30 = { + sizeof(struct ivim_ts_Reg_IntersectionGeometry__regExtValue), + offsetof(struct ivim_ts_Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct ivim_ts_Reg_IntersectionGeometry__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_30 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_29, +#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_ivim_ts_regionId_constraint_28 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_30, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_30, +#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_ivim_ts_regExtValue_constraint_28 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_IntersectionGeometry_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct ivim_ts_Reg_IntersectionGeometry), + offsetof(struct ivim_ts_Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_ivim_ts_Reg_IntersectionGeometry_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_ivim_ts_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_ivim_ts_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_ivim_ts_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_IntersectionState_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "IntersectionState-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_33 = { + sizeof(struct ivim_ts_Reg_IntersectionState__regExtValue), + offsetof(struct ivim_ts_Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_IntersectionState__regExtValue, present), + sizeof(((struct ivim_ts_Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_33 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_32, +#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_ivim_ts_regionId_constraint_31 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_33, + select_Reg_IntersectionState_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_33, +#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_ivim_ts_regExtValue_constraint_31 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_IntersectionState_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_IntersectionState_specs_31 = { + sizeof(struct ivim_ts_Reg_IntersectionState), + offsetof(struct ivim_ts_Reg_IntersectionState, _asn_ctx), + asn_MAP_ivim_ts_Reg_IntersectionState_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_ivim_ts_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_ivim_ts_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_ivim_ts_Reg_IntersectionState_tags_31[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_LaneAttributes_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "LaneAttributes-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_36 = { + sizeof(struct ivim_ts_Reg_LaneAttributes__regExtValue), + offsetof(struct ivim_ts_Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_LaneAttributes__regExtValue, present), + sizeof(((struct ivim_ts_Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_36 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_35, +#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_ivim_ts_regionId_constraint_34 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_36, + select_Reg_LaneAttributes_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_36, +#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_ivim_ts_regExtValue_constraint_34 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_LaneAttributes_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_LaneAttributes_specs_34 = { + sizeof(struct ivim_ts_Reg_LaneAttributes), + offsetof(struct ivim_ts_Reg_LaneAttributes, _asn_ctx), + asn_MAP_ivim_ts_Reg_LaneAttributes_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_ivim_ts_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_ivim_ts_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_ivim_ts_Reg_LaneAttributes_tags_34[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_39 = { + sizeof(struct ivim_ts_Reg_LaneDataAttribute__regExtValue), + offsetof(struct ivim_ts_Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct ivim_ts_Reg_LaneDataAttribute__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_39 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_38, +#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_ivim_ts_regionId_constraint_37 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_39, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_39, +#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_ivim_ts_regExtValue_constraint_37 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_LaneDataAttribute_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct ivim_ts_Reg_LaneDataAttribute), + offsetof(struct ivim_ts_Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_ivim_ts_Reg_LaneDataAttribute_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_ivim_ts_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_ivim_ts_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_ivim_ts_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_MovementEvent_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "MovementEvent-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_42 = { + sizeof(struct ivim_ts_Reg_MovementEvent__regExtValue), + offsetof(struct ivim_ts_Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_MovementEvent__regExtValue, present), + sizeof(((struct ivim_ts_Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_42, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_42 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_41, +#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_ivim_ts_regionId_constraint_40 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_42, + select_Reg_MovementEvent_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_42, +#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_ivim_ts_regExtValue_constraint_40 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_MovementEvent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_MovementEvent_specs_40 = { + sizeof(struct ivim_ts_Reg_MovementEvent), + offsetof(struct ivim_ts_Reg_MovementEvent, _asn_ctx), + asn_MAP_ivim_ts_Reg_MovementEvent_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_ivim_ts_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_ivim_ts_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_ivim_ts_Reg_MovementEvent_tags_40[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_45 = { + sizeof(struct ivim_ts_Reg_MovementState__regExtValue), + offsetof(struct ivim_ts_Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_MovementState__regExtValue, present), + sizeof(((struct ivim_ts_Reg_MovementState__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_45 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_44, +#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_ivim_ts_regionId_constraint_43 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_45, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_45, +#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_ivim_ts_regExtValue_constraint_43 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_MovementState_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_MovementState_specs_43 = { + sizeof(struct ivim_ts_Reg_MovementState), + offsetof(struct ivim_ts_Reg_MovementState, _asn_ctx), + asn_MAP_ivim_ts_Reg_MovementState_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_MovementState_tags_43, + sizeof(asn_DEF_ivim_ts_Reg_MovementState_tags_43) + /sizeof(asn_DEF_ivim_ts_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_MovementState_tags_43) + /sizeof(asn_DEF_ivim_ts_Reg_MovementState_tags_43[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_NodeAttributeSet_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "NodeAttributeSet-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_48 = { + sizeof(struct ivim_ts_Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct ivim_ts_Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct ivim_ts_Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_48 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_47, +#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_ivim_ts_regionId_constraint_46 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_48, + select_Reg_NodeAttributeSetXY_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_48, +#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_ivim_ts_regExtValue_constraint_46 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_NodeAttributeSetXY_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct ivim_ts_Reg_NodeAttributeSetXY), + offsetof(struct ivim_ts_Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_ivim_ts_Reg_NodeAttributeSetXY_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_ivim_ts_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_ivim_ts_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_ivim_ts_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_51 = { + sizeof(struct ivim_ts_Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct ivim_ts_Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct ivim_ts_Reg_NodeOffsetPointXY__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_51 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_50, +#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_ivim_ts_regionId_constraint_49 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_51, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_51, +#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_ivim_ts_regExtValue_constraint_49 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_NodeOffsetPointXY_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct ivim_ts_Reg_NodeOffsetPointXY), + offsetof(struct ivim_ts_Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_ivim_ts_Reg_NodeOffsetPointXY_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_ivim_ts_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_ivim_ts_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_ivim_ts_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Position3D_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "Position3D-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_54 = { + sizeof(struct ivim_ts_Reg_Position3D__regExtValue), + offsetof(struct ivim_ts_Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_Position3D__regExtValue, present), + sizeof(((struct ivim_ts_Reg_Position3D__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_54, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_54 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_53, +#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_ivim_ts_regionId_constraint_52 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_54, + select_Reg_Position3D_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_54, +#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_ivim_ts_regExtValue_constraint_52 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_Position3D_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_Position3D_specs_52 = { + sizeof(struct ivim_ts_Reg_Position3D), + offsetof(struct ivim_ts_Reg_Position3D, _asn_ctx), + asn_MAP_ivim_ts_Reg_Position3D_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_Position3D_tags_52, + sizeof(asn_DEF_ivim_ts_Reg_Position3D_tags_52) + /sizeof(asn_DEF_ivim_ts_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_Position3D_tags_52) + /sizeof(asn_DEF_ivim_ts_Reg_Position3D_tags_52[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_RequestorDescription_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RequestorDescription-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_57 = { + sizeof(struct ivim_ts_Reg_RequestorDescription__regExtValue), + offsetof(struct ivim_ts_Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_RequestorDescription__regExtValue, present), + sizeof(((struct ivim_ts_Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_57, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_57 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_56, +#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_ivim_ts_regionId_constraint_55 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_57, + select_Reg_RequestorDescription_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_57, +#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_ivim_ts_regExtValue_constraint_55 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_RequestorDescription_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RequestorDescription_specs_55 = { + sizeof(struct ivim_ts_Reg_RequestorDescription), + offsetof(struct ivim_ts_Reg_RequestorDescription, _asn_ctx), + asn_MAP_ivim_ts_Reg_RequestorDescription_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_ivim_ts_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_ivim_ts_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_ivim_ts_Reg_RequestorDescription_tags_55[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_60 = { + sizeof(struct ivim_ts_Reg_RequestorType__regExtValue), + offsetof(struct ivim_ts_Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_RequestorType__regExtValue, present), + sizeof(((struct ivim_ts_Reg_RequestorType__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_60 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_59, +#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_ivim_ts_regionId_constraint_58 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_60, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_60, +#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_ivim_ts_regExtValue_constraint_58 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_RequestorType_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RequestorType_specs_58 = { + sizeof(struct ivim_ts_Reg_RequestorType), + offsetof(struct ivim_ts_Reg_RequestorType, _asn_ctx), + asn_MAP_ivim_ts_Reg_RequestorType_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_RequestorType_tags_58, + sizeof(asn_DEF_ivim_ts_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_ivim_ts_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_ivim_ts_Reg_RequestorType_tags_58[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_RestrictionUserType_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "RestrictionUserType-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_63 = { + sizeof(struct ivim_ts_Reg_RestrictionUserType__regExtValue), + offsetof(struct ivim_ts_Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct ivim_ts_Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_63, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_63 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_62, +#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_ivim_ts_regionId_constraint_61 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_63, + select_Reg_RestrictionUserType_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_63, +#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_ivim_ts_regExtValue_constraint_61 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_RestrictionUserType_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RestrictionUserType_specs_61 = { + sizeof(struct ivim_ts_Reg_RestrictionUserType), + offsetof(struct ivim_ts_Reg_RestrictionUserType, _asn_ctx), + asn_MAP_ivim_ts_Reg_RestrictionUserType_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_ivim_ts_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_ivim_ts_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_ivim_ts_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_66 = { + sizeof(struct ivim_ts_Reg_RoadSegment__regExtValue), + offsetof(struct ivim_ts_Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_RoadSegment__regExtValue, present), + sizeof(((struct ivim_ts_Reg_RoadSegment__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_66 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_65, +#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_ivim_ts_regionId_constraint_64 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_66, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_66, +#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_ivim_ts_regExtValue_constraint_64 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_RoadSegment_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_RoadSegment_specs_64 = { + sizeof(struct ivim_ts_Reg_RoadSegment), + offsetof(struct ivim_ts_Reg_RoadSegment, _asn_ctx), + asn_MAP_ivim_ts_Reg_RoadSegment_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_ivim_ts_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_ivim_ts_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_ivim_ts_Reg_RoadSegment_tags_64[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_69 = { + sizeof(struct ivim_ts_Reg_SignalControlZone__regExtValue), + offsetof(struct ivim_ts_Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_SignalControlZone__regExtValue, present), + sizeof(((struct ivim_ts_Reg_SignalControlZone__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_69 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_68, +#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_ivim_ts_regionId_constraint_67 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_69, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_69, +#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_ivim_ts_regExtValue_constraint_67 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_SignalControlZone_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalControlZone_specs_67 = { + sizeof(struct ivim_ts_Reg_SignalControlZone), + offsetof(struct ivim_ts_Reg_SignalControlZone, _asn_ctx), + asn_MAP_ivim_ts_Reg_SignalControlZone_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_ivim_ts_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_ivim_ts_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_ivim_ts_Reg_SignalControlZone_tags_67[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_72 = { + sizeof(struct ivim_ts_Reg_SignalRequest__regExtValue), + offsetof(struct ivim_ts_Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_SignalRequest__regExtValue, present), + sizeof(((struct ivim_ts_Reg_SignalRequest__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_72 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_71, +#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_ivim_ts_regionId_constraint_70 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_72, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_72, +#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_ivim_ts_regExtValue_constraint_70 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_SignalRequest_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalRequest_specs_70 = { + sizeof(struct ivim_ts_Reg_SignalRequest), + offsetof(struct ivim_ts_Reg_SignalRequest, _asn_ctx), + asn_MAP_ivim_ts_Reg_SignalRequest_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_ivim_ts_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_ivim_ts_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_ivim_ts_Reg_SignalRequest_tags_70[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_75 = { + sizeof(struct ivim_ts_Reg_SignalRequestPackage__regExtValue), + offsetof(struct ivim_ts_Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct ivim_ts_Reg_SignalRequestPackage__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_75 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_74, +#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_ivim_ts_regionId_constraint_73 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_75, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_75, +#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_ivim_ts_regExtValue_constraint_73 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_SignalRequestPackage_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct ivim_ts_Reg_SignalRequestPackage), + offsetof(struct ivim_ts_Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_ivim_ts_Reg_SignalRequestPackage_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_ivim_ts_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_ivim_ts_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_ivim_ts_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_78 = { + sizeof(struct ivim_ts_Reg_SignalStatus__regExtValue), + offsetof(struct ivim_ts_Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_SignalStatus__regExtValue, present), + sizeof(((struct ivim_ts_Reg_SignalStatus__regExtValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_78 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_77, +#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_ivim_ts_regionId_constraint_76 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_78, + 0, + { +#if !defined(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_ivim_ts_regExtValue_constr_78, +#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_ivim_ts_regExtValue_constraint_76 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_SignalStatus_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalStatus_specs_76 = { + sizeof(struct ivim_ts_Reg_SignalStatus), + offsetof(struct ivim_ts_Reg_SignalStatus, _asn_ctx), + asn_MAP_ivim_ts_Reg_SignalStatus_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_ivim_ts_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_ivim_ts_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_ivim_ts_Reg_SignalStatus_tags_76[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_SignalStatusPackage_addGrpC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "SignalStatusPackage-addGrpC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_regExtValue_specs_81 = { + sizeof(struct ivim_ts_Reg_SignalStatusPackage__regExtValue), + offsetof(struct ivim_ts_Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct ivim_ts_Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct ivim_ts_Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_ivim_ts_regExtValue_tag2el_81, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regExtValue_81 = { + "regExtValue", + "regExtValue", + &asn_OP_OPEN_TYPE, + 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_ivim_ts_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_ivim_ts_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RegionId, + 0, + { +#if !defined(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_ivim_ts_regionId_constr_80, +#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_ivim_ts_regionId_constraint_79 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_regExtValue_81, + select_Reg_SignalStatusPackage_ivim_ts_regExtValue_type, + { +#if !defined(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_ivim_ts_regExtValue_constr_81, +#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_ivim_ts_regExtValue_constraint_79 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Reg_SignalStatusPackage_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* regionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regExtValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct ivim_ts_Reg_SignalStatusPackage), + offsetof(struct ivim_ts_Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_ivim_ts_Reg_SignalStatusPackage_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_ivim_ts_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_ivim_ts_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_ivim_ts_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_ivim_ts_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegulatorySpeedLimit.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegulatorySpeedLimit.c new file mode 100644 index 000000000..70b7c33f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RegulatorySpeedLimit.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SpeedLimitType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "type" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Velocity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RegulatorySpeedLimit_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RegulatorySpeedLimit_specs_1 = { + sizeof(struct ivim_ts_RegulatorySpeedLimit), + offsetof(struct ivim_ts_RegulatorySpeedLimit, _asn_ctx), + asn_MAP_ivim_ts_RegulatorySpeedLimit_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_ivim_ts_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_ivim_ts_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_ivim_ts_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_ivim_ts_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RejectedReason.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RejectedReason.c new file mode 100644 index 000000000..0b651ea96 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RejectedReason.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RejectedReason.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_ivim_ts_RejectedReason_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_ivim_ts_RejectedReason_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "exceptionalCondition" }, + { 2, 22, "maxWaitingTimeExceeded" }, + { 3, 18, "ptPriorityDisabled" }, + { 4, 23, "higherPTPriorityGranted" }, + { 5, 22, "vehicleTrackingUnknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_RejectedReason_enum2value_1[] = { + 1, /* exceptionalCondition(1) */ + 4, /* higherPTPriorityGranted(4) */ + 2, /* maxWaitingTimeExceeded(2) */ + 3, /* ptPriorityDisabled(3) */ + 0, /* unknown(0) */ + 5 /* vehicleTrackingUnknown(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RejectedReason_specs_1 = { + asn_MAP_ivim_ts_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_RejectedReason_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_ivim_ts_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RejectedReason_tags_1, + sizeof(asn_DEF_ivim_ts_RejectedReason_tags_1) + /sizeof(asn_DEF_ivim_ts_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RejectedReason_tags_1) + /sizeof(asn_DEF_ivim_ts_RejectedReason_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RejectedReason_constr_1, +#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_ivim_ts_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RelevanceDistance.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RelevanceDistance.c new file mode 100644 index 000000000..80739909e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RelevanceDistance.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_RelevanceDistance_specs_1 = { + asn_MAP_ivim_ts_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RelevanceDistance_tags_1, + sizeof(asn_DEF_ivim_ts_RelevanceDistance_tags_1) + /sizeof(asn_DEF_ivim_ts_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RelevanceDistance_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RelevanceTrafficDirection.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RelevanceTrafficDirection.c new file mode 100644 index 000000000..85934f28b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RelevanceTrafficDirection.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_ivim_ts_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RelevanceTrafficDirection_specs_1 = { + asn_MAP_ivim_ts_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_ivim_ts_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_ivim_ts_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RepeatingPeriodDayTypes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RepeatingPeriodDayTypes.c new file mode 100644 index 000000000..e24f51857 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RepeatingPeriodDayTypes.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RepeatingPeriodDayTypes.h" + +int +ivim_ts_RepeatingPeriodDayTypes_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_ivim_ts_RepeatingPeriodDayTypes_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_ivim_ts_RepeatingPeriodDayTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RepeatingPeriodDayTypes = { + "RepeatingPeriodDayTypes", + "RepeatingPeriodDayTypes", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_RepeatingPeriodDayTypes_tags_1, + sizeof(asn_DEF_ivim_ts_RepeatingPeriodDayTypes_tags_1) + /sizeof(asn_DEF_ivim_ts_RepeatingPeriodDayTypes_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RepeatingPeriodDayTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RepeatingPeriodDayTypes_tags_1) + /sizeof(asn_DEF_ivim_ts_RepeatingPeriodDayTypes_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RepeatingPeriodDayTypes_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RepeatingPeriodDayTypes_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestID.c new file mode 100644 index 000000000..060205bf9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestID.h" + +int +ivim_ts_RequestID_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_ivim_ts_RequestID_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_ivim_ts_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RequestID_tags_1, + sizeof(asn_DEF_ivim_ts_RequestID_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RequestID_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RequestID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RequestID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestImportanceLevel.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestImportanceLevel.c new file mode 100644 index 000000000..dd313b85d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestImportanceLevel.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestImportanceLevel.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_ivim_ts_RequestImportanceLevel_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_ivim_ts_RequestImportanceLevel_value2enum_1[] = { + { 0, 29, "requestImportanceLevelUnKnown" }, + { 1, 23, "requestImportanceLevel1" }, + { 2, 23, "requestImportanceLevel2" }, + { 3, 23, "requestImportanceLevel3" }, + { 4, 23, "requestImportanceLevel4" }, + { 5, 23, "requestImportanceLevel5" }, + { 6, 23, "requestImportanceLevel6" }, + { 7, 23, "requestImportanceLevel7" }, + { 8, 23, "requestImportanceLevel8" }, + { 9, 23, "requestImportanceLevel9" }, + { 10, 24, "requestImportanceLevel10" }, + { 11, 24, "requestImportanceLevel11" }, + { 12, 24, "requestImportanceLevel12" }, + { 13, 24, "requestImportanceLevel13" }, + { 14, 24, "requestImportanceLevel14" }, + { 15, 25, "requestImportanceReserved" } +}; +static const unsigned int asn_MAP_ivim_ts_RequestImportanceLevel_enum2value_1[] = { + 1, /* requestImportanceLevel1(1) */ + 10, /* requestImportanceLevel10(10) */ + 11, /* requestImportanceLevel11(11) */ + 12, /* requestImportanceLevel12(12) */ + 13, /* requestImportanceLevel13(13) */ + 14, /* requestImportanceLevel14(14) */ + 2, /* requestImportanceLevel2(2) */ + 3, /* requestImportanceLevel3(3) */ + 4, /* requestImportanceLevel4(4) */ + 5, /* requestImportanceLevel5(5) */ + 6, /* requestImportanceLevel6(6) */ + 7, /* requestImportanceLevel7(7) */ + 8, /* requestImportanceLevel8(8) */ + 9, /* requestImportanceLevel9(9) */ + 0, /* requestImportanceLevelUnKnown(0) */ + 15 /* requestImportanceReserved(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RequestImportanceLevel_specs_1 = { + asn_MAP_ivim_ts_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_RequestImportanceLevel_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_ivim_ts_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_ivim_ts_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestImportanceLevel_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RequestImportanceLevel_constr_1, +#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_ivim_ts_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestResponseIndication.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestResponseIndication.c new file mode 100644 index 000000000..d72d4f7b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestResponseIndication.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_ivim_ts_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RequestResponseIndication_specs_1 = { + asn_MAP_ivim_ts_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RequestResponseIndication_tags_1, + sizeof(asn_DEF_ivim_ts_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestSubRole.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestSubRole.c new file mode 100644 index 000000000..ee413caef --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestSubRole.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestSubRole.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_ivim_ts_RequestSubRole_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_ivim_ts_RequestSubRole_value2enum_1[] = { + { 0, 21, "requestSubRoleUnKnown" }, + { 1, 15, "requestSubRole1" }, + { 2, 15, "requestSubRole2" }, + { 3, 15, "requestSubRole3" }, + { 4, 15, "requestSubRole4" }, + { 5, 15, "requestSubRole5" }, + { 6, 15, "requestSubRole6" }, + { 7, 15, "requestSubRole7" }, + { 8, 15, "requestSubRole8" }, + { 9, 15, "requestSubRole9" }, + { 10, 16, "requestSubRole10" }, + { 11, 16, "requestSubRole11" }, + { 12, 16, "requestSubRole12" }, + { 13, 16, "requestSubRole13" }, + { 14, 16, "requestSubRole14" }, + { 15, 22, "requestSubRoleReserved" } +}; +static const unsigned int asn_MAP_ivim_ts_RequestSubRole_enum2value_1[] = { + 1, /* requestSubRole1(1) */ + 10, /* requestSubRole10(10) */ + 11, /* requestSubRole11(11) */ + 12, /* requestSubRole12(12) */ + 13, /* requestSubRole13(13) */ + 14, /* requestSubRole14(14) */ + 2, /* requestSubRole2(2) */ + 3, /* requestSubRole3(3) */ + 4, /* requestSubRole4(4) */ + 5, /* requestSubRole5(5) */ + 6, /* requestSubRole6(6) */ + 7, /* requestSubRole7(7) */ + 8, /* requestSubRole8(8) */ + 9, /* requestSubRole9(9) */ + 15, /* requestSubRoleReserved(15) */ + 0 /* requestSubRoleUnKnown(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RequestSubRole_specs_1 = { + asn_MAP_ivim_ts_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_RequestSubRole_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_ivim_ts_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RequestSubRole_tags_1, + sizeof(asn_DEF_ivim_ts_RequestSubRole_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RequestSubRole_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestSubRole_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RequestSubRole_constr_1, +#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_ivim_ts_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorDescription-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorDescription-addGrpC.c new file mode 100644 index 000000000..45e055b33 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorDescription-addGrpC.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct ivim_ts_RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_FuelType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fuel" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_BatteryStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "batteryStatus" + }, +}; +static const int asn_MAP_ivim_ts_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RequestorDescription_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fuel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* batteryStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct ivim_ts_RequestorDescription_addGrpC), + offsetof(struct ivim_ts_RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorDescription.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorDescription.c new file mode 100644 index 000000000..720d9317c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorDescription.c @@ -0,0 +1,341 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorDescription.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_10 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_ivim_ts_regional_constr_10 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_ivim_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_RequestorDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_10 = { + sizeof(struct ivim_ts_RequestorDescription__regional), + offsetof(struct ivim_ts_RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_10, + sizeof(asn_DEF_ivim_ts_regional_tags_10) + /sizeof(asn_DEF_ivim_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_10) + /sizeof(asn_DEF_ivim_ts_regional_tags_10[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_ivim_ts_regional_constr_10, +#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_ivim_ts_regional_10, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, + { ATF_POINTER, 8, offsetof(struct ivim_ts_RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RequestorType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 7, offsetof(struct ivim_ts_RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RequestorPositionVector, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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, 6, offsetof(struct ivim_ts_RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "routeName" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TransitVehicleStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transitStatus" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TransitVehicleOccupancy, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transitOccupancy" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DeltaTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transitSchedule" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ivim_ts_regional_10, + 0, + { +#if !defined(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_ivim_ts_regional_constr_10, +#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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RequestorDescription_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* routeName */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* transitStatus */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* transitOccupancy */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* transitSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RequestorDescription_specs_1 = { + sizeof(struct ivim_ts_RequestorDescription), + offsetof(struct ivim_ts_RequestorDescription, _asn_ctx), + asn_MAP_ivim_ts_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ivim_ts_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RequestorDescription_tags_1, + sizeof(asn_DEF_ivim_ts_RequestorDescription_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RequestorDescription_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestorDescription_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_ivim_ts_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorPositionVector.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorPositionVector.c new file mode 100644 index 000000000..3685b6656 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorPositionVector.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorPositionVector.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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, 2, offsetof(struct ivim_ts_RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_POINTER, 1, offsetof(struct ivim_ts_RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TransmissionAndSpeed, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const int asn_MAP_ivim_ts_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RequestorPositionVector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RequestorPositionVector_specs_1 = { + sizeof(struct ivim_ts_RequestorPositionVector), + offsetof(struct ivim_ts_RequestorPositionVector, _asn_ctx), + asn_MAP_ivim_ts_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RequestorPositionVector_tags_1, + sizeof(asn_DEF_ivim_ts_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestorPositionVector_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorType.c new file mode 100644 index 000000000..15dff5c43 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RequestorType.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RequestorType.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_BasicVehicleRole, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RequestSubRole, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "subrole" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RequestImportanceLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Iso3833VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iso3883" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hpmsType" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Reg_RequestorType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RequestorType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subrole */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iso3883 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hpmsType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RequestorType_specs_1 = { + sizeof(struct ivim_ts_RequestorType), + offsetof(struct ivim_ts_RequestorType, _asn_ctx), + asn_MAP_ivim_ts_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RequestorType_tags_1, + sizeof(asn_DEF_ivim_ts_RequestorType_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RequestorType_tags_1) + /sizeof(asn_DEF_ivim_ts_RequestorType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 000000000..a61cb6868 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictedTypes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictedTypes.c new file mode 100644 index 000000000..21953a37e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictedTypes.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictedTypes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_ts_ITS_Container_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_ivim_ts_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_RestrictedTypes_specs_1 = { + sizeof(struct ivim_ts_RestrictedTypes), + offsetof(struct ivim_ts_RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RestrictedTypes_tags_1, + sizeof(asn_DEF_ivim_ts_RestrictedTypes_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RestrictedTypes_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionAppliesTo.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionAppliesTo.c new file mode 100644 index 000000000..e60a3eb78 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionAppliesTo.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionAppliesTo.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_ivim_ts_RestrictionAppliesTo_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { 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_ivim_ts_RestrictionAppliesTo_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 15, "equippedTransit" }, + { 2, 13, "equippedTaxis" }, + { 3, 13, "equippedOther" }, + { 4, 17, "emissionCompliant" }, + { 5, 15, "equippedBicycle" }, + { 6, 15, "weightCompliant" }, + { 7, 15, "heightCompliant" }, + { 8, 11, "pedestrians" }, + { 9, 17, "slowMovingPersons" }, + { 10, 15, "wheelchairUsers" }, + { 11, 18, "visualDisabilities" }, + { 12, 17, "audioDisabilities" }, + { 13, 24, "otherUnknownDisabilities" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_RestrictionAppliesTo_enum2value_1[] = { + 12, /* audioDisabilities(12) */ + 4, /* emissionCompliant(4) */ + 5, /* equippedBicycle(5) */ + 3, /* equippedOther(3) */ + 2, /* equippedTaxis(2) */ + 1, /* equippedTransit(1) */ + 7, /* heightCompliant(7) */ + 0, /* none(0) */ + 13, /* otherUnknownDisabilities(13) */ + 8, /* pedestrians(8) */ + 9, /* slowMovingPersons(9) */ + 11, /* visualDisabilities(11) */ + 6, /* weightCompliant(6) */ + 10 /* wheelchairUsers(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_RestrictionAppliesTo_specs_1 = { + asn_MAP_ivim_ts_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_RestrictionAppliesTo_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_ivim_ts_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionAppliesTo_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RestrictionAppliesTo_constr_1, +#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_ivim_ts_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassAssignment.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassAssignment.c new file mode 100644 index 000000000..2d9c23947 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassAssignment.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RestrictionClassID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RestrictionUserTypeList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "users" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RestrictionClassAssignment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* users */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RestrictionClassAssignment_specs_1 = { + sizeof(struct ivim_ts_RestrictionClassAssignment), + offsetof(struct ivim_ts_RestrictionClassAssignment, _asn_ctx), + asn_MAP_ivim_ts_RestrictionClassAssignment_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_ivim_ts_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_ivim_ts_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionClassAssignment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassID.c new file mode 100644 index 000000000..01d633ba6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassID.h" + +int +ivim_ts_RestrictionClassID_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_ivim_ts_RestrictionClassID_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_ivim_ts_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RestrictionClassID_tags_1, + sizeof(asn_DEF_ivim_ts_RestrictionClassID_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RestrictionClassID_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionClassID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RestrictionClassID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RestrictionClassID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassList.c new file mode 100644 index 000000000..8d558757a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionClassList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionClassList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RestrictionClassList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 254 } /* (SIZE(1..254)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_RestrictionClassAssignment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_RestrictionClassList_specs_1 = { + sizeof(struct ivim_ts_RestrictionClassList), + offsetof(struct ivim_ts_RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RestrictionClassList_tags_1, + sizeof(asn_DEF_ivim_ts_RestrictionClassList_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RestrictionClassList_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionClassList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RestrictionClassList_constr_1, +#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_ivim_ts_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserType-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserType-addGrpC.c new file mode 100644 index 000000000..0b1ce0447 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserType-addGrpC.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct ivim_ts_RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_EmissionType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "emission" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_FuelType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "fuel" + }, +}; +static const int asn_MAP_ivim_ts_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RestrictionUserType_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fuel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct ivim_ts_RestrictionUserType_addGrpC), + offsetof(struct ivim_ts_RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserType.c new file mode 100644 index 000000000..57ad79f95 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserType.c @@ -0,0 +1,196 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserType.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_3 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_ivim_ts_regional_constr_3 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) +asn_per_constraints_t asn_PER_type_ivim_ts_RestrictionUserType_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) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_RestrictionUserType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_3 = { + sizeof(struct ivim_ts_RestrictionUserType__regional), + offsetof(struct ivim_ts_RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_3, + sizeof(asn_DEF_ivim_ts_regional_tags_3) + /sizeof(asn_DEF_ivim_ts_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_3) + /sizeof(asn_DEF_ivim_ts_regional_tags_3[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_3, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RestrictionAppliesTo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "basicType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ivim_ts_regional_3, + 0, + { +#if !defined(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_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RestrictionUserType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* regional */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_RestrictionUserType_specs_1 = { + sizeof(struct ivim_ts_RestrictionUserType), + offsetof(struct ivim_ts_RestrictionUserType, _asn_ctx), + offsetof(struct ivim_ts_RestrictionUserType, present), + sizeof(((struct ivim_ts_RestrictionUserType *)0)->present), + asn_MAP_ivim_ts_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionUserType = { + "RestrictionUserType", + "RestrictionUserType", + &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_ivim_ts_RestrictionUserType_constr_1, +#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_ivim_ts_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserTypeList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserTypeList.c new file mode 100644 index 000000000..2612caa42 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RestrictionUserTypeList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RestrictionUserTypeList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RestrictionUserTypeList_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_ivim_ts_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ivim_ts_RestrictionUserType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_RestrictionUserTypeList_specs_1 = { + sizeof(struct ivim_ts_RestrictionUserTypeList), + offsetof(struct ivim_ts_RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_ivim_ts_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_ivim_ts_RestrictionUserTypeList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RestrictionUserTypeList_constr_1, +#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_ivim_ts_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ResultFin.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ResultFin.c new file mode 100644 index 000000000..27df599af --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ResultFin.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ResultFin.h" + +int +ivim_ts_ResultFin_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)) { + /* 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_ivim_ts_ResultFin_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 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_ivim_ts_ResultFin_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ResultFin = { + "ResultFin", + "ResultFin", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_ResultFin_tags_1, + sizeof(asn_DEF_ivim_ts_ResultFin_tags_1) + /sizeof(asn_DEF_ivim_ts_ResultFin_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ResultFin_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ResultFin_tags_1) + /sizeof(asn_DEF_ivim_ts_ResultFin_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ResultFin_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ResultFin_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ResultOp.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ResultOp.c new file mode 100644 index 000000000..3f809ca99 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ResultOp.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ResultOp.h" + +int +ivim_ts_ResultOp_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_ivim_ts_ResultOp_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_ivim_ts_ResultOp_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ResultOp = { + "ResultOp", + "ResultOp", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ResultOp_tags_1, + sizeof(asn_DEF_ivim_ts_ResultOp_tags_1) + /sizeof(asn_DEF_ivim_ts_ResultOp_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ResultOp_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ResultOp_tags_1) + /sizeof(asn_DEF_ivim_ts_ResultOp_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ResultOp_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ResultOp_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadConfigurationContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadConfigurationContainer.c new file mode 100644 index 000000000..c4d6fa452 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadConfigurationContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadConfigurationContainer.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RoadConfigurationContainer_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_ivim_ts_RoadConfigurationContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_RccPart, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RoadConfigurationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadConfigurationContainer_specs_1 = { + sizeof(struct ivim_ts_RoadConfigurationContainer), + offsetof(struct ivim_ts_RoadConfigurationContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadConfigurationContainer = { + "RoadConfigurationContainer", + "RoadConfigurationContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RoadConfigurationContainer_tags_1, + sizeof(asn_DEF_ivim_ts_RoadConfigurationContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadConfigurationContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadConfigurationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadConfigurationContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadConfigurationContainer_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RoadConfigurationContainer_constr_1, +#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_ivim_ts_RoadConfigurationContainer_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RoadConfigurationContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadLaneSetList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadLaneSetList.c new file mode 100644 index 000000000..06edf3450 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadLaneSetList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadLaneSetList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RoadLaneSetList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_GenericLane, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadLaneSetList_specs_1 = { + sizeof(struct ivim_ts_RoadLaneSetList), + offsetof(struct ivim_ts_RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RoadLaneSetList_tags_1, + sizeof(asn_DEF_ivim_ts_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadLaneSetList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RoadLaneSetList_constr_1, +#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_ivim_ts_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadRegulatorID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadRegulatorID.c new file mode 100644 index 000000000..0e8f7841a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadRegulatorID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadRegulatorID.h" + +int +ivim_ts_RoadRegulatorID_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_ivim_ts_RoadRegulatorID_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_ivim_ts_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RoadRegulatorID_tags_1, + sizeof(asn_DEF_ivim_ts_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadRegulatorID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RoadRegulatorID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RoadRegulatorID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegment.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegment.c new file mode 100644 index 000000000..c31cff224 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegment.c @@ -0,0 +1,320 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegment.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_9 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_ivim_ts_regional_constr_9 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_ivim_ts_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_RoadSegment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_9 = { + sizeof(struct ivim_ts_RoadSegment__regional), + offsetof(struct ivim_ts_RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_9, + sizeof(asn_DEF_ivim_ts_regional_tags_9) + /sizeof(asn_DEF_ivim_ts_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_9) + /sizeof(asn_DEF_ivim_ts_regional_tags_9[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_9, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "revision" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Position3D, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "refPoint" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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, 1, offsetof(struct ivim_ts_RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SpeedLimitList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadLaneSetList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadLaneSet" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ivim_ts_regional_9, + 0, + { +#if !defined(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_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RoadSegment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* revision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* refPoint */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* speedLimits */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* roadLaneSet */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RoadSegment_specs_1 = { + sizeof(struct ivim_ts_RoadSegment), + offsetof(struct ivim_ts_RoadSegment, _asn_ctx), + asn_MAP_ivim_ts_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ivim_ts_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RoadSegment_tags_1, + sizeof(asn_DEF_ivim_ts_RoadSegment_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadSegment_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSegment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentID.c new file mode 100644 index 000000000..30010d79a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentID.h" + +int +ivim_ts_RoadSegmentID_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_ivim_ts_RoadSegmentID_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_ivim_ts_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RoadSegmentID_tags_1, + sizeof(asn_DEF_ivim_ts_RoadSegmentID_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadSegmentID_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSegmentID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RoadSegmentID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RoadSegmentID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentList.c new file mode 100644 index 000000000..70a44e0cd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RoadSegmentList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_RoadSegment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadSegmentList_specs_1 = { + sizeof(struct ivim_ts_RoadSegmentList), + offsetof(struct ivim_ts_RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RoadSegmentList_tags_1, + sizeof(asn_DEF_ivim_ts_RoadSegmentList_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadSegmentList_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSegmentList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RoadSegmentList_constr_1, +#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_ivim_ts_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentReferenceID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentReferenceID.c new file mode 100644 index 000000000..09fc241de --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSegmentReferenceID.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadRegulatorID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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 ivim_ts_RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSegmentID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_RoadSegmentReferenceID_specs_1 = { + sizeof(struct ivim_ts_RoadSegmentReferenceID), + offsetof(struct ivim_ts_RoadSegmentReferenceID, _asn_ctx), + asn_MAP_ivim_ts_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_ivim_ts_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSignCodes.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSignCodes.c new file mode 100644 index 000000000..cab6e0ea2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSignCodes.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSignCodes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RoadSignCodes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_RoadSignCodes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_RSCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RoadSignCodes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadSignCodes_specs_1 = { + sizeof(struct ivim_ts_RoadSignCodes), + offsetof(struct ivim_ts_RoadSignCodes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSignCodes = { + "RoadSignCodes", + "RoadSignCodes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RoadSignCodes_tags_1, + sizeof(asn_DEF_ivim_ts_RoadSignCodes_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSignCodes_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadSignCodes_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadSignCodes_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSignCodes_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RoadSignCodes_constr_1, +#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_ivim_ts_RoadSignCodes_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RoadSignCodes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceContainer.c new file mode 100644 index 000000000..a9b55c203 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceContainer.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RoadSurfaceContainer_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_ivim_ts_RoadSurfaceContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_RscPart, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_RoadSurfaceContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_RoadSurfaceContainer_specs_1 = { + sizeof(struct ivim_ts_RoadSurfaceContainer), + offsetof(struct ivim_ts_RoadSurfaceContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadSurfaceContainer = { + "RoadSurfaceContainer", + "RoadSurfaceContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_RoadSurfaceContainer_tags_1, + sizeof(asn_DEF_ivim_ts_RoadSurfaceContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSurfaceContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadSurfaceContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadSurfaceContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSurfaceContainer_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RoadSurfaceContainer_constr_1, +#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_ivim_ts_RoadSurfaceContainer_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_RoadSurfaceContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceDynamicCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceDynamicCharacteristics.c new file mode 100644 index 000000000..1b266b348 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceDynamicCharacteristics.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceDynamicCharacteristics.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RoadSurfaceDynamicCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSurfaceDynamicCharacteristics, condition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Condition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "condition" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSurfaceDynamicCharacteristics, temperature), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IVI_Temperature, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "temperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSurfaceDynamicCharacteristics, iceOrWaterDepth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Depth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iceOrWaterDepth" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSurfaceDynamicCharacteristics, treatment), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TreatmentType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "treatment" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RoadSurfaceDynamicCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* condition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* temperature */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iceOrWaterDepth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* treatment */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RoadSurfaceDynamicCharacteristics_specs_1 = { + sizeof(struct ivim_ts_RoadSurfaceDynamicCharacteristics), + offsetof(struct ivim_ts_RoadSurfaceDynamicCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_RoadSurfaceDynamicCharacteristics_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_ivim_ts_RoadSurfaceDynamicCharacteristics = { + "RoadSurfaceDynamicCharacteristics", + "RoadSurfaceDynamicCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RoadSurfaceDynamicCharacteristics_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_RoadSurfaceDynamicCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceStaticCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceStaticCharacteristics.c new file mode 100644 index 000000000..b1e14a85e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadSurfaceStaticCharacteristics.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadSurfaceStaticCharacteristics.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_RoadSurfaceStaticCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSurfaceStaticCharacteristics, frictionCoefficient), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_FrictionCoefficient, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "frictionCoefficient" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSurfaceStaticCharacteristics, material), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MaterialType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "material" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSurfaceStaticCharacteristics, wear), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_WearLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wear" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RoadSurfaceStaticCharacteristics, avBankingAngle), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_BankingAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "avBankingAngle" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RoadSurfaceStaticCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frictionCoefficient */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* material */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* wear */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* avBankingAngle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RoadSurfaceStaticCharacteristics_specs_1 = { + sizeof(struct ivim_ts_RoadSurfaceStaticCharacteristics), + offsetof(struct ivim_ts_RoadSurfaceStaticCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_RoadSurfaceStaticCharacteristics_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_ivim_ts_RoadSurfaceStaticCharacteristics = { + "RoadSurfaceStaticCharacteristics", + "RoadSurfaceStaticCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_RoadSurfaceStaticCharacteristics_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_RoadSurfaceStaticCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadType.c new file mode 100644 index 000000000..7de2a88ae --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadType.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_RoadType_specs_1 = { + asn_MAP_ivim_ts_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_RoadType_tags_1, + sizeof(asn_DEF_ivim_ts_RoadType_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadwayCrownAngle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadwayCrownAngle.c new file mode 100644 index 000000000..662317188 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadwayCrownAngle.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadwayCrownAngle.h" + +int +ivim_ts_RoadwayCrownAngle_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 >= -128L && 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_ivim_ts_RoadwayCrownAngle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -128, 127 } /* (-128..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_ivim_ts_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_ivim_ts_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadwayCrownAngle_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RoadwayCrownAngle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_RoadwayCrownAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadworksSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadworksSubCauseCode.c new file mode 100644 index 000000000..de8a3674b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RoadworksSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RoadworksSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_RoadworksSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RscPart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RscPart.c new file mode 100644 index 000000000..9f1b82e3c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_RscPart.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_RscPart.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_RscPart_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_ivim_ts_RscPart_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_RscPart, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_RscPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_RscPart, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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, 2, offsetof(struct ivim_ts_RscPart, roadSurfaceStaticCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSurfaceStaticCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSurfaceStaticCharacteristics" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_RscPart, roadSurfaceDynamicCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RoadSurfaceDynamicCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSurfaceDynamicCharacteristics" + }, +}; +static const int asn_MAP_ivim_ts_RscPart_oms_1[] = { 0, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_RscPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_RscPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadSurfaceStaticCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* roadSurfaceDynamicCharacteristics */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_RscPart_specs_1 = { + sizeof(struct ivim_ts_RscPart), + offsetof(struct ivim_ts_RscPart, _asn_ctx), + asn_MAP_ivim_ts_RscPart_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_RscPart_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_RscPart = { + "RscPart", + "RscPart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_RscPart_tags_1, + sizeof(asn_DEF_ivim_ts_RscPart_tags_1) + /sizeof(asn_DEF_ivim_ts_RscPart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_RscPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_RscPart_tags_1) + /sizeof(asn_DEF_ivim_ts_RscPart_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_RscPart_constr_1, +#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_ivim_ts_RscPart_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_RscPart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SPAT.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SPAT.c new file mode 100644 index 000000000..4aaaeaaba --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SPAT.c @@ -0,0 +1,236 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SPAT.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_5 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_ivim_ts_regional_constr_5 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_ivim_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_SPAT, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_5 = { + sizeof(struct ivim_ts_SPAT__regional), + offsetof(struct ivim_ts_SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_5, + sizeof(asn_DEF_ivim_ts_regional_tags_5) + /sizeof(asn_DEF_ivim_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_5) + /sizeof(asn_DEF_ivim_ts_regional_tags_5[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_5, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct ivim_ts_SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveName, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "name" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionStateList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "intersections" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ivim_ts_regional_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) + &asn_PER_memb_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SPAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intersections */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SPAT_specs_1 = { + sizeof(struct ivim_ts_SPAT), + offsetof(struct ivim_ts_SPAT, _asn_ctx), + asn_MAP_ivim_ts_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SPAT_tags_1, + sizeof(asn_DEF_ivim_ts_SPAT_tags_1) + /sizeof(asn_DEF_ivim_ts_SPAT_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SPAT_tags_1) + /sizeof(asn_DEF_ivim_ts_SPAT_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SPAT_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SaeAutomationLevel.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SaeAutomationLevel.c new file mode 100644 index 000000000..0d1d669e9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SaeAutomationLevel.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevel.h" + +int +ivim_ts_SaeAutomationLevel_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 <= 5L)) { + /* 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_ivim_ts_SaeAutomationLevel_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 ber_tlv_tag_t asn_DEF_ivim_ts_SaeAutomationLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SaeAutomationLevel = { + "SaeAutomationLevel", + "SaeAutomationLevel", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SaeAutomationLevel_tags_1, + sizeof(asn_DEF_ivim_ts_SaeAutomationLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_SaeAutomationLevel_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SaeAutomationLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SaeAutomationLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_SaeAutomationLevel_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SaeAutomationLevel_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_SaeAutomationLevel_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SaeAutomationLevels.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SaeAutomationLevels.c new file mode 100644 index 000000000..7746b5807 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SaeAutomationLevels.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SaeAutomationLevels.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_SaeAutomationLevels_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_SaeAutomationLevels_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_ts_SaeAutomationLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_SaeAutomationLevels_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_SaeAutomationLevels_specs_1 = { + sizeof(struct ivim_ts_SaeAutomationLevels), + offsetof(struct ivim_ts_SaeAutomationLevels, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SaeAutomationLevels = { + "SaeAutomationLevels", + "SaeAutomationLevels", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_SaeAutomationLevels_tags_1, + sizeof(asn_DEF_ivim_ts_SaeAutomationLevels_tags_1) + /sizeof(asn_DEF_ivim_ts_SaeAutomationLevels_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SaeAutomationLevels_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SaeAutomationLevels_tags_1) + /sizeof(asn_DEF_ivim_ts_SaeAutomationLevels_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SaeAutomationLevels_constr_1, +#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_ivim_ts_SaeAutomationLevels_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_SaeAutomationLevels_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Scale-B12.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Scale-B12.c new file mode 100644 index 000000000..cfb3a78db --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Scale-B12.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Scale-B12.h" + +int +ivim_ts_Scale_B12_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_ivim_ts_Scale_B12_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_ivim_ts_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Scale_B12_tags_1, + sizeof(asn_DEF_ivim_ts_Scale_B12_tags_1) + /sizeof(asn_DEF_ivim_ts_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Scale_B12_tags_1) + /sizeof(asn_DEF_ivim_ts_Scale_B12_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Scale_B12_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Scale_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Segment.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Segment.c new file mode 100644 index 000000000..e198a6ff3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Segment.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Segment.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Segment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Segment, line), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_PolygonalLine, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "line" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_Segment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviLaneWidth, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const int asn_MAP_ivim_ts_Segment_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Segment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Segment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* line */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* laneWidth */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Segment_specs_1 = { + sizeof(struct ivim_ts_Segment), + offsetof(struct ivim_ts_Segment, _asn_ctx), + asn_MAP_ivim_ts_Segment_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_Segment_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Segment = { + "Segment", + "Segment", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Segment_tags_1, + sizeof(asn_DEF_ivim_ts_Segment_tags_1) + /sizeof(asn_DEF_ivim_ts_Segment_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Segment_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Segment_tags_1) + /sizeof(asn_DEF_ivim_ts_Segment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Segment_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Segment_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SegmentAttributeXY.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SegmentAttributeXY.c new file mode 100644 index 000000000..698460558 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SegmentAttributeXY.c @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXY.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_ivim_ts_SegmentAttributeXY_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 37 } /* (0..37,...) */, + { 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_ivim_ts_SegmentAttributeXY_value2enum_1[] = { + { 0, 8, "reserved" }, + { 1, 10, "doNotBlock" }, + { 2, 9, "whiteLine" }, + { 3, 15, "mergingLaneLeft" }, + { 4, 16, "mergingLaneRight" }, + { 5, 10, "curbOnLeft" }, + { 6, 11, "curbOnRight" }, + { 7, 17, "loadingzoneOnLeft" }, + { 8, 18, "loadingzoneOnRight" }, + { 9, 18, "turnOutPointOnLeft" }, + { 10, 19, "turnOutPointOnRight" }, + { 11, 21, "adjacentParkingOnLeft" }, + { 12, 22, "adjacentParkingOnRight" }, + { 13, 22, "adjacentBikeLaneOnLeft" }, + { 14, 23, "adjacentBikeLaneOnRight" }, + { 15, 14, "sharedBikeLane" }, + { 16, 14, "bikeBoxInFront" }, + { 17, 17, "transitStopOnLeft" }, + { 18, 18, "transitStopOnRight" }, + { 19, 17, "transitStopInLane" }, + { 20, 24, "sharedWithTrackedVehicle" }, + { 21, 10, "safeIsland" }, + { 22, 15, "lowCurbsPresent" }, + { 23, 18, "rumbleStripPresent" }, + { 24, 23, "audibleSignalingPresent" }, + { 25, 21, "adaptiveTimingPresent" }, + { 26, 22, "rfSignalRequestPresent" }, + { 27, 20, "partialCurbIntrusion" }, + { 28, 11, "taperToLeft" }, + { 29, 12, "taperToRight" }, + { 30, 17, "taperToCenterLine" }, + { 31, 15, "parallelParking" }, + { 32, 13, "headInParking" }, + { 33, 11, "freeParking" }, + { 34, 25, "timeRestrictionsOnParking" }, + { 35, 10, "costToPark" }, + { 36, 19, "midBlockCurbPresent" }, + { 37, 21, "unEvenPavementPresent" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_SegmentAttributeXY_enum2value_1[] = { + 25, /* adaptiveTimingPresent(25) */ + 13, /* adjacentBikeLaneOnLeft(13) */ + 14, /* adjacentBikeLaneOnRight(14) */ + 11, /* adjacentParkingOnLeft(11) */ + 12, /* adjacentParkingOnRight(12) */ + 24, /* audibleSignalingPresent(24) */ + 16, /* bikeBoxInFront(16) */ + 35, /* costToPark(35) */ + 5, /* curbOnLeft(5) */ + 6, /* curbOnRight(6) */ + 1, /* doNotBlock(1) */ + 33, /* freeParking(33) */ + 32, /* headInParking(32) */ + 7, /* loadingzoneOnLeft(7) */ + 8, /* loadingzoneOnRight(8) */ + 22, /* lowCurbsPresent(22) */ + 3, /* mergingLaneLeft(3) */ + 4, /* mergingLaneRight(4) */ + 36, /* midBlockCurbPresent(36) */ + 31, /* parallelParking(31) */ + 27, /* partialCurbIntrusion(27) */ + 0, /* reserved(0) */ + 26, /* rfSignalRequestPresent(26) */ + 23, /* rumbleStripPresent(23) */ + 21, /* safeIsland(21) */ + 15, /* sharedBikeLane(15) */ + 20, /* sharedWithTrackedVehicle(20) */ + 30, /* taperToCenterLine(30) */ + 28, /* taperToLeft(28) */ + 29, /* taperToRight(29) */ + 34, /* timeRestrictionsOnParking(34) */ + 19, /* transitStopInLane(19) */ + 17, /* transitStopOnLeft(17) */ + 18, /* transitStopOnRight(18) */ + 9, /* turnOutPointOnLeft(9) */ + 10, /* turnOutPointOnRight(10) */ + 37, /* unEvenPavementPresent(37) */ + 2 /* whiteLine(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_SegmentAttributeXY_specs_1 = { + asn_MAP_ivim_ts_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_SegmentAttributeXY_enum2value_1, /* N => "tag"; sorted by N */ + 38, /* Number of elements in the maps */ + 39, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_ivim_ts_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_ivim_ts_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_ivim_ts_SegmentAttributeXY_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SegmentAttributeXY_constr_1, +#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_ivim_ts_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SegmentAttributeXYList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SegmentAttributeXYList.c new file mode 100644 index 000000000..8d3293ce0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SegmentAttributeXYList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SegmentAttributeXYList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_SegmentAttributeXYList_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_ivim_ts_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ivim_ts_SegmentAttributeXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_SegmentAttributeXYList_specs_1 = { + sizeof(struct ivim_ts_SegmentAttributeXYList), + offsetof(struct ivim_ts_SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_ivim_ts_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_ivim_ts_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_ivim_ts_SegmentAttributeXYList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SegmentAttributeXYList_constr_1, +#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_ivim_ts_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiAxisLength.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiAxisLength.c new file mode 100644 index 000000000..caff4c1f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiAxisLength.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SemiAxisLength.h" + +int +ivim_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_ivim_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_ivim_ts_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SemiAxisLength_tags_1, + sizeof(asn_DEF_ivim_ts_SemiAxisLength_tags_1) + /sizeof(asn_DEF_ivim_ts_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SemiAxisLength_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SemiAxisLength_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMajorAxisAccuracy.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMajorAxisAccuracy.c new file mode 100644 index 000000000..c9a255adb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMajorAxisAccuracy.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisAccuracy.h" + +int +ivim_ts_SemiMajorAxisAccuracy_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_ivim_ts_SemiMajorAxisAccuracy_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_ivim_ts_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_ivim_ts_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_ivim_ts_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_ivim_ts_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SemiMajorAxisAccuracy_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_SemiMajorAxisAccuracy_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMajorAxisOrientation.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMajorAxisOrientation.c new file mode 100644 index 000000000..48030c38b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMajorAxisOrientation.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SemiMajorAxisOrientation.h" + +int +ivim_ts_SemiMajorAxisOrientation_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_ivim_ts_SemiMajorAxisOrientation_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_ivim_ts_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_ivim_ts_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_ivim_ts_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_ivim_ts_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SemiMajorAxisOrientation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_SemiMajorAxisOrientation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMinorAxisAccuracy.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMinorAxisAccuracy.c new file mode 100644 index 000000000..313d45b76 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SemiMinorAxisAccuracy.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SemiMinorAxisAccuracy.h" + +int +ivim_ts_SemiMinorAxisAccuracy_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_ivim_ts_SemiMinorAxisAccuracy_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_ivim_ts_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_ivim_ts_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_ivim_ts_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_ivim_ts_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SemiMinorAxisAccuracy_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_SemiMinorAxisAccuracy_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SequenceNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SequenceNumber.c new file mode 100644 index 000000000..3c055d159 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SequenceNumber.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SequenceNumber.h" + +int +ivim_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_ivim_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_ivim_ts_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SequenceNumber_tags_1, + sizeof(asn_DEF_ivim_ts_SequenceNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SequenceNumber_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SequenceNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ServiceApplicationLimit.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ServiceApplicationLimit.c new file mode 100644 index 000000000..bdb3a31f9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ServiceApplicationLimit.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ServiceApplicationLimit.h" + +int +ivim_ts_ServiceApplicationLimit_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_ivim_ts_ServiceApplicationLimit_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_ivim_ts_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_ivim_ts_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ivim_ts_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_ivim_ts_ServiceApplicationLimit_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ServiceApplicationLimit_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ServiceApplicationLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ServiceNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ServiceNumber.c new file mode 100644 index 000000000..d6222ff24 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ServiceNumber.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ServiceNumber.h" + +int +ivim_ts_ServiceNumber_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 == 32UL)) { + /* 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_ivim_ts_ServiceNumber_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 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_ivim_ts_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_ServiceNumber_tags_1, + sizeof(asn_DEF_ivim_ts_ServiceNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ServiceNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_ServiceNumber_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ServiceNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ServiceNumber_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SessionClass.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SessionClass.c new file mode 100644 index 000000000..eac5dd6f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SessionClass.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SessionClass.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_SessionClass_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SessionClass, sessionTariffClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionTariffClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SessionClass, sessionClaimedClass), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sessionClaimedClass" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SessionClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SessionClass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sessionTariffClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sessionClaimedClass */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SessionClass_specs_1 = { + sizeof(struct ivim_ts_SessionClass), + offsetof(struct ivim_ts_SessionClass, _asn_ctx), + asn_MAP_ivim_ts_SessionClass_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_ivim_ts_SessionClass = { + "SessionClass", + "SessionClass", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SessionClass_tags_1, + sizeof(asn_DEF_ivim_ts_SessionClass_tags_1) + /sizeof(asn_DEF_ivim_ts_SessionClass_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SessionClass_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SessionClass_tags_1) + /sizeof(asn_DEF_ivim_ts_SessionClass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SessionClass_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_SessionClass_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SessionLocation.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SessionLocation.c new file mode 100644 index 000000000..8ed7c32f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SessionLocation.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SessionLocation.h" + +static int +memb_ivim_ts_laneCodeNumber_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_ivim_ts_laneCodeNumber_constr_3 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_SessionLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SessionLocation, ascendingKilometrage), + (ASN_TAG_CLASS_CONTEXT | (0 << 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 */ + "ascendingKilometrage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SessionLocation, laneCodeNumber), + (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_ivim_ts_laneCodeNumber_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_ivim_ts_laneCodeNumber_constraint_1 + }, + 0, 0, /* No default value */ + "laneCodeNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SessionLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SessionLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ascendingKilometrage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* laneCodeNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SessionLocation_specs_1 = { + sizeof(struct ivim_ts_SessionLocation), + offsetof(struct ivim_ts_SessionLocation, _asn_ctx), + asn_MAP_ivim_ts_SessionLocation_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_ivim_ts_SessionLocation = { + "SessionLocation", + "SessionLocation", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SessionLocation_tags_1, + sizeof(asn_DEF_ivim_ts_SessionLocation_tags_1) + /sizeof(asn_DEF_ivim_ts_SessionLocation_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SessionLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SessionLocation_tags_1) + /sizeof(asn_DEF_ivim_ts_SessionLocation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SessionLocation_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_SessionLocation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetInstanceRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetInstanceRq.c new file mode 100644 index 000000000..f96cab508 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetInstanceRq.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SetInstanceRq.h" + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetMMIRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetMMIRq.c new file mode 100644 index 000000000..c6326da27 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetMMIRq.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SetMMIRq.h" + +int +ivim_ts_SetMMIRq_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_ivim_ts_SetMMIRq_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_ivim_ts_SetMMIRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SetMMIRq = { + "SetMMIRq", + "SetMMIRq", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SetMMIRq_tags_1, + sizeof(asn_DEF_ivim_ts_SetMMIRq_tags_1) + /sizeof(asn_DEF_ivim_ts_SetMMIRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SetMMIRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SetMMIRq_tags_1) + /sizeof(asn_DEF_ivim_ts_SetMMIRq_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SetMMIRq_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_SetMMIRq_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetStampedRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetStampedRq.c new file mode 100644 index 000000000..31b217e94 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SetStampedRq.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SetStampedRq.h" + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalControlZone.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalControlZone.c new file mode 100644 index 000000000..08ca1c934 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalControlZone.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Reg_SignalControlZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zone" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalControlZone_specs_1 = { + sizeof(struct ivim_ts_SignalControlZone), + offsetof(struct ivim_ts_SignalControlZone, _asn_ctx), + asn_MAP_ivim_ts_SignalControlZone_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_ivim_ts_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalControlZone_tags_1, + sizeof(asn_DEF_ivim_ts_SignalControlZone_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalControlZone_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalControlZone_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_ivim_ts_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalGroupID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalGroupID.c new file mode 100644 index 000000000..f71ca8c6f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalGroupID.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalGroupID.h" + +int +ivim_ts_SignalGroupID_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_ivim_ts_SignalGroupID_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_ivim_ts_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SignalGroupID_tags_1, + sizeof(asn_DEF_ivim_ts_SignalGroupID_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalGroupID_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalGroupID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SignalGroupID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_SignalGroupID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalHeadLocation.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalHeadLocation.c new file mode 100644 index 000000000..27e77e7b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalHeadLocation.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_NodeOffsetPointXY, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nodeXY" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "nodeZ" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalGroupID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalGroupID" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalHeadLocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nodeXY */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nodeZ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* signalGroupID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalHeadLocation_specs_1 = { + sizeof(struct ivim_ts_SignalHeadLocation), + offsetof(struct ivim_ts_SignalHeadLocation, _asn_ctx), + asn_MAP_ivim_ts_SignalHeadLocation_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_ivim_ts_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalHeadLocation_tags_1, + sizeof(asn_DEF_ivim_ts_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalHeadLocation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalHeadLocationList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalHeadLocationList.c new file mode 100644 index 000000000..a39be7d59 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalHeadLocationList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalHeadLocationList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_SignalHeadLocationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_SignalHeadLocation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_SignalHeadLocationList_specs_1 = { + sizeof(struct ivim_ts_SignalHeadLocationList), + offsetof(struct ivim_ts_SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_ivim_ts_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalHeadLocationList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SignalHeadLocationList_constr_1, +#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_ivim_ts_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequest.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequest.c new file mode 100644 index 000000000..c4b7f1658 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequest.c @@ -0,0 +1,278 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequest.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_SignalRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_7 = { + sizeof(struct ivim_ts_SignalRequest__regional), + offsetof(struct ivim_ts_SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_7, + sizeof(asn_DEF_ivim_ts_regional_tags_7) + /sizeof(asn_DEF_ivim_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_7) + /sizeof(asn_DEF_ivim_ts_regional_tags_7[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_ivim_ts_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_7, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PriorityRequestType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionAccessPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "inBoundLane" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionAccessPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "outBoundLane" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ivim_ts_regional_7, + 0, + { +#if !defined(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_ivim_ts_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* inBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outBoundLane */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalRequest_specs_1 = { + sizeof(struct ivim_ts_SignalRequest), + offsetof(struct ivim_ts_SignalRequest, _asn_ctx), + asn_MAP_ivim_ts_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalRequest_tags_1, + sizeof(asn_DEF_ivim_ts_SignalRequest_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalRequest_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequest_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestList.c new file mode 100644 index 000000000..1d94475ac --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequestList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_SignalRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_SignalRequestPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_SignalRequestList_specs_1 = { + sizeof(struct ivim_ts_SignalRequestList), + offsetof(struct ivim_ts_SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_SignalRequestList_tags_1, + sizeof(asn_DEF_ivim_ts_SignalRequestList_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalRequestList_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequestList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SignalRequestList_constr_1, +#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_ivim_ts_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestMessage.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestMessage.c new file mode 100644 index 000000000..77bdf0fd5 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestMessage.c @@ -0,0 +1,278 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequestMessage.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_regional_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_SignalRequestMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_7 = { + sizeof(struct ivim_ts_SignalRequestMessage__regional), + offsetof(struct ivim_ts_SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_7, + sizeof(asn_DEF_ivim_ts_regional_tags_7) + /sizeof(asn_DEF_ivim_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_7) + /sizeof(asn_DEF_ivim_ts_regional_tags_7[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_ivim_ts_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_7, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalRequestList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requests" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RequestorDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requestor" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ivim_ts_regional_7, + 0, + { +#if !defined(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_ivim_ts_regional_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalRequestMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* requests */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* requestor */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalRequestMessage_specs_1 = { + sizeof(struct ivim_ts_SignalRequestMessage), + offsetof(struct ivim_ts_SignalRequestMessage, _asn_ctx), + asn_MAP_ivim_ts_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalRequestMessage_tags_1, + sizeof(asn_DEF_ivim_ts_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequestMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestPackage.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestPackage.c new file mode 100644 index 000000000..4ad301530 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequestPackage.c @@ -0,0 +1,257 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequestPackage.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_6 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_ivim_ts_regional_constr_6 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_ivim_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_SignalRequestPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_6 = { + sizeof(struct ivim_ts_SignalRequestPackage__regional), + offsetof(struct ivim_ts_SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_6, + sizeof(asn_DEF_ivim_ts_regional_tags_6) + /sizeof(asn_DEF_ivim_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_6) + /sizeof(asn_DEF_ivim_ts_regional_tags_6[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_6, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalRequest, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "request" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ivim_ts_regional_6, + 0, + { +#if !defined(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_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalRequestPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalRequestPackage_specs_1 = { + sizeof(struct ivim_ts_SignalRequestPackage), + offsetof(struct ivim_ts_SignalRequestPackage, _asn_ctx), + asn_MAP_ivim_ts_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalRequestPackage_tags_1, + sizeof(asn_DEF_ivim_ts_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequestPackage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequesterInfo.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequesterInfo.c new file mode 100644 index 000000000..2cc551091 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalRequesterInfo.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalRequesterInfo.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RequestID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "request" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_BasicVehicleRole, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "role" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RequestorType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "typeData" + }, +}; +static const int asn_MAP_ivim_ts_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalRequesterInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* request */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* role */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* typeData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalRequesterInfo_specs_1 = { + sizeof(struct ivim_ts_SignalRequesterInfo), + offsetof(struct ivim_ts_SignalRequesterInfo, _asn_ctx), + asn_MAP_ivim_ts_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_ivim_ts_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalRequesterInfo_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatus.c new file mode 100644 index 000000000..e012f83f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatus.c @@ -0,0 +1,236 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatus.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_5 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_ivim_ts_regional_constr_5 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_ivim_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_SignalStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_5 = { + sizeof(struct ivim_ts_SignalStatus__regional), + offsetof(struct ivim_ts_SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_5, + sizeof(asn_DEF_ivim_ts_regional_tags_5) + /sizeof(asn_DEF_ivim_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_5) + /sizeof(asn_DEF_ivim_ts_regional_tags_5[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_5, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalStatusPackageList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sigStatus" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ivim_ts_regional_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) + &asn_PER_memb_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sigStatus */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalStatus_specs_1 = { + sizeof(struct ivim_ts_SignalStatus), + offsetof(struct ivim_ts_SignalStatus, _asn_ctx), + asn_MAP_ivim_ts_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ivim_ts_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalStatus_tags_1, + sizeof(asn_DEF_ivim_ts_SignalStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusList.c new file mode 100644 index 000000000..79bf4731f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_SignalStatusList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_SignalStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_SignalStatusList_specs_1 = { + sizeof(struct ivim_ts_SignalStatusList), + offsetof(struct ivim_ts_SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_SignalStatusList_tags_1, + sizeof(asn_DEF_ivim_ts_SignalStatusList_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalStatusList_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SignalStatusList_constr_1, +#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_ivim_ts_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusMessage.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusMessage.c new file mode 100644 index 000000000..e088884a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusMessage.c @@ -0,0 +1,257 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusMessage.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_6 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_ivim_ts_regional_constr_6 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_ivim_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_SignalStatusMessage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_6 = { + sizeof(struct ivim_ts_SignalStatusMessage__regional), + offsetof(struct ivim_ts_SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_6, + sizeof(asn_DEF_ivim_ts_regional_tags_6) + /sizeof(asn_DEF_ivim_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_6) + /sizeof(asn_DEF_ivim_ts_regional_tags_6[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_6, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MsgCount, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalStatusList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ivim_ts_regional_6, + 0, + { +#if !defined(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_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalStatusMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* regional */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalStatusMessage_specs_1 = { + sizeof(struct ivim_ts_SignalStatusMessage), + offsetof(struct ivim_ts_SignalStatusMessage, _asn_ctx), + asn_MAP_ivim_ts_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ivim_ts_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalStatusMessage_tags_1, + sizeof(asn_DEF_ivim_ts_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusMessage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_ivim_ts_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackage-addGrpC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackage-addGrpC.c new file mode 100644 index 000000000..9462fc6be --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackage-addGrpC.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct ivim_ts_SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DeltaTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "synchToSchedule" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RejectedReason, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rejectedReason" + }, +}; +static const int asn_MAP_ivim_ts_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalStatusPackage_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* synchToSchedule */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rejectedReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct ivim_ts_SignalStatusPackage_addGrpC), + offsetof(struct ivim_ts_SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_ivim_ts_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_ivim_ts_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackage.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackage.c new file mode 100644 index 000000000..ab5d6d32a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackage.c @@ -0,0 +1,320 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackage.h" + +static int +memb_ivim_ts_regional_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1UL && size <= 4UL)) { + /* Perform validation of the inner elements */ + return SEQUENCE_OF_constraint(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_regional_constr_9 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_ivim_ts_regional_constr_9 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_ivim_ts_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Reg_SignalStatusPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_regional_specs_9 = { + sizeof(struct ivim_ts_SignalStatusPackage__regional), + offsetof(struct ivim_ts_SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_regional_tags_9, + sizeof(asn_DEF_ivim_ts_regional_tags_9) + /sizeof(asn_DEF_ivim_ts_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_ivim_ts_regional_tags_9) + /sizeof(asn_DEF_ivim_ts_regional_tags_9[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_ivim_ts_regional_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) */ + SEQUENCE_OF_constraint + }, + asn_MBR_ivim_ts_regional_9, + 1, /* Single element */ + &asn_SPC_ivim_ts_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SignalRequesterInfo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requester" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionAccessPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "inboundOn" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_IntersectionAccessPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "outboundOn" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_MinuteOfTheYear, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minute" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "second" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PrioritizationResponseStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "status" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ivim_ts_regional_9, + 0, + { +#if !defined(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_ivim_ts_regional_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_ivim_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_ivim_ts_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignalStatusPackage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requester */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* inboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* outboundOn */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* minute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* second */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* status */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* regional */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SignalStatusPackage_specs_1 = { + sizeof(struct ivim_ts_SignalStatusPackage), + offsetof(struct ivim_ts_SignalStatusPackage, _asn_ctx), + asn_MAP_ivim_ts_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ivim_ts_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SignalStatusPackage_tags_1, + sizeof(asn_DEF_ivim_ts_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusPackage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_ivim_ts_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackageList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackageList.c new file mode 100644 index 000000000..f8582ebfa --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalStatusPackageList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalStatusPackageList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_SignalStatusPackageList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_SignalStatusPackage, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_SignalStatusPackageList_specs_1 = { + sizeof(struct ivim_ts_SignalStatusPackageList), + offsetof(struct ivim_ts_SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_ivim_ts_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalStatusPackageList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SignalStatusPackageList_constr_1, +#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_ivim_ts_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalViolationSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalViolationSubCauseCode.c new file mode 100644 index 000000000..f626dc54b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignalViolationSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignalViolationSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SignalViolationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignedValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignedValue.c new file mode 100644 index 000000000..62849b951 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SignedValue.c @@ -0,0 +1,161 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SignedValue.h" + +static int +memb_ivim_ts_positive_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 <= 8388607L)) { + /* 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_ivim_ts_negative_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 >= -8388608L && value <= -1L)) { + /* 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_ivim_ts_positive_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 23, -1, 0, 8388607 } /* (0..8388607) */, + { 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_ivim_ts_negative_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 23, -1, -8388608, -1 } /* (-8388608..-1) */, + { 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_ivim_ts_SignedValue_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_ivim_ts_SignedValue_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignedValue, choice.positive), + (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_ivim_ts_positive_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_ivim_ts_positive_constraint_1 + }, + 0, 0, /* No default value */ + "positive" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SignedValue, choice.negative), + (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_ivim_ts_negative_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_ivim_ts_negative_constraint_1 + }, + 0, 0, /* No default value */ + "negative" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SignedValue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* positive */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* negative */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_SignedValue_specs_1 = { + sizeof(struct ivim_ts_SignedValue), + offsetof(struct ivim_ts_SignedValue, _asn_ctx), + offsetof(struct ivim_ts_SignedValue, present), + sizeof(((struct ivim_ts_SignedValue *)0)->present), + asn_MAP_ivim_ts_SignedValue_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SignedValue = { + "SignedValue", + "SignedValue", + &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_ivim_ts_SignedValue_constr_1, +#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_ivim_ts_SignedValue_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_SignedValue_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SlowVehicleSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SlowVehicleSubCauseCode.c new file mode 100644 index 000000000..dc019edf6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SlowVehicleSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SlowVehicleSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SlowVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SoundLevel.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SoundLevel.c new file mode 100644 index 000000000..51e188269 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SoundLevel.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SoundLevel.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_SoundLevel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SoundLevel, soundstationary), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "soundstationary" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SoundLevel, sounddriveby), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sounddriveby" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SoundLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SoundLevel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* soundstationary */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sounddriveby */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SoundLevel_specs_1 = { + sizeof(struct ivim_ts_SoundLevel), + offsetof(struct ivim_ts_SoundLevel, _asn_ctx), + asn_MAP_ivim_ts_SoundLevel_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_ivim_ts_SoundLevel = { + "SoundLevel", + "SoundLevel", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SoundLevel_tags_1, + sizeof(asn_DEF_ivim_ts_SoundLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_SoundLevel_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SoundLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SoundLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_SoundLevel_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SoundLevel_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_SoundLevel_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpecialTransportType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpecialTransportType.c new file mode 100644 index 000000000..b0c9cf358 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpecialTransportType.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpecialTransportType.h" + +int +ivim_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_ivim_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_ivim_ts_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_SpecialTransportType_tags_1, + sizeof(asn_DEF_ivim_ts_SpecialTransportType_tags_1) + /sizeof(asn_DEF_ivim_ts_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpecialTransportType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SpecialTransportType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Speed.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Speed.c new file mode 100644 index 000000000..5d6752cb3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Speed.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Speed.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_Speed_specs_1 = { + sizeof(struct ivim_ts_Speed), + offsetof(struct ivim_ts_Speed, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Speed_tags_1, + sizeof(asn_DEF_ivim_ts_Speed_tags_1) + /sizeof(asn_DEF_ivim_ts_Speed_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Speed_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_Speed_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Speed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedAdvice.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedAdvice.c new file mode 100644 index 000000000..d15281339 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedAdvice.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedAdvice.h" + +int +ivim_ts_SpeedAdvice_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 <= 500L)) { + /* 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_ivim_ts_SpeedAdvice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 500 } /* (0..500) */, + { 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_ivim_ts_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SpeedAdvice_tags_1, + sizeof(asn_DEF_ivim_ts_SpeedAdvice_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpeedAdvice_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedAdvice_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SpeedAdvice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_SpeedAdvice_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedConfidence.c new file mode 100644 index 000000000..2c7717ec6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidence.h" + +int +ivim_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_ivim_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_ivim_ts_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SpeedConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_SpeedConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpeedConfidence_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SpeedConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedConfidenceDSRC.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedConfidenceDSRC.c new file mode 100644 index 000000000..5ed76cc2d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedConfidenceDSRC.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedConfidenceDSRC.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_ivim_ts_SpeedConfidenceDSRC_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_ivim_ts_SpeedConfidenceDSRC_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 9, "prec100ms" }, + { 2, 8, "prec10ms" }, + { 3, 7, "prec5ms" }, + { 4, 7, "prec1ms" }, + { 5, 9, "prec0-1ms" }, + { 6, 10, "prec0-05ms" }, + { 7, 10, "prec0-01ms" } +}; +static const unsigned int asn_MAP_ivim_ts_SpeedConfidenceDSRC_enum2value_1[] = { + 7, /* prec0-01ms(7) */ + 6, /* prec0-05ms(6) */ + 5, /* prec0-1ms(5) */ + 1, /* prec100ms(1) */ + 2, /* prec10ms(2) */ + 4, /* prec1ms(4) */ + 3, /* prec5ms(3) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_ivim_ts_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_SpeedConfidenceDSRC_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_ivim_ts_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_ivim_ts_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SpeedConfidenceDSRC_constr_1, +#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_ivim_ts_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimit.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimit.c new file mode 100644 index 000000000..8c92f616b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimit.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedLimit.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SpeedLimit_tags_1, + sizeof(asn_DEF_ivim_ts_SpeedLimit_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpeedLimit_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SpeedLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimitList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimitList.c new file mode 100644 index 000000000..6eaf23699 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimitList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_SpeedLimitList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 9 } /* (SIZE(1..9)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_RegulatorySpeedLimit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_SpeedLimitList_specs_1 = { + sizeof(struct ivim_ts_SpeedLimitList), + offsetof(struct ivim_ts_SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_SpeedLimitList_tags_1, + sizeof(asn_DEF_ivim_ts_SpeedLimitList_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpeedLimitList_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedLimitList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SpeedLimitList_constr_1, +#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_ivim_ts_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimitType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimitType.c new file mode 100644 index 000000000..556a52a8c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedLimitType.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedLimitType.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_ivim_ts_SpeedLimitType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 12 } /* (0..12,...) */, + { 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_ivim_ts_SpeedLimitType_value2enum_1[] = { + { 0, 7, "unknown" }, + { 1, 20, "maxSpeedInSchoolZone" }, + { 2, 42, "maxSpeedInSchoolZoneWhenChildrenArePresent" }, + { 3, 26, "maxSpeedInConstructionZone" }, + { 4, 15, "vehicleMinSpeed" }, + { 5, 15, "vehicleMaxSpeed" }, + { 6, 20, "vehicleNightMaxSpeed" }, + { 7, 13, "truckMinSpeed" }, + { 8, 13, "truckMaxSpeed" }, + { 9, 18, "truckNightMaxSpeed" }, + { 10, 28, "vehiclesWithTrailersMinSpeed" }, + { 11, 28, "vehiclesWithTrailersMaxSpeed" }, + { 12, 33, "vehiclesWithTrailersNightMaxSpeed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_SpeedLimitType_enum2value_1[] = { + 3, /* maxSpeedInConstructionZone(3) */ + 1, /* maxSpeedInSchoolZone(1) */ + 2, /* maxSpeedInSchoolZoneWhenChildrenArePresent(2) */ + 8, /* truckMaxSpeed(8) */ + 7, /* truckMinSpeed(7) */ + 9, /* truckNightMaxSpeed(9) */ + 0, /* unknown(0) */ + 5, /* vehicleMaxSpeed(5) */ + 4, /* vehicleMinSpeed(4) */ + 6, /* vehicleNightMaxSpeed(6) */ + 11, /* vehiclesWithTrailersMaxSpeed(11) */ + 10, /* vehiclesWithTrailersMinSpeed(10) */ + 12 /* vehiclesWithTrailersNightMaxSpeed(12) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_SpeedLimitType_specs_1 = { + asn_MAP_ivim_ts_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_SpeedLimitType_enum2value_1, /* N => "tag"; sorted by N */ + 13, /* Number of elements in the maps */ + 14, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_SpeedLimitType_tags_1, + sizeof(asn_DEF_ivim_ts_SpeedLimitType_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpeedLimitType_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedLimitType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_SpeedLimitType_constr_1, +#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_ivim_ts_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedValue.c new file mode 100644 index 000000000..14b1e2d2f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedValue.h" + +int +ivim_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_ivim_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_ivim_ts_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SpeedValue_tags_1, + sizeof(asn_DEF_ivim_ts_SpeedValue_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpeedValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SpeedValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedandHeadingandThrottleConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 000000000..3bff75d19 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SpeedandHeadingandThrottleConfidence.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_HeadingConfidenceDSRC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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 ivim_ts_SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SpeedConfidenceDSRC, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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 ivim_ts_SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ThrottleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "throttle" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SpeedandHeadingandThrottleConfidence_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 } /* throttle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct ivim_ts_SpeedandHeadingandThrottleConfidence), + offsetof(struct ivim_ts_SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_ivim_ts_SpeedandHeadingandThrottleConfidence_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_ivim_ts_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StartTime.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StartTime.c new file mode 100644 index 000000000..3ac038f62 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StartTime.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_StartTime.h" + +int +ivim_ts_StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const ivim_ts_AviEriDateTime_t *st = (const ivim_ts_AviEriDateTime_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 == 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 ivim_ts_AviEriDateTime, + * 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_ivim_ts_StartTime_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_ivim_ts_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_StartTime_tags_1, + sizeof(asn_DEF_ivim_ts_StartTime_tags_1) + /sizeof(asn_DEF_ivim_ts_StartTime_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_StartTime_tags_1) + /sizeof(asn_DEF_ivim_ts_StartTime_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_StartTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_StartTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationID.c new file mode 100644 index 000000000..ea3054806 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationID.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_StationID.h" + +int +ivim_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_ivim_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_ivim_ts_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_StationID_tags_1, + sizeof(asn_DEF_ivim_ts_StationID_tags_1) + /sizeof(asn_DEF_ivim_ts_StationID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_StationID_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_StationID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_StationID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationarySince.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationarySince.c new file mode 100644 index 000000000..cd39d2034 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationarySince.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_ts_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_ivim_ts_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_StationarySince_specs_1 = { + asn_MAP_ivim_ts_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_StationarySince_tags_1, + sizeof(asn_DEF_ivim_ts_StationarySince_tags_1) + /sizeof(asn_DEF_ivim_ts_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_StationarySince_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationaryVehicleSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationaryVehicleSubCauseCode.c new file mode 100644 index 000000000..8ee484a92 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StationaryVehicleSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_StationaryVehicleSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_StationaryVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngle.c new file mode 100644 index 000000000..c9e51cd5f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngle.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SteeringWheelAngle_specs_1 = { + sizeof(struct ivim_ts_SteeringWheelAngle), + offsetof(struct ivim_ts_SteeringWheelAngle, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_ivim_ts_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_ivim_ts_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngleConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngleConfidence.c new file mode 100644 index 000000000..6dfb1435c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngleConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleConfidence.h" + +int +ivim_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_ivim_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_ivim_ts_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SteeringWheelAngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngleValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngleValue.c new file mode 100644 index 000000000..7ffab699b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SteeringWheelAngleValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SteeringWheelAngleValue.h" + +int +ivim_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_ivim_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_ivim_ts_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_ivim_ts_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_ivim_ts_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SteeringWheelAngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StopTime.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StopTime.c new file mode 100644 index 000000000..ee7680544 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_StopTime.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_StopTime.h" + +int +ivim_ts_StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const ivim_ts_AviEriDateTime_t *st = (const ivim_ts_AviEriDateTime_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 == 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 ivim_ts_AviEriDateTime, + * 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_ivim_ts_StopTime_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_ivim_ts_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_StopTime_tags_1, + sizeof(asn_DEF_ivim_ts_StopTime_tags_1) + /sizeof(asn_DEF_ivim_ts_StopTime_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_StopTime_tags_1) + /sizeof(asn_DEF_ivim_ts_StopTime_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_StopTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_StopTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SubCauseCodeType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SubCauseCodeType.c new file mode 100644 index 000000000..0a4c3eca4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SubCauseCodeType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SubCauseCodeType.h" + +int +ivim_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_ivim_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_ivim_ts_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_SubCauseCodeType_tags_1, + sizeof(asn_DEF_ivim_ts_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_ivim_ts_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_SubCauseCodeType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SubRq.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SubRq.c new file mode 100644 index 000000000..c8d328044 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_SubRq.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_SubRq.h" + +static int +memb_ivim_ts_attributeId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 127L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_attributeId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 0, 127 } /* (0..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_ivim_ts_SubRq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SubRq, attributeId), + (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_ivim_ts_attributeId_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_ivim_ts_attributeId_constraint_1 + }, + 0, 0, /* No default value */ + "attributeId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_SubRq, value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_SubRq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_SubRq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* attributeId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* value */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_SubRq_specs_1 = { + sizeof(struct ivim_ts_SubRq), + offsetof(struct ivim_ts_SubRq, _asn_ctx), + asn_MAP_ivim_ts_SubRq_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_ivim_ts_SubRq = { + "SubRq", + "SubRq", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_SubRq_tags_1, + sizeof(asn_DEF_ivim_ts_SubRq_tags_1) + /sizeof(asn_DEF_ivim_ts_SubRq_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_SubRq_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_SubRq_tags_1) + /sizeof(asn_DEF_ivim_ts_SubRq_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_SubRq_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_SubRq_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TaxCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TaxCode.c new file mode 100644 index 000000000..079132398 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TaxCode.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AVIAEINumberingAndDataStructures" + * found in "/input/ISO14816_AVIAEINumberingAndDataStructures.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TaxCode.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_TaxCode_tags_1, + sizeof(asn_DEF_ivim_ts_TaxCode_tags_1) + /sizeof(asn_DEF_ivim_ts_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TaxCode_tags_1) + /sizeof(asn_DEF_ivim_ts_TaxCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TcPart.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TcPart.c new file mode 100644 index 000000000..9cc01c159 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TcPart.c @@ -0,0 +1,489 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TcPart.h" + +static int +memb_ivim_ts_minimumAwarenessTime_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ivim_ts_layoutId_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 <= 4L)) { + /* 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_ivim_ts_preStoredlayoutId_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 <= 64L)) { + /* 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_ivim_ts_minimumAwarenessTime_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_layoutId_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { 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_ivim_ts_preStoredlayoutId_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 1, 64 } /* (1..64,...) */, + { 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_ivim_ts_ext1_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_TcPart__ext1, iviType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_IviType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iviType" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_TcPart__ext1, laneStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LaneStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneStatus" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_TcPart__ext1, vehicleCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleCharacteristicsList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleCharacteristics" + }, +}; +static const int asn_MAP_ivim_ts_ext1_oms_13[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ext1_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ext1_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iviType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* vehicleCharacteristics */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ext1_specs_13 = { + sizeof(struct ivim_ts_TcPart__ext1), + offsetof(struct ivim_ts_TcPart__ext1, _asn_ctx), + asn_MAP_ivim_ts_ext1_tag2el_13, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_ext1_oms_13, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ext1_13 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ext1_tags_13, + sizeof(asn_DEF_ivim_ts_ext1_tags_13) + /sizeof(asn_DEF_ivim_ts_ext1_tags_13[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_ext1_tags_13, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ext1_tags_13) + /sizeof(asn_DEF_ivim_ts_ext1_tags_13[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_ivim_ts_ext1_13, + 3, /* Elements count */ + &asn_SPC_ivim_ts_ext1_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_TcPart_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_TcPart, detectionZoneIds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detectionZoneIds" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_TcPart, relevanceZoneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "relevanceZoneIds" + }, + { ATF_POINTER, 7, offsetof(struct ivim_ts_TcPart, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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, 6, offsetof(struct ivim_ts_TcPart, driverAwarenessZoneIds), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ZoneIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driverAwarenessZoneIds" + }, + { ATF_POINTER, 5, offsetof(struct ivim_ts_TcPart, minimumAwarenessTime), + (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_ivim_ts_minimumAwarenessTime_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_ivim_ts_minimumAwarenessTime_constraint_1 + }, + 0, 0, /* No default value */ + "minimumAwarenessTime" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_TcPart, applicableLanes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LanePositions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "applicableLanes" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_TcPart, layoutId), + (ASN_TAG_CLASS_CONTEXT | (6 << 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_ivim_ts_layoutId_constr_8, +#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_ivim_ts_layoutId_constraint_1 + }, + 0, 0, /* No default value */ + "layoutId" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_TcPart, preStoredlayoutId), + (ASN_TAG_CLASS_CONTEXT | (7 << 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_ivim_ts_preStoredlayoutId_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_ivim_ts_preStoredlayoutId_constraint_1 + }, + 0, 0, /* No default value */ + "preStoredlayoutId" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_TcPart, text), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TextLines, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "text" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_TcPart, data), + (ASN_TAG_CLASS_CONTEXT | (9 << 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 */ + "data" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_TcPart, ext1), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ivim_ts_ext1_13, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ivim_ts_TcPart_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8, 10 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_TcPart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_TcPart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* detectionZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* relevanceZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* driverAwarenessZoneIds */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* minimumAwarenessTime */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* applicableLanes */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* layoutId */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* preStoredlayoutId */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* text */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* data */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TcPart_specs_1 = { + sizeof(struct ivim_ts_TcPart), + offsetof(struct ivim_ts_TcPart, _asn_ctx), + asn_MAP_ivim_ts_TcPart_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_ivim_ts_TcPart_oms_1, /* Optional members */ + 8, 1, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TcPart = { + "TcPart", + "TcPart", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_TcPart_tags_1, + sizeof(asn_DEF_ivim_ts_TcPart_tags_1) + /sizeof(asn_DEF_ivim_ts_TcPart_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TcPart_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TcPart_tags_1) + /sizeof(asn_DEF_ivim_ts_TcPart_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_TcPart_1, + 11, /* Elements count */ + &asn_SPC_ivim_ts_TcPart_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TemporaryID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TemporaryID.c new file mode 100644 index 000000000..8f662bfc0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TemporaryID.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TemporaryID.h" + +int +ivim_ts_TemporaryID_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 == 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 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_ivim_ts_TemporaryID_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_ivim_ts_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_TemporaryID_tags_1, + sizeof(asn_DEF_ivim_ts_TemporaryID_tags_1) + /sizeof(asn_DEF_ivim_ts_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TemporaryID_tags_1) + /sizeof(asn_DEF_ivim_ts_TemporaryID_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TemporaryID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_TemporaryID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Text.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Text.c new file mode 100644 index 000000000..99706a701 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Text.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Text.h" + +static int +memb_ivim_ts_layoutComponentId_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 <= 4L)) { + /* 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_ivim_ts_language_constraint_1(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; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_layoutComponentId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 4 } /* (1..4,...) */, + { 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_ivim_ts_language_constr_3 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_Text_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_Text, layoutComponentId), + (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_ivim_ts_layoutComponentId_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_ivim_ts_layoutComponentId_constraint_1 + }, + 0, 0, /* No default value */ + "layoutComponentId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Text, language), + (ASN_TAG_CLASS_CONTEXT | (1 << 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) + &asn_PER_memb_ivim_ts_language_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_ivim_ts_language_constraint_1 + }, + 0, 0, /* No default value */ + "language" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Text, textContent), + (ASN_TAG_CLASS_CONTEXT | (2 << 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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "textContent" + }, +}; +static const int asn_MAP_ivim_ts_Text_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Text_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Text_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* layoutComponentId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* language */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* textContent */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Text_specs_1 = { + sizeof(struct ivim_ts_Text), + offsetof(struct ivim_ts_Text, _asn_ctx), + asn_MAP_ivim_ts_Text_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_Text_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Text = { + "Text", + "Text", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Text_tags_1, + sizeof(asn_DEF_ivim_ts_Text_tags_1) + /sizeof(asn_DEF_ivim_ts_Text_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Text_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Text_tags_1) + /sizeof(asn_DEF_ivim_ts_Text_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Text_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_Text_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TextContainer.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TextContainer.c new file mode 100644 index 000000000..bffd028c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TextContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TextContainer.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_TextContainer_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_ivim_ts_TextContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_TcPart, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_TextContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_TextContainer_specs_1 = { + sizeof(struct ivim_ts_TextContainer), + offsetof(struct ivim_ts_TextContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TextContainer = { + "TextContainer", + "TextContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_TextContainer_tags_1, + sizeof(asn_DEF_ivim_ts_TextContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_TextContainer_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TextContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TextContainer_tags_1) + /sizeof(asn_DEF_ivim_ts_TextContainer_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TextContainer_constr_1, +#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_ivim_ts_TextContainer_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_TextContainer_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TextLines.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TextLines.c new file mode 100644 index 000000000..5950dfab2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TextLines.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TextLines.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_TextLines_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_TextLines_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_Text, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_TextLines_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_TextLines_specs_1 = { + sizeof(struct ivim_ts_TextLines), + offsetof(struct ivim_ts_TextLines, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TextLines = { + "TextLines", + "TextLines", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_TextLines_tags_1, + sizeof(asn_DEF_ivim_ts_TextLines_tags_1) + /sizeof(asn_DEF_ivim_ts_TextLines_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TextLines_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TextLines_tags_1) + /sizeof(asn_DEF_ivim_ts_TextLines_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TextLines_constr_1, +#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_ivim_ts_TextLines_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_TextLines_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ThrottleConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ThrottleConfidence.c new file mode 100644 index 000000000..c13b0fd1c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ThrottleConfidence.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ThrottleConfidence.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_ivim_ts_ThrottleConfidence_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_ivim_ts_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_ivim_ts_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_ThrottleConfidence_specs_1 = { + asn_MAP_ivim_ts_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_ThrottleConfidence_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_ivim_ts_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_ThrottleConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_ThrottleConfidence_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ThrottleConfidence_constr_1, +#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_ivim_ts_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeChangeDetails.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeChangeDetails.c new file mode 100644 index 000000000..817dc7fa0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeChangeDetails.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct ivim_ts_TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "minEndTime" + }, + { ATF_POINTER, 4, offsetof(struct ivim_ts_TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "maxEndTime" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "likelyTime" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeIntervalConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TimeMark, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "nextTime" + }, +}; +static const int asn_MAP_ivim_ts_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_TimeChangeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxEndTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* likelyTime */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* confidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TimeChangeDetails_specs_1 = { + sizeof(struct ivim_ts_TimeChangeDetails), + offsetof(struct ivim_ts_TimeChangeDetails, _asn_ctx), + asn_MAP_ivim_ts_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_TimeChangeDetails_tags_1, + sizeof(asn_DEF_ivim_ts_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeChangeDetails_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeConfidence.c new file mode 100644 index 000000000..4ed684dba --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeConfidence.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeConfidence.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_ivim_ts_TimeConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { 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_ivim_ts_TimeConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 12, "time-100-000" }, + { 2, 12, "time-050-000" }, + { 3, 12, "time-020-000" }, + { 4, 12, "time-010-000" }, + { 5, 12, "time-002-000" }, + { 6, 12, "time-001-000" }, + { 7, 12, "time-000-500" }, + { 8, 12, "time-000-200" }, + { 9, 12, "time-000-100" }, + { 10, 12, "time-000-050" }, + { 11, 12, "time-000-020" }, + { 12, 12, "time-000-010" }, + { 13, 12, "time-000-005" }, + { 14, 12, "time-000-002" }, + { 15, 12, "time-000-001" }, + { 16, 14, "time-000-000-5" }, + { 17, 14, "time-000-000-2" }, + { 18, 14, "time-000-000-1" }, + { 19, 15, "time-000-000-05" }, + { 20, 15, "time-000-000-02" }, + { 21, 15, "time-000-000-01" }, + { 22, 16, "time-000-000-005" }, + { 23, 16, "time-000-000-002" }, + { 24, 16, "time-000-000-001" }, + { 25, 18, "time-000-000-000-5" }, + { 26, 18, "time-000-000-000-2" }, + { 27, 18, "time-000-000-000-1" }, + { 28, 19, "time-000-000-000-05" }, + { 29, 19, "time-000-000-000-02" }, + { 30, 19, "time-000-000-000-01" }, + { 31, 20, "time-000-000-000-005" }, + { 32, 20, "time-000-000-000-002" }, + { 33, 20, "time-000-000-000-001" }, + { 34, 22, "time-000-000-000-000-5" }, + { 35, 22, "time-000-000-000-000-2" }, + { 36, 22, "time-000-000-000-000-1" }, + { 37, 23, "time-000-000-000-000-05" }, + { 38, 23, "time-000-000-000-000-02" }, + { 39, 23, "time-000-000-000-000-01" } +}; +static const unsigned int asn_MAP_ivim_ts_TimeConfidence_enum2value_1[] = { + 39, /* time-000-000-000-000-01(39) */ + 38, /* time-000-000-000-000-02(38) */ + 37, /* time-000-000-000-000-05(37) */ + 36, /* time-000-000-000-000-1(36) */ + 35, /* time-000-000-000-000-2(35) */ + 34, /* time-000-000-000-000-5(34) */ + 33, /* time-000-000-000-001(33) */ + 32, /* time-000-000-000-002(32) */ + 31, /* time-000-000-000-005(31) */ + 30, /* time-000-000-000-01(30) */ + 29, /* time-000-000-000-02(29) */ + 28, /* time-000-000-000-05(28) */ + 27, /* time-000-000-000-1(27) */ + 26, /* time-000-000-000-2(26) */ + 25, /* time-000-000-000-5(25) */ + 24, /* time-000-000-001(24) */ + 23, /* time-000-000-002(23) */ + 22, /* time-000-000-005(22) */ + 21, /* time-000-000-01(21) */ + 20, /* time-000-000-02(20) */ + 19, /* time-000-000-05(19) */ + 18, /* time-000-000-1(18) */ + 17, /* time-000-000-2(17) */ + 16, /* time-000-000-5(16) */ + 15, /* time-000-001(15) */ + 14, /* time-000-002(14) */ + 13, /* time-000-005(13) */ + 12, /* time-000-010(12) */ + 11, /* time-000-020(11) */ + 10, /* time-000-050(10) */ + 9, /* time-000-100(9) */ + 8, /* time-000-200(8) */ + 7, /* time-000-500(7) */ + 6, /* time-001-000(6) */ + 5, /* time-002-000(5) */ + 4, /* time-010-000(4) */ + 3, /* time-020-000(3) */ + 2, /* time-050-000(2) */ + 1, /* time-100-000(1) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_TimeConfidence_specs_1 = { + asn_MAP_ivim_ts_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_TimeConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 40, /* 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_ivim_ts_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_TimeConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_TimeConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TimeConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeConfidence_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TimeConfidence_constr_1, +#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_ivim_ts_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeIntervalConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeIntervalConfidence.c new file mode 100644 index 000000000..f46195854 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeIntervalConfidence.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeIntervalConfidence.h" + +int +ivim_ts_TimeIntervalConfidence_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_ivim_ts_TimeIntervalConfidence_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_ivim_ts_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeIntervalConfidence_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TimeIntervalConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_TimeIntervalConfidence_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeMark.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeMark.c new file mode 100644 index 000000000..c9eca0c53 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeMark.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeMark.h" + +int +ivim_ts_TimeMark_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 <= 36001L)) { + /* 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_ivim_ts_TimeMark_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 36001 } /* (0..36001) */, + { 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_ivim_ts_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TimeMark_tags_1, + sizeof(asn_DEF_ivim_ts_TimeMark_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TimeMark_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeMark_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TimeMark_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_TimeMark_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeReference.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeReference.c new file mode 100644 index 000000000..22dc8e922 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimeReference.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "AddGrpC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TimeReference.h" + +int +ivim_ts_TimeReference_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 <= 60000L)) { + /* 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_ivim_ts_TimeReference_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 60000 } /* (0..60000) */, + { 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_ivim_ts_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TimeReference_tags_1, + sizeof(asn_DEF_ivim_ts_TimeReference_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TimeReference_tags_1) + /sizeof(asn_DEF_ivim_ts_TimeReference_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TimeReference_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_TimeReference_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimestampIts.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimestampIts.c new file mode 100644 index 000000000..f1b1ce917 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TimestampIts.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TimestampIts.h" + +int +ivim_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_ivim_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_ivim_ts_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_ivim_ts_TimestampIts_tags_1, + sizeof(asn_DEF_ivim_ts_TimestampIts_tags_1) + /sizeof(asn_DEF_ivim_ts_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TimestampIts_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_TimestampIts_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Traces.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Traces.c new file mode 100644 index 000000000..dd1e05625 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Traces.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Traces.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_PathHistory, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ivim_ts_Traces_specs_1 = { + sizeof(struct ivim_ts_Traces), + offsetof(struct ivim_ts_Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_Traces_tags_1, + sizeof(asn_DEF_ivim_ts_Traces_tags_1) + /sizeof(asn_DEF_ivim_ts_Traces_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Traces_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_Traces_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_Traces_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TractorAxles.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TractorAxles.c new file mode 100644 index 000000000..d418b0204 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TractorAxles.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TractorAxles.h" + +int +ivim_ts_TractorAxles_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_ivim_ts_TractorAxles_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_ivim_ts_TractorAxles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TractorAxles = { + "TractorAxles", + "TractorAxles", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TractorAxles_tags_1, + sizeof(asn_DEF_ivim_ts_TractorAxles_tags_1) + /sizeof(asn_DEF_ivim_ts_TractorAxles_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TractorAxles_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TractorAxles_tags_1) + /sizeof(asn_DEF_ivim_ts_TractorAxles_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TractorAxles_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_TractorAxles_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TractorCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TractorCharacteristics.c new file mode 100644 index 000000000..27e799093 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TractorCharacteristics.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TractorCharacteristics.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_TractorCharacteristics_1[] = { + { ATF_POINTER, 3, offsetof(struct ivim_ts_TractorCharacteristics, equalTo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "equalTo" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_TractorCharacteristics, notEqualTo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "notEqualTo" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_TractorCharacteristics, ranges), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleCharacteristicsRangesList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ranges" + }, +}; +static const int asn_MAP_ivim_ts_TractorCharacteristics_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_TractorCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_TractorCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* equalTo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* notEqualTo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranges */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TractorCharacteristics_specs_1 = { + sizeof(struct ivim_ts_TractorCharacteristics), + offsetof(struct ivim_ts_TractorCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_TractorCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ivim_ts_TractorCharacteristics_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TractorCharacteristics = { + "TractorCharacteristics", + "TractorCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_TractorCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_TractorCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_TractorCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TractorCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TractorCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_TractorCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_TractorCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_TractorCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrafficConditionSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrafficConditionSubCauseCode.c new file mode 100644 index 000000000..1501b8f98 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrafficConditionSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TrafficConditionSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_TrafficConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrafficRule.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrafficRule.c new file mode 100644 index 000000000..c5b22f62e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrafficRule.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_TrafficRule_specs_1 = { + asn_MAP_ivim_ts_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_TrafficRule_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_ivim_ts_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_TrafficRule_tags_1, + sizeof(asn_DEF_ivim_ts_TrafficRule_tags_1) + /sizeof(asn_DEF_ivim_ts_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrafficRule_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerAxles.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerAxles.c new file mode 100644 index 000000000..7399647fc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerAxles.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerAxles.h" + +int +ivim_ts_TrailerAxles_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_ivim_ts_TrailerAxles_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_ivim_ts_TrailerAxles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerAxles = { + "TrailerAxles", + "TrailerAxles", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TrailerAxles_tags_1, + sizeof(asn_DEF_ivim_ts_TrailerAxles_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerAxles_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrailerAxles_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrailerAxles_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerAxles_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TrailerAxles_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_TrailerAxles_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsFixValuesList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsFixValuesList.c new file mode 100644 index 000000000..64be3bece --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsFixValuesList.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsFixValuesList.h" + +static int +memb_ivim_ts_VehicleCharacteristicsFixValues_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_ivim_ts_Member_constr_2 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_TrailerCharacteristicsFixValuesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_TrailerCharacteristicsFixValuesList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ivim_ts_VehicleCharacteristicsFixValues, + 0, + { +#if !defined(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_ivim_ts_Member_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_ivim_ts_VehicleCharacteristicsFixValues_constraint_1 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_TrailerCharacteristicsFixValuesList_specs_1 = { + sizeof(struct ivim_ts_TrailerCharacteristicsFixValuesList), + offsetof(struct ivim_ts_TrailerCharacteristicsFixValuesList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList = { + "TrailerCharacteristicsFixValuesList", + "TrailerCharacteristicsFixValuesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList_tags_1, + sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsFixValuesList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TrailerCharacteristicsFixValuesList_constr_1, +#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_ivim_ts_TrailerCharacteristicsFixValuesList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_TrailerCharacteristicsFixValuesList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsList.c new file mode 100644 index 000000000..8fe71d327 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_TrailerCharacteristicsList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_TrailerCharacteristicsList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_IVI_TrailerCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_TrailerCharacteristicsList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_TrailerCharacteristicsList_specs_1 = { + sizeof(struct ivim_ts_TrailerCharacteristicsList), + offsetof(struct ivim_ts_TrailerCharacteristicsList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerCharacteristicsList = { + "TrailerCharacteristicsList", + "TrailerCharacteristicsList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_TrailerCharacteristicsList_tags_1, + sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsList_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrailerCharacteristicsList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsList_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TrailerCharacteristicsList_constr_1, +#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_ivim_ts_TrailerCharacteristicsList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_TrailerCharacteristicsList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsRangesList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsRangesList.c new file mode 100644 index 000000000..b740bb036 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerCharacteristicsRangesList.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerCharacteristicsRangesList.h" + +static int +memb_ivim_ts_VehicleCharacteristicsRanges_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_ivim_ts_Member_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_ivim_ts_TrailerCharacteristicsRangesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_TrailerCharacteristicsRangesList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_VehicleCharacteristicsRanges, + 0, + { +#if !defined(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_ivim_ts_Member_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_ivim_ts_VehicleCharacteristicsRanges_constraint_1 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_TrailerCharacteristicsRangesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_TrailerCharacteristicsRangesList_specs_1 = { + sizeof(struct ivim_ts_TrailerCharacteristicsRangesList), + offsetof(struct ivim_ts_TrailerCharacteristicsRangesList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerCharacteristicsRangesList = { + "TrailerCharacteristicsRangesList", + "TrailerCharacteristicsRangesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_TrailerCharacteristicsRangesList_tags_1, + sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsRangesList_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsRangesList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrailerCharacteristicsRangesList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsRangesList_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerCharacteristicsRangesList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TrailerCharacteristicsRangesList_constr_1, +#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_ivim_ts_TrailerCharacteristicsRangesList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_TrailerCharacteristicsRangesList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerDetails.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerDetails.c new file mode 100644 index 000000000..eec6d781c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerDetails.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerDetails.h" + +static int +memb_ivim_ts_trailerType_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 <= 31L)) { + /* 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_ivim_ts_trailerType_constr_2 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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_TrailerDetails_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_TrailerDetails, trailerType), + (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_ivim_ts_trailerType_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_ivim_ts_trailerType_constraint_1 + }, + 0, 0, /* No default value */ + "trailerType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_TrailerDetails, trailerAxles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TrailerAxles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerAxles" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_TrailerDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_TrailerDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trailerType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* trailerAxles */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TrailerDetails_specs_1 = { + sizeof(struct ivim_ts_TrailerDetails), + offsetof(struct ivim_ts_TrailerDetails, _asn_ctx), + asn_MAP_ivim_ts_TrailerDetails_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_ivim_ts_TrailerDetails = { + "TrailerDetails", + "TrailerDetails", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_TrailerDetails_tags_1, + sizeof(asn_DEF_ivim_ts_TrailerDetails_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerDetails_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrailerDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrailerDetails_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerDetails_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_TrailerDetails_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_TrailerDetails_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerLicencePlateNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerLicencePlateNumber.c new file mode 100644 index 000000000..df408dc5f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrailerLicencePlateNumber.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TrailerLicencePlateNumber.h" + +/* + * This type is implemented using ivim_ts_LPN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_TrailerLicencePlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrailerLicencePlateNumber = { + "TrailerLicencePlateNumber", + "TrailerLicencePlateNumber", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_TrailerLicencePlateNumber_tags_1, + sizeof(asn_DEF_ivim_ts_TrailerLicencePlateNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerLicencePlateNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrailerLicencePlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrailerLicencePlateNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_TrailerLicencePlateNumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LPN_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_LPN_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrainCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrainCharacteristics.c new file mode 100644 index 000000000..7b3ba151a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TrainCharacteristics.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TrainCharacteristics.h" + +/* + * This type is implemented using ivim_ts_TractorCharacteristics, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_TrainCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TrainCharacteristics = { + "TrainCharacteristics", + "TrainCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_TrainCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_TrainCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_TrainCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TrainCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TrainCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_TrainCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_TractorCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_TractorCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransitVehicleOccupancy.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransitVehicleOccupancy.c new file mode 100644 index 000000000..a8fa2ec2d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransitVehicleOccupancy.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleOccupancy.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_ivim_ts_TransitVehicleOccupancy_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_ivim_ts_TransitVehicleOccupancy_value2enum_1[] = { + { 0, 16, "occupancyUnknown" }, + { 1, 14, "occupancyEmpty" }, + { 2, 16, "occupancyVeryLow" }, + { 3, 12, "occupancyLow" }, + { 4, 12, "occupancyMed" }, + { 5, 13, "occupancyHigh" }, + { 6, 19, "occupancyNearlyFull" }, + { 7, 13, "occupancyFull" } +}; +static const unsigned int asn_MAP_ivim_ts_TransitVehicleOccupancy_enum2value_1[] = { + 1, /* occupancyEmpty(1) */ + 7, /* occupancyFull(7) */ + 5, /* occupancyHigh(5) */ + 3, /* occupancyLow(3) */ + 4, /* occupancyMed(4) */ + 6, /* occupancyNearlyFull(6) */ + 0, /* occupancyUnknown(0) */ + 2 /* occupancyVeryLow(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_TransitVehicleOccupancy_specs_1 = { + asn_MAP_ivim_ts_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_TransitVehicleOccupancy_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_ivim_ts_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_ivim_ts_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_ivim_ts_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_ivim_ts_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TransitVehicleOccupancy_constr_1, +#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_ivim_ts_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransitVehicleStatus.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransitVehicleStatus.c new file mode 100644 index 000000000..4f74cbf91 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransitVehicleStatus.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TransitVehicleStatus.h" + +int +ivim_ts_TransitVehicleStatus_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_ivim_ts_TransitVehicleStatus_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_ivim_ts_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_ivim_ts_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_ivim_ts_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_ivim_ts_TransitVehicleStatus_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TransitVehicleStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_TransitVehicleStatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionAndSpeed.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionAndSpeed.c new file mode 100644 index 000000000..930c3d310 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionAndSpeed.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TransmissionState, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transmisson" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Velocity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_TransmissionAndSpeed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmisson */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speed */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_TransmissionAndSpeed_specs_1 = { + sizeof(struct ivim_ts_TransmissionAndSpeed), + offsetof(struct ivim_ts_TransmissionAndSpeed, _asn_ctx), + asn_MAP_ivim_ts_TransmissionAndSpeed_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_ivim_ts_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_ivim_ts_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_ivim_ts_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_ivim_ts_TransmissionAndSpeed_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionInterval.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionInterval.c new file mode 100644 index 000000000..374694333 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionInterval.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TransmissionInterval.h" + +int +ivim_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_ivim_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_ivim_ts_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TransmissionInterval_tags_1, + sizeof(asn_DEF_ivim_ts_TransmissionInterval_tags_1) + /sizeof(asn_DEF_ivim_ts_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TransmissionInterval_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_TransmissionInterval_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionState.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionState.c new file mode 100644 index 000000000..129f000e4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TransmissionState.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TransmissionState.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_ivim_ts_TransmissionState_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_ivim_ts_TransmissionState_value2enum_1[] = { + { 0, 7, "neutral" }, + { 1, 4, "park" }, + { 2, 12, "forwardGears" }, + { 3, 12, "reverseGears" }, + { 4, 9, "reserved1" }, + { 5, 9, "reserved2" }, + { 6, 9, "reserved3" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_ivim_ts_TransmissionState_enum2value_1[] = { + 2, /* forwardGears(2) */ + 0, /* neutral(0) */ + 1, /* park(1) */ + 4, /* reserved1(4) */ + 5, /* reserved2(5) */ + 6, /* reserved3(6) */ + 3, /* reverseGears(3) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_TransmissionState_specs_1 = { + asn_MAP_ivim_ts_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_TransmissionState_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_ivim_ts_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_TransmissionState_tags_1, + sizeof(asn_DEF_ivim_ts_TransmissionState_tags_1) + /sizeof(asn_DEF_ivim_ts_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TransmissionState_tags_1) + /sizeof(asn_DEF_ivim_ts_TransmissionState_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TransmissionState_constr_1, +#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_ivim_ts_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TreatmentType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TreatmentType.c new file mode 100644 index 000000000..2d4bad663 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TreatmentType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TreatmentType.h" + +int +ivim_ts_TreatmentType_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_ivim_ts_TreatmentType_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_ivim_ts_TreatmentType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TreatmentType = { + "TreatmentType", + "TreatmentType", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TreatmentType_tags_1, + sizeof(asn_DEF_ivim_ts_TreatmentType_tags_1) + /sizeof(asn_DEF_ivim_ts_TreatmentType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TreatmentType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TreatmentType_tags_1) + /sizeof(asn_DEF_ivim_ts_TreatmentType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_TreatmentType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_TreatmentType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TurningRadius.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TurningRadius.c new file mode 100644 index 000000000..3bd81d626 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_TurningRadius.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_TurningRadius.h" + +int +ivim_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_ivim_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_ivim_ts_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_TurningRadius_tags_1, + sizeof(asn_DEF_ivim_ts_TurningRadius_tags_1) + /sizeof(asn_DEF_ivim_ts_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_TurningRadius_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_TurningRadius_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_UnitType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_UnitType.c new file mode 100644 index 000000000..bbe19b046 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_UnitType.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_UnitType.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_ivim_ts_UnitType_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_ivim_ts_UnitType_value2enum_1[] = { + { 0, 5, "mg-km" }, + { 1, 6, "mg-kWh" } +}; +static const unsigned int asn_MAP_ivim_ts_UnitType_enum2value_1[] = { + 1, /* mg-kWh(1) */ + 0 /* mg-km(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_UnitType_specs_1 = { + asn_MAP_ivim_ts_UnitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_UnitType_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_ivim_ts_UnitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_UnitType = { + "UnitType", + "UnitType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_UnitType_tags_1, + sizeof(asn_DEF_ivim_ts_UnitType_tags_1) + /sizeof(asn_DEF_ivim_ts_UnitType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_UnitType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_UnitType_tags_1) + /sizeof(asn_DEF_ivim_ts_UnitType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_UnitType_constr_1, +#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_ivim_ts_UnitType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VDS.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VDS.c new file mode 100644 index 000000000..34cf20de9 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VDS.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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 +ivim_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_ivim_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_ivim_ts_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_ivim_ts_VDS_tags_1, + sizeof(asn_DEF_ivim_ts_VDS_tags_1) + /sizeof(asn_DEF_ivim_ts_VDS_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VDS_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_VDS_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityDuration.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityDuration.c new file mode 100644 index 000000000..9e1234dfd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityDuration.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ValidityDuration.h" + +int +ivim_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_ivim_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_ivim_ts_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ValidityDuration_tags_1, + sizeof(asn_DEF_ivim_ts_ValidityDuration_tags_1) + /sizeof(asn_DEF_ivim_ts_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ValidityDuration_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_ValidityDuration_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityOfContract.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityOfContract.c new file mode 100644 index 000000000..fe8e61bf8 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityOfContract.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ValidityOfContract.h" + +static int +memb_ivim_ts_issuerRestrictions_constraint_1(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 == 2UL)) { + /* 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_ivim_ts_issuerRestrictions_constr_2 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 asn_TYPE_member_t asn_MBR_ivim_ts_ValidityOfContract_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ValidityOfContract, issuerRestrictions), + (ASN_TAG_CLASS_CONTEXT | (0 << 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) + &asn_PER_memb_ivim_ts_issuerRestrictions_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_ivim_ts_issuerRestrictions_constraint_1 + }, + 0, 0, /* No default value */ + "issuerRestrictions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_ValidityOfContract, contractExpiryDate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DateCompact, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "contractExpiryDate" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_ValidityOfContract_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_ValidityOfContract_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* issuerRestrictions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* contractExpiryDate */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_ValidityOfContract_specs_1 = { + sizeof(struct ivim_ts_ValidityOfContract), + offsetof(struct ivim_ts_ValidityOfContract, _asn_ctx), + asn_MAP_ivim_ts_ValidityOfContract_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_ivim_ts_ValidityOfContract = { + "ValidityOfContract", + "ValidityOfContract", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_ValidityOfContract_tags_1, + sizeof(asn_DEF_ivim_ts_ValidityOfContract_tags_1) + /sizeof(asn_DEF_ivim_ts_ValidityOfContract_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ValidityOfContract_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ValidityOfContract_tags_1) + /sizeof(asn_DEF_ivim_ts_ValidityOfContract_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_ValidityOfContract_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_ValidityOfContract_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityPeriods.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityPeriods.c new file mode 100644 index 000000000..a66218592 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ValidityPeriods.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ValidityPeriods.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ValidityPeriods_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_ivim_ts_ValidityPeriods_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_InternationalSign_applicablePeriod, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_ValidityPeriods_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ValidityPeriods_specs_1 = { + sizeof(struct ivim_ts_ValidityPeriods), + offsetof(struct ivim_ts_ValidityPeriods, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ValidityPeriods = { + "ValidityPeriods", + "ValidityPeriods", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ValidityPeriods_tags_1, + sizeof(asn_DEF_ivim_ts_ValidityPeriods_tags_1) + /sizeof(asn_DEF_ivim_ts_ValidityPeriods_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ValidityPeriods_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ValidityPeriods_tags_1) + /sizeof(asn_DEF_ivim_ts_ValidityPeriods_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ValidityPeriods_constr_1, +#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_ivim_ts_ValidityPeriods_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ValidityPeriods_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VarLengthNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VarLengthNumber.c new file mode 100644 index 000000000..a183036ca --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VarLengthNumber.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber.h" + +static int +memb_ivim_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_ivim_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) +asn_per_constraints_t asn_PER_type_ivim_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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_VarLengthNumber_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_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_ivim_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_ivim_ts_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VarLengthNumber, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_VarLengthNumber_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_ivim_ts_VarLengthNumber_specs_1 = { + sizeof(struct ivim_ts_VarLengthNumber), + offsetof(struct ivim_ts_VarLengthNumber, _asn_ctx), + offsetof(struct ivim_ts_VarLengthNumber, present), + sizeof(((struct ivim_ts_VarLengthNumber *)0)->present), + asn_MAP_ivim_ts_VarLengthNumber_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_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_ivim_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_ivim_ts_VarLengthNumber_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_VarLengthNumber_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VarLengthNumber2.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VarLengthNumber2.c new file mode 100644 index 000000000..e8c6b3616 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VarLengthNumber2.c @@ -0,0 +1,161 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CITSapplMgmtIDs" + * found in "/input/TS17419_2014_CITSapplMgmtIDs.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VarLengthNumber2.h" + +static int +memb_ivim_ts_shortNo_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; + } +} + +static int +memb_ivim_ts_longNo_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 <= 32767L)) { + /* 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_ivim_ts_shortNo_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_memb_ivim_ts_longNo_constr_3 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_VarLengthNumber2_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_ivim_ts_VarLengthNumber2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VarLengthNumber2, choice.shortNo), + (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_ivim_ts_shortNo_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_ivim_ts_shortNo_constraint_1 + }, + 0, 0, /* No default value */ + "shortNo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VarLengthNumber2, choice.longNo), + (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_ivim_ts_longNo_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_ivim_ts_longNo_constraint_1 + }, + 0, 0, /* No default value */ + "longNo" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VarLengthNumber2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shortNo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longNo */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_VarLengthNumber2_specs_1 = { + sizeof(struct ivim_ts_VarLengthNumber2), + offsetof(struct ivim_ts_VarLengthNumber2, _asn_ctx), + offsetof(struct ivim_ts_VarLengthNumber2, present), + sizeof(((struct ivim_ts_VarLengthNumber2 *)0)->present), + asn_MAP_ivim_ts_VarLengthNumber2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VarLengthNumber2 = { + "VarLengthNumber2", + "VarLengthNumber2", + &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_ivim_ts_VarLengthNumber2_constr_1, +#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_ivim_ts_VarLengthNumber2_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_VarLengthNumber2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcClass.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcClass.c new file mode 100644 index 000000000..d0fcdd556 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcClass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VcClass.h" + +int +ivim_ts_VcClass_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_ivim_ts_VcClass_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_ivim_ts_VcClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VcClass = { + "VcClass", + "VcClass", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VcClass_tags_1, + sizeof(asn_DEF_ivim_ts_VcClass_tags_1) + /sizeof(asn_DEF_ivim_ts_VcClass_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VcClass_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VcClass_tags_1) + /sizeof(asn_DEF_ivim_ts_VcClass_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VcClass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_VcClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcCode.c new file mode 100644 index 000000000..4b4266fb0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcCode.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VcCode.h" + +static int +memb_ivim_ts_roadSignCode_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 <= 64L)) { + /* 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_ivim_ts_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 65535L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_roadSignCode_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { 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_ivim_ts_value_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_ivim_ts_VcCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VcCode, roadSignClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VcClass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSignClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VcCode, roadSignCode), + (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_ivim_ts_roadSignCode_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_ivim_ts_roadSignCode_constraint_1 + }, + 0, 0, /* No default value */ + "roadSignCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VcCode, vcOption), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VcOption, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vcOption" + }, + { ATF_POINTER, 3, offsetof(struct ivim_ts_VcCode, validity), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ValidityPeriods, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "validity" + }, + { ATF_POINTER, 2, offsetof(struct ivim_ts_VcCode, value), + (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_ivim_ts_value_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_ivim_ts_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_POINTER, 1, offsetof(struct ivim_ts_VcCode, unit), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_RSCUnit, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const int asn_MAP_ivim_ts_VcCode_oms_1[] = { 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_VcCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VcCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadSignClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roadSignCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vcOption */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* validity */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VcCode_specs_1 = { + sizeof(struct ivim_ts_VcCode), + offsetof(struct ivim_ts_VcCode, _asn_ctx), + asn_MAP_ivim_ts_VcCode_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ivim_ts_VcCode_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VcCode = { + "VcCode", + "VcCode", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VcCode_tags_1, + sizeof(asn_DEF_ivim_ts_VcCode_tags_1) + /sizeof(asn_DEF_ivim_ts_VcCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VcCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VcCode_tags_1) + /sizeof(asn_DEF_ivim_ts_VcCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_VcCode_1, + 6, /* Elements count */ + &asn_SPC_ivim_ts_VcCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcOption.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcOption.c new file mode 100644 index 000000000..0ee1e3c8c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VcOption.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VcOption.h" + +int +ivim_ts_VcOption_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_ivim_ts_VcOption_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_ivim_ts_VcOption_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VcOption = { + "VcOption", + "VcOption", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VcOption_tags_1, + sizeof(asn_DEF_ivim_ts_VcOption_tags_1) + /sizeof(asn_DEF_ivim_ts_VcOption_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VcOption_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VcOption_tags_1) + /sizeof(asn_DEF_ivim_ts_VcOption_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VcOption_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_VcOption_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleAuthenticator.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleAuthenticator.c new file mode 100644 index 000000000..75718a089 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleAuthenticator.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleAuthenticator.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleAuthenticator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleAuthenticator = { + "VehicleAuthenticator", + "VehicleAuthenticator", + &asn_OP_OCTET_STRING, + asn_DEF_ivim_ts_VehicleAuthenticator_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleAuthenticator_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleAuthenticator_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleAuthenticator_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleAuthenticator_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleAuthenticator_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OCTET_STRING_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleAxles.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleAxles.c new file mode 100644 index 000000000..f1b1de650 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleAxles.c @@ -0,0 +1,328 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleAxles.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_ivim_ts_tyreType_constr_4 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_ivim_ts_tyreType_value2enum_4[] = { + { 0, 12, "notSpecified" }, + { 1, 10, "singleTyre" }, + { 2, 9, "dualTyres" }, + { 3, 14, "reservedForUse" } +}; +static const unsigned int asn_MAP_ivim_ts_tyreType_enum2value_4[] = { + 2, /* dualTyres(2) */ + 0, /* notSpecified(0) */ + 3, /* reservedForUse(3) */ + 1 /* singleTyre(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ivim_ts_tyreType_specs_4 = { + asn_MAP_ivim_ts_tyreType_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_tyreType_enum2value_4, /* 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_ivim_ts_tyreType_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_tyreType_4 = { + "tyreType", + "tyreType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_tyreType_tags_4, + sizeof(asn_DEF_ivim_ts_tyreType_tags_4) + /sizeof(asn_DEF_ivim_ts_tyreType_tags_4[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_tyreType_tags_4, /* Same as above */ + sizeof(asn_DEF_ivim_ts_tyreType_tags_4) + /sizeof(asn_DEF_ivim_ts_tyreType_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_ivim_ts_tyreType_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) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ivim_ts_tyreType_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_numberOfAxles_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleAxles__vehicleAxlesNumber__numberOfAxles, trailerAxles), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TrailerAxles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerAxles" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleAxles__vehicleAxlesNumber__numberOfAxles, tractorAxles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TractorAxles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "tractorAxles" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_numberOfAxles_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_numberOfAxles_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trailerAxles */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tractorAxles */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_numberOfAxles_specs_9 = { + sizeof(struct ivim_ts_VehicleAxles__vehicleAxlesNumber__numberOfAxles), + offsetof(struct ivim_ts_VehicleAxles__vehicleAxlesNumber__numberOfAxles, _asn_ctx), + asn_MAP_ivim_ts_numberOfAxles_tag2el_9, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_numberOfAxles_9 = { + "numberOfAxles", + "numberOfAxles", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_numberOfAxles_tags_9, + sizeof(asn_DEF_ivim_ts_numberOfAxles_tags_9) + /sizeof(asn_DEF_ivim_ts_numberOfAxles_tags_9[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_numberOfAxles_tags_9, /* Same as above */ + sizeof(asn_DEF_ivim_ts_numberOfAxles_tags_9) + /sizeof(asn_DEF_ivim_ts_numberOfAxles_tags_9[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_ivim_ts_numberOfAxles_9, + 2, /* Elements count */ + &asn_SPC_ivim_ts_numberOfAxles_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_vehicleAxlesNumber_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleAxles__vehicleAxlesNumber, tyreType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_tyreType_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) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "tyreType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleAxles__vehicleAxlesNumber, numberOfAxles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ivim_ts_numberOfAxles_9, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "numberOfAxles" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_vehicleAxlesNumber_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_vehicleAxlesNumber_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tyreType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* numberOfAxles */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_vehicleAxlesNumber_specs_3 = { + sizeof(struct ivim_ts_VehicleAxles__vehicleAxlesNumber), + offsetof(struct ivim_ts_VehicleAxles__vehicleAxlesNumber, _asn_ctx), + asn_MAP_ivim_ts_vehicleAxlesNumber_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_vehicleAxlesNumber_3 = { + "vehicleAxlesNumber", + "vehicleAxlesNumber", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_vehicleAxlesNumber_tags_3, + sizeof(asn_DEF_ivim_ts_vehicleAxlesNumber_tags_3) + /sizeof(asn_DEF_ivim_ts_vehicleAxlesNumber_tags_3[0]) - 1, /* 1 */ + asn_DEF_ivim_ts_vehicleAxlesNumber_tags_3, /* Same as above */ + sizeof(asn_DEF_ivim_ts_vehicleAxlesNumber_tags_3) + /sizeof(asn_DEF_ivim_ts_vehicleAxlesNumber_tags_3[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_ivim_ts_vehicleAxlesNumber_3, + 2, /* Elements count */ + &asn_SPC_ivim_ts_vehicleAxlesNumber_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ivim_ts_VehicleAxles_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleAxles, vehicleFirstAxleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleFirstAxleHeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleAxles, vehicleAxlesNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ivim_ts_vehicleAxlesNumber_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleAxlesNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleAxles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VehicleAxles_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleFirstAxleHeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleAxlesNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleAxles_specs_1 = { + sizeof(struct ivim_ts_VehicleAxles), + offsetof(struct ivim_ts_VehicleAxles, _asn_ctx), + asn_MAP_ivim_ts_VehicleAxles_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_ivim_ts_VehicleAxles = { + "VehicleAxles", + "VehicleAxles", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleAxles_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleAxles_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleAxles_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleAxles_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleAxles_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleAxles_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_VehicleAxles_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_VehicleAxles_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleBreakdownSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleBreakdownSubCauseCode.c new file mode 100644 index 000000000..db515a8dc --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleBreakdownSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleBreakdownSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_VehicleBreakdownSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsFixValues.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsFixValues.c new file mode 100644 index 000000000..4d2f36372 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsFixValues.c @@ -0,0 +1,202 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValues.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_VehicleCharacteristicsFixValues_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_ivim_ts_VehicleCharacteristicsFixValues_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, choice.simpleVehicleType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ITS_Container_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 */ + "simpleVehicleType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, choice.euVehicleCategoryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_EuVehicleCategoryCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euVehicleCategoryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, choice.iso3833VehicleType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Iso3833VehicleType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iso3833VehicleType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, choice.euroAndCo2value), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_EnvironmentalCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euroAndCo2value" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, choice.engineCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_EngineCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "engineCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, choice.loadType), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_LoadType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "loadType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, choice.usage), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 */ + "usage" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VehicleCharacteristicsFixValues_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* simpleVehicleType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iso3833VehicleType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euroAndCo2value */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* engineCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* loadType */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* usage */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsFixValues_specs_1 = { + sizeof(struct ivim_ts_VehicleCharacteristicsFixValues), + offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, _asn_ctx), + offsetof(struct ivim_ts_VehicleCharacteristicsFixValues, present), + sizeof(((struct ivim_ts_VehicleCharacteristicsFixValues *)0)->present), + asn_MAP_ivim_ts_VehicleCharacteristicsFixValues_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsFixValues = { + "VehicleCharacteristicsFixValues", + "VehicleCharacteristicsFixValues", + &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_ivim_ts_VehicleCharacteristicsFixValues_constr_1, +#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_ivim_ts_VehicleCharacteristicsFixValues_1, + 7, /* Elements count */ + &asn_SPC_ivim_ts_VehicleCharacteristicsFixValues_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsFixValuesList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsFixValuesList.c new file mode 100644 index 000000000..06fec93c6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsFixValuesList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsFixValuesList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_VehicleCharacteristicsFixValuesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_VehicleCharacteristicsFixValuesList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ivim_ts_VehicleCharacteristicsFixValues, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_VehicleCharacteristicsFixValuesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsFixValuesList_specs_1 = { + sizeof(struct ivim_ts_VehicleCharacteristicsFixValuesList), + offsetof(struct ivim_ts_VehicleCharacteristicsFixValuesList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList = { + "VehicleCharacteristicsFixValuesList", + "VehicleCharacteristicsFixValuesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsFixValuesList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VehicleCharacteristicsFixValuesList_constr_1, +#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_ivim_ts_VehicleCharacteristicsFixValuesList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_VehicleCharacteristicsFixValuesList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsList.c new file mode 100644 index 000000000..5e56c8bba --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_VehicleCharacteristicsList_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_ivim_ts_VehicleCharacteristicsList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_CompleteVehicleCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_VehicleCharacteristicsList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsList_specs_1 = { + sizeof(struct ivim_ts_VehicleCharacteristicsList), + offsetof(struct ivim_ts_VehicleCharacteristicsList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsList = { + "VehicleCharacteristicsList", + "VehicleCharacteristicsList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_VehicleCharacteristicsList_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsList_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleCharacteristicsList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsList_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VehicleCharacteristicsList_constr_1, +#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_ivim_ts_VehicleCharacteristicsList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_VehicleCharacteristicsList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsRanges.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsRanges.c new file mode 100644 index 000000000..4b30d2e7c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsRanges.c @@ -0,0 +1,340 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRanges.h" + +static int +memb_ivim_ts_numberOfAxles_constraint_3(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; + } +} + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_memb_ivim_ts_numberOfAxles_constr_4 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) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_ivim_ts_limits_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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 asn_TYPE_member_t asn_MBR_ivim_ts_limits_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, choice.numberOfAxles), + (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_ivim_ts_numberOfAxles_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_ivim_ts_numberOfAxles_constraint_3 + }, + 0, 0, /* No default value */ + "numberOfAxles" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, choice.vehicleDimensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleDimensions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleDimensions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, choice.vehicleWeightLimits), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_VehicleWeightLimits, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleWeightLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, choice.axleWeightLimits), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_AxleWeightLimits, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "axleWeightLimits" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, choice.passengerCapacity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_PassengerCapacity, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "passengerCapacity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, choice.exhaustEmissionValues), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ExhaustEmissionValues, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "exhaustEmissionValues" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, choice.dieselEmissionValues), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DieselEmissionValues, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dieselEmissionValues" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, choice.soundLevel), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_SoundLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "soundLevel" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_limits_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* numberOfAxles */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vehicleDimensions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* vehicleWeightLimits */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* axleWeightLimits */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* passengerCapacity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* exhaustEmissionValues */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dieselEmissionValues */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* soundLevel */ +}; +static asn_CHOICE_specifics_t asn_SPC_ivim_ts_limits_specs_3 = { + sizeof(struct ivim_ts_VehicleCharacteristicsRanges__limits), + offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, _asn_ctx), + offsetof(struct ivim_ts_VehicleCharacteristicsRanges__limits, present), + sizeof(((struct ivim_ts_VehicleCharacteristicsRanges__limits *)0)->present), + asn_MAP_ivim_ts_limits_tag2el_3, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ivim_ts_limits_3 = { + "limits", + "limits", + &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_ivim_ts_limits_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) */ + CHOICE_constraint + }, + asn_MBR_ivim_ts_limits_3, + 8, /* Elements count */ + &asn_SPC_ivim_ts_limits_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ivim_ts_VehicleCharacteristicsRanges_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges, comparisonOperator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ComparisonOperator, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "comparisonOperator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleCharacteristicsRanges, limits), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_limits_3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "limits" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleCharacteristicsRanges_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VehicleCharacteristicsRanges_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* comparisonOperator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* limits */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsRanges_specs_1 = { + sizeof(struct ivim_ts_VehicleCharacteristicsRanges), + offsetof(struct ivim_ts_VehicleCharacteristicsRanges, _asn_ctx), + asn_MAP_ivim_ts_VehicleCharacteristicsRanges_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_ivim_ts_VehicleCharacteristicsRanges = { + "VehicleCharacteristicsRanges", + "VehicleCharacteristicsRanges", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleCharacteristicsRanges_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsRanges_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsRanges_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleCharacteristicsRanges_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsRanges_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsRanges_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_VehicleCharacteristicsRanges_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_VehicleCharacteristicsRanges_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsRangesList.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsRangesList.c new file mode 100644 index 000000000..42a6cf188 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCharacteristicsRangesList.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCharacteristicsRangesList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_VehicleCharacteristicsRangesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_VehicleCharacteristicsRangesList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ivim_ts_VehicleCharacteristicsRanges, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_VehicleCharacteristicsRangesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_VehicleCharacteristicsRangesList_specs_1 = { + sizeof(struct ivim_ts_VehicleCharacteristicsRangesList), + offsetof(struct ivim_ts_VehicleCharacteristicsRangesList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCharacteristicsRangesList = { + "VehicleCharacteristicsRangesList", + "VehicleCharacteristicsRangesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_VehicleCharacteristicsRangesList_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsRangesList_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsRangesList_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleCharacteristicsRangesList_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsRangesList_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCharacteristicsRangesList_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VehicleCharacteristicsRangesList_constr_1, +#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_ivim_ts_VehicleCharacteristicsRangesList_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_VehicleCharacteristicsRangesList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleClass.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleClass.c new file mode 100644 index 000000000..fcffc5f1b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleClass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleClass.h" + +int +ivim_ts_VehicleClass_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 ivim_ts_Int1, + * 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_ivim_ts_VehicleClass_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_ivim_ts_VehicleClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleClass = { + "VehicleClass", + "VehicleClass", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleClass_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleClass_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleClass_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleClass_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleClass_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleClass_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VehicleClass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_VehicleClass_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCurrentMaxTrainWeight.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCurrentMaxTrainWeight.c new file mode 100644 index 000000000..b6c837eda --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleCurrentMaxTrainWeight.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleCurrentMaxTrainWeight.h" + +int +ivim_ts_VehicleCurrentMaxTrainWeight_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 ivim_ts_Int2, + * 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_ivim_ts_VehicleCurrentMaxTrainWeight_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_ivim_ts_VehicleCurrentMaxTrainWeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleCurrentMaxTrainWeight = { + "VehicleCurrentMaxTrainWeight", + "VehicleCurrentMaxTrainWeight", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleCurrentMaxTrainWeight_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleCurrentMaxTrainWeight_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCurrentMaxTrainWeight_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleCurrentMaxTrainWeight_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleCurrentMaxTrainWeight_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleCurrentMaxTrainWeight_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VehicleCurrentMaxTrainWeight_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_VehicleCurrentMaxTrainWeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleDimensions.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleDimensions.c new file mode 100644 index 000000000..e13e1ea1a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleDimensions.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleDimensions.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_VehicleDimensions_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleDimensions, vehicleLengthOverall), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleLengthOverall" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleDimensions, vehicleHeigthOverall), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleHeigthOverall" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleDimensions, vehicleWidthOverall), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleWidthOverall" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleDimensions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VehicleDimensions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthOverall */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vehicleHeigthOverall */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* vehicleWidthOverall */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleDimensions_specs_1 = { + sizeof(struct ivim_ts_VehicleDimensions), + offsetof(struct ivim_ts_VehicleDimensions, _asn_ctx), + asn_MAP_ivim_ts_VehicleDimensions_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_ivim_ts_VehicleDimensions = { + "VehicleDimensions", + "VehicleDimensions", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleDimensions_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleDimensions_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleDimensions_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleDimensions_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleDimensions_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleDimensions_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_VehicleDimensions_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_VehicleDimensions_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleHeight.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleHeight.c new file mode 100644 index 000000000..fca58d2e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleHeight.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleHeight.h" + +int +ivim_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 >= 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_ivim_ts_VehicleHeight_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_ivim_ts_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleHeight_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleHeight_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleHeight_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_VehicleHeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleID.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleID.c new file mode 100644 index 000000000..8b4c9b182 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleID.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleID.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_VehicleID_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_ivim_ts_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_TemporaryID, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "entityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 asn_TYPE_tag2member_t asn_MAP_ivim_ts_VehicleID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* entityID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stationID */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_VehicleID_specs_1 = { + sizeof(struct ivim_ts_VehicleID), + offsetof(struct ivim_ts_VehicleID, _asn_ctx), + offsetof(struct ivim_ts_VehicleID, present), + sizeof(((struct ivim_ts_VehicleID *)0)->present), + asn_MAP_ivim_ts_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleID = { + "VehicleID", + "VehicleID", + &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_ivim_ts_VehicleID_constr_1, +#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_ivim_ts_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleIdentification.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleIdentification.c new file mode 100644 index 000000000..497fb7817 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleIdentification.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct ivim_ts_VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_VehicleIdentification_specs_1 = { + sizeof(struct ivim_ts_VehicleIdentification), + offsetof(struct ivim_ts_VehicleIdentification, _asn_ctx), + asn_MAP_ivim_ts_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ivim_ts_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleIdentification_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleIdentification_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleIdentification_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleIdentificationNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleIdentificationNumber.c new file mode 100644 index 000000000..a00b8bca3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleIdentificationNumber.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleIdentificationNumber.h" + +/* + * This type is implemented using ivim_ts_CS5, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleIdentificationNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleIdentificationNumber = { + "VehicleIdentificationNumber", + "VehicleIdentificationNumber", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleIdentificationNumber_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleIdentificationNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleIdentificationNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleIdentificationNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleIdentificationNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleIdentificationNumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_CS5_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_CS5_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLength.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLength.c new file mode 100644 index 000000000..93d708db1 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLength.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleLength_specs_1 = { + sizeof(struct ivim_ts_VehicleLength), + offsetof(struct ivim_ts_VehicleLength, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleLength_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleLength_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleLength_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLengthConfidenceIndication.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLengthConfidenceIndication.c new file mode 100644 index 000000000..9a78d6f38 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLengthConfidenceIndication.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_ivim_ts_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLengthValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLengthValue.c new file mode 100644 index 000000000..6a00cb64c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLengthValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleLengthValue.h" + +int +ivim_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_ivim_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_ivim_ts_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleLengthValue_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_VehicleLengthValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLicencePlateNumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLicencePlateNumber.c new file mode 100644 index 000000000..c7fb6aa2b --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleLicencePlateNumber.c @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleLicencePlateNumber.h" + +/* + * This type is implemented using ivim_ts_LPN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleLicencePlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleLicencePlateNumber = { + "VehicleLicencePlateNumber", + "VehicleLicencePlateNumber", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleLicencePlateNumber_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleLicencePlateNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleLicencePlateNumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleLicencePlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleLicencePlateNumber_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleLicencePlateNumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_LPN_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_LPN_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleMass.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleMass.c new file mode 100644 index 000000000..043cddca3 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleMass.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleMass.h" + +int +ivim_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) +asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleMass_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleMass_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleMass_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_VehicleMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleRole.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleRole.c new file mode 100644 index 000000000..c5498a2ac --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleRole.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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, 9, "reserved1" }, + { 14, 9, "reserved2" }, + { 15, 9, "reserved3" } +}; +static const unsigned int asn_MAP_ivim_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) */ + 13, /* reserved1(13) */ + 14, /* reserved2(14) */ + 15, /* reserved3(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12 /* taxi(12) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_VehicleRole_specs_1 = { + asn_MAP_ivim_ts_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_VehicleRole_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleRole_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleRole_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleSpecificCharacteristics.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleSpecificCharacteristics.c new file mode 100644 index 000000000..a12480e05 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleSpecificCharacteristics.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleSpecificCharacteristics.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_VehicleSpecificCharacteristics_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleSpecificCharacteristics, environmentalCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_EnvironmentalCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "environmentalCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleSpecificCharacteristics, engineCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_EngineCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "engineCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleSpecificCharacteristics, descriptiveCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_DescriptiveCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "descriptiveCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleSpecificCharacteristics, futureCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_FutureCharacteristics, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "futureCharacteristics" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleSpecificCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VehicleSpecificCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* environmentalCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* engineCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* descriptiveCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* futureCharacteristics */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleSpecificCharacteristics_specs_1 = { + sizeof(struct ivim_ts_VehicleSpecificCharacteristics), + offsetof(struct ivim_ts_VehicleSpecificCharacteristics, _asn_ctx), + asn_MAP_ivim_ts_VehicleSpecificCharacteristics_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_ivim_ts_VehicleSpecificCharacteristics = { + "VehicleSpecificCharacteristics", + "VehicleSpecificCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleSpecificCharacteristics_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleSpecificCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleSpecificCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleSpecificCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleSpecificCharacteristics_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleSpecificCharacteristics_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_VehicleSpecificCharacteristics_1, + 4, /* Elements count */ + &asn_SPC_ivim_ts_VehicleSpecificCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleTotalDistance.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleTotalDistance.c new file mode 100644 index 000000000..63662ea8f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleTotalDistance.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleTotalDistance.h" + +int +ivim_ts_VehicleTotalDistance_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 ivim_ts_Int4, + * 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_ivim_ts_VehicleTotalDistance_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) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleTotalDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleTotalDistance = { + "VehicleTotalDistance", + "VehicleTotalDistance", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleTotalDistance_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleTotalDistance_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleTotalDistance_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleTotalDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleTotalDistance_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleTotalDistance_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VehicleTotalDistance_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_VehicleTotalDistance_constraint + }, + 0, 0, /* No members */ + &asn_SPC_ivim_ts_Int4_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleType.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleType.c new file mode 100644 index 000000000..d488bb37e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleType.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleType.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_ivim_ts_VehicleType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_VehicleType_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 7, "unknown" }, + { 2, 7, "special" }, + { 3, 4, "moto" }, + { 4, 3, "car" }, + { 5, 8, "carOther" }, + { 6, 3, "bus" }, + { 7, 8, "axleCnt2" }, + { 8, 8, "axleCnt3" }, + { 9, 8, "axleCnt4" }, + { 10, 15, "axleCnt4Trailer" }, + { 11, 15, "axleCnt5Trailer" }, + { 12, 15, "axleCnt6Trailer" }, + { 13, 20, "axleCnt5MultiTrailer" }, + { 14, 20, "axleCnt6MultiTrailer" }, + { 15, 20, "axleCnt7MultiTrailer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ivim_ts_VehicleType_enum2value_1[] = { + 7, /* axleCnt2(7) */ + 8, /* axleCnt3(8) */ + 9, /* axleCnt4(9) */ + 10, /* axleCnt4Trailer(10) */ + 13, /* axleCnt5MultiTrailer(13) */ + 11, /* axleCnt5Trailer(11) */ + 14, /* axleCnt6MultiTrailer(14) */ + 12, /* axleCnt6Trailer(12) */ + 15, /* axleCnt7MultiTrailer(15) */ + 6, /* bus(6) */ + 4, /* car(4) */ + 5, /* carOther(5) */ + 3, /* moto(3) */ + 0, /* none(0) */ + 2, /* special(2) */ + 1 /* unknown(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ivim_ts_VehicleType_specs_1 = { + asn_MAP_ivim_ts_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_ts_VehicleType_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 17, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_VehicleType_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleType_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleType_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleType_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VehicleType_constr_1, +#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_ivim_ts_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWeightLaden.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWeightLaden.c new file mode 100644 index 000000000..2f52ff63d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWeightLaden.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLaden.h" + +int +ivim_ts_VehicleWeightLaden_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 ivim_ts_Int2, + * 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_ivim_ts_VehicleWeightLaden_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_ivim_ts_VehicleWeightLaden_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleWeightLaden = { + "VehicleWeightLaden", + "VehicleWeightLaden", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleWeightLaden_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleWeightLaden_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleWeightLaden_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleWeightLaden_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleWeightLaden_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleWeightLaden_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_VehicleWeightLaden_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_VehicleWeightLaden_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWeightLimits.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWeightLimits.c new file mode 100644 index 000000000..8cde61980 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWeightLimits.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "EfcDsrcApplication" + * found in "/input/ISO14906(2018)EfcDsrcApplicationv6-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleWeightLimits.h" + +asn_TYPE_member_t asn_MBR_ivim_ts_VehicleWeightLimits_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleWeightLimits, vehicleMaxLadenWeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleMaxLadenWeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleWeightLimits, vehicleTrainMaximumWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleTrainMaximumWeight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VehicleWeightLimits, vehicleWeightUnladen), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Int2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleWeightUnladen" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_VehicleWeightLimits_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_VehicleWeightLimits_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleMaxLadenWeight */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vehicleTrainMaximumWeight */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* vehicleWeightUnladen */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_VehicleWeightLimits_specs_1 = { + sizeof(struct ivim_ts_VehicleWeightLimits), + offsetof(struct ivim_ts_VehicleWeightLimits, _asn_ctx), + asn_MAP_ivim_ts_VehicleWeightLimits_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_ivim_ts_VehicleWeightLimits = { + "VehicleWeightLimits", + "VehicleWeightLimits", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VehicleWeightLimits_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleWeightLimits_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleWeightLimits_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleWeightLimits_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleWeightLimits_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleWeightLimits_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_VehicleWeightLimits_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_VehicleWeightLimits_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWidth.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWidth.c new file mode 100644 index 000000000..8e2ac4151 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VehicleWidth.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VehicleWidth.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VehicleWidth_tags_1, + sizeof(asn_DEF_ivim_ts_VehicleWidth_tags_1) + /sizeof(asn_DEF_ivim_ts_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VehicleWidth_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_VehicleWidth_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Velocity.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Velocity.c new file mode 100644 index 000000000..f04e5f1bb --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Velocity.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Velocity.h" + +int +ivim_ts_Velocity_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 <= 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) +asn_per_constraints_t asn_PER_type_ivim_ts_Velocity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..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_ivim_ts_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Velocity_tags_1, + sizeof(asn_DEF_ivim_ts_Velocity_tags_1) + /sizeof(asn_DEF_ivim_ts_Velocity_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Velocity_tags_1) + /sizeof(asn_DEF_ivim_ts_Velocity_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Velocity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Velocity_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VerticalAcceleration.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VerticalAcceleration.c new file mode 100644 index 000000000..eb33373e4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VerticalAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_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_ivim_ts_VerticalAcceleration_specs_1 = { + sizeof(struct ivim_ts_VerticalAcceleration), + offsetof(struct ivim_ts_VerticalAcceleration, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_VerticalAcceleration_tags_1, + sizeof(asn_DEF_ivim_ts_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_ivim_ts_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VerticalAccelerationValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VerticalAccelerationValue.c new file mode 100644 index 000000000..f14901da6 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_VerticalAccelerationValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_VerticalAccelerationValue.h" + +int +ivim_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_ivim_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_ivim_ts_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_ivim_ts_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_ivim_ts_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_VerticalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WMInumber.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WMInumber.c new file mode 100644 index 000000000..a0a9a11f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WMInumber.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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 +ivim_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_ivim_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_ivim_ts_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_ivim_ts_WMInumber_tags_1, + sizeof(asn_DEF_ivim_ts_WMInumber_tags_1) + /sizeof(asn_DEF_ivim_ts_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_WMInumber_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_WMInumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WaitOnStopline.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WaitOnStopline.c new file mode 100644 index 000000000..0a475efda --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WaitOnStopline.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_ivim_ts_WaitOnStopline_tags_1, + sizeof(asn_DEF_ivim_ts_WaitOnStopline_tags_1) + /sizeof(asn_DEF_ivim_ts_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_WaitOnStopline_tags_1) + /sizeof(asn_DEF_ivim_ts_WaitOnStopline_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_coding/src/ivim_ts_WearLevel.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WearLevel.c new file mode 100644 index 000000000..a6412b1a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WearLevel.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_WearLevel.h" + +int +ivim_ts_WearLevel_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_ivim_ts_WearLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_WearLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_WearLevel = { + "WearLevel", + "WearLevel", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_WearLevel_tags_1, + sizeof(asn_DEF_ivim_ts_WearLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_WearLevel_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_WearLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_WearLevel_tags_1) + /sizeof(asn_DEF_ivim_ts_WearLevel_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_WearLevel_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_WearLevel_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Weight.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Weight.c new file mode 100644 index 000000000..44296512c --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Weight.c @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "GDD" + * found in "/input/ISO14823-missing.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Weight.h" + +static int +memb_ivim_ts_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1L && value <= 16384L)) { + /* 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_ivim_ts_unit_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 >= 10L && value <= 12L)) { + /* 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_ivim_ts_value_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 16384 } /* (1..16384) */, + { 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_ivim_ts_unit_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 10, 12 } /* (10..12) */, + { 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_ivim_ts_Weight_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Weight, value), + (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_ivim_ts_value_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_ivim_ts_value_constraint_1 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Weight, unit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Code_Units, + 0, + { +#if !defined(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_ivim_ts_unit_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_ivim_ts_unit_constraint_1 + }, + 0, 0, /* No default value */ + "unit" + }, +}; +static const ber_tlv_tag_t asn_DEF_ivim_ts_Weight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Weight_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* unit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_Weight_specs_1 = { + sizeof(struct ivim_ts_Weight), + offsetof(struct ivim_ts_Weight, _asn_ctx), + asn_MAP_ivim_ts_Weight_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_ivim_ts_Weight = { + "Weight", + "Weight", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_Weight_tags_1, + sizeof(asn_DEF_ivim_ts_Weight_tags_1) + /sizeof(asn_DEF_ivim_ts_Weight_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Weight_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Weight_tags_1) + /sizeof(asn_DEF_ivim_ts_Weight_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#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_ivim_ts_Weight_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_Weight_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WheelBaseVehicle.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WheelBaseVehicle.c new file mode 100644 index 000000000..b37eed3f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WheelBaseVehicle.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_WheelBaseVehicle.h" + +int +ivim_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_ivim_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_ivim_ts_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_ivim_ts_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_ivim_ts_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_WheelBaseVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WrongWayDrivingSubCauseCode.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WrongWayDrivingSubCauseCode.c new file mode 100644 index 000000000..292396155 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_WrongWayDrivingSubCauseCode.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_WrongWayDrivingSubCauseCode.h" + +int +ivim_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) +static asn_per_constraints_t asn_PER_type_ivim_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_ivim_ts_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_ivim_ts_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_ts_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_WrongWayDrivingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRate.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRate.c new file mode 100644 index 000000000..dd278d134 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRate.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_YawRate.h" + +static asn_TYPE_member_t asn_MBR_ivim_ts_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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 ivim_ts_YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_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_ivim_ts_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ivim_ts_YawRate_specs_1 = { + sizeof(struct ivim_ts_YawRate), + offsetof(struct ivim_ts_YawRate, _asn_ctx), + asn_MAP_ivim_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_ivim_ts_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_ivim_ts_YawRate_tags_1, + sizeof(asn_DEF_ivim_ts_YawRate_tags_1) + /sizeof(asn_DEF_ivim_ts_YawRate_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_YawRate_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_ts_YawRate_1, + 2, /* Elements count */ + &asn_SPC_ivim_ts_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRateConfidence.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRateConfidence.c new file mode 100644 index 000000000..f6ec6d2ac --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRateConfidence.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_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_ivim_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_ivim_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_ivim_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_ivim_ts_YawRateConfidence_specs_1 = { + asn_MAP_ivim_ts_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ivim_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_ivim_ts_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_ivim_ts_YawRateConfidence_tags_1, + sizeof(asn_DEF_ivim_ts_YawRateConfidence_tags_1) + /sizeof(asn_DEF_ivim_ts_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_YawRateConfidence_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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_ivim_ts_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRateValue.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRateValue.c new file mode 100644 index 000000000..cd82e1dac --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_YawRateValue.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_YawRateValue.h" + +int +ivim_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_ivim_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_ivim_ts_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_YawRateValue_tags_1, + sizeof(asn_DEF_ivim_ts_YawRateValue_tags_1) + /sizeof(asn_DEF_ivim_ts_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_YawRateValue_tags_1) + /sizeof(asn_DEF_ivim_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_ivim_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) */ + ivim_ts_YawRateValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Zid.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Zid.c new file mode 100644 index 000000000..f6229cf6e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Zid.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Zid.h" + +int +ivim_ts_Zid_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_ivim_ts_Zid_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ivim_ts_Zid_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Zid = { + "Zid", + "Zid", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_Zid_tags_1, + sizeof(asn_DEF_ivim_ts_Zid_tags_1) + /sizeof(asn_DEF_ivim_ts_Zid_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_Zid_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_Zid_tags_1) + /sizeof(asn_DEF_ivim_ts_Zid_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_Zid_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_Zid_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Zone.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Zone.c new file mode 100644 index 000000000..f6d5df2ed --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_Zone.c @@ -0,0 +1,118 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_Zone.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_Zone_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) */ +asn_TYPE_member_t asn_MBR_ivim_ts_Zone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Zone, choice.segment), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_Segment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "segment" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Zone, choice.area), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ivim_ts_PolygonalLine, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "area" + }, + { ATF_NOFLAGS, 0, offsetof(struct ivim_ts_Zone, choice.computedSegment), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ivim_ts_ComputedSegment, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "computedSegment" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ivim_ts_Zone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* segment */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* area */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* computedSegment */ +}; +asn_CHOICE_specifics_t asn_SPC_ivim_ts_Zone_specs_1 = { + sizeof(struct ivim_ts_Zone), + offsetof(struct ivim_ts_Zone, _asn_ctx), + offsetof(struct ivim_ts_Zone, present), + sizeof(((struct ivim_ts_Zone *)0)->present), + asn_MAP_ivim_ts_Zone_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_Zone = { + "Zone", + "Zone", + &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_ivim_ts_Zone_constr_1, +#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_ivim_ts_Zone_1, + 3, /* Elements count */ + &asn_SPC_ivim_ts_Zone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ZoneIds.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ZoneIds.c new file mode 100644 index 000000000..90b59c388 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ZoneIds.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "IVI" + * found in "/input/ISO19321IVIv2.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneIds.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_ivim_ts_ZoneIds_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_ivim_ts_ZoneIds_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ivim_ts_Zid, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !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_ivim_ts_ZoneIds_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ivim_ts_ZoneIds_specs_1 = { + sizeof(struct ivim_ts_ZoneIds), + offsetof(struct ivim_ts_ZoneIds, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ZoneIds = { + "ZoneIds", + "ZoneIds", + &asn_OP_SEQUENCE_OF, + asn_DEF_ivim_ts_ZoneIds_tags_1, + sizeof(asn_DEF_ivim_ts_ZoneIds_tags_1) + /sizeof(asn_DEF_ivim_ts_ZoneIds_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ZoneIds_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ZoneIds_tags_1) + /sizeof(asn_DEF_ivim_ts_ZoneIds_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ZoneIds_constr_1, +#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_ivim_ts_ZoneIds_1, + 1, /* Single element */ + &asn_SPC_ivim_ts_ZoneIds_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ZoneLength.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ZoneLength.c new file mode 100644 index 000000000..3dff1b33d --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/ivim_ts_ZoneLength.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DSRC" + * found in "/input/ISO-TS-19091-addgrp-C-2018-patched.asn" + * `asn1c -fcompound-names -fprefix=ivim_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_ivim_ts_coding/ivim_ts_ZoneLength.h" + +int +ivim_ts_ZoneLength_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 <= 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) +asn_per_constraints_t asn_PER_type_ivim_ts_ZoneLength_constr_1 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) */ +static const ber_tlv_tag_t asn_DEF_ivim_ts_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ivim_ts_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_ivim_ts_ZoneLength_tags_1, + sizeof(asn_DEF_ivim_ts_ZoneLength_tags_1) + /sizeof(asn_DEF_ivim_ts_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_ivim_ts_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ivim_ts_ZoneLength_tags_1) + /sizeof(asn_DEF_ivim_ts_ZoneLength_tags_1[0]), /* 1 */ + { +#if !defined(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_ivim_ts_ZoneLength_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + ivim_ts_ZoneLength_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/per_decoder.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/per_decoder.c new file mode 100644 index 000000000..4c7c9b32f --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_ts_coding/src/per_decoder.c @@ -0,0 +1,5 @@ +#include +#include +#include + +// Absolutely nothing diff --git a/etsi_its_coding/etsi_its_ivim_ts_coding/src/per_encoder.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/per_encoder.c new file mode 100644 index 000000000..cdb777f58 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/per_opentype.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/per_opentype.c new file mode 100644 index 000000000..053b8ebf4 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/per_support.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/per_support.c new file mode 100644 index 000000000..adc7f759e --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/uper_decoder.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/uper_decoder.c new file mode 100644 index 000000000..c442908fd --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/uper_encoder.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/uper_encoder.c new file mode 100644 index 000000000..c58c21d9a --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/uper_opentype.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/uper_opentype.c new file mode 100644 index 000000000..42e0faf13 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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_ivim_ts_coding/src/uper_support.c b/etsi_its_coding/etsi_its_ivim_ts_coding/src/uper_support.c new file mode 100644 index 000000000..f215e9483 --- /dev/null +++ b/etsi_its_coding/etsi_its_ivim_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; +}